

A 3 way switch, manufactured by Import\Japan, is a type of electrical switch designed to control a single light or fixture from two different locations. This functionality makes it ideal for applications where lighting needs to be accessed from multiple points, such as in hallways, staircases, or large rooms. The switch operates by redirecting the electrical current between two traveler wires, enabling seamless control of the connected light or fixture.








The 3 way switch has three terminals, as described in the table below:
| Terminal Name | Description |
|---|---|
| Common (COM) | Connects to the power source or the load (light/fixture). |
| Traveler 1 (T1) | Connects to one of the traveler wires leading to the second 3 way switch. |
| Traveler 2 (T2) | Connects to the other traveler wire leading to the second 3 way switch. |
While a 3 way switch is typically used in AC circuits, it can also be simulated in low-voltage DC circuits for educational purposes. Below is an example of how to simulate a 3 way switch using an Arduino UNO and two push buttons:
// Simulating a 3 way switch using Arduino UNO
// Two push buttons control an LED, mimicking a 3 way switch setup.
const int button1Pin = 2; // Pin for first push button
const int button2Pin = 3; // Pin for second push button
const int ledPin = 13; // Pin for LED
bool ledState = false; // Tracks the state of the LED
void setup() {
pinMode(button1Pin, INPUT_PULLUP); // Set button1 pin as input with pull-up resistor
pinMode(button2Pin, INPUT_PULLUP); // Set button2 pin as input with pull-up resistor
pinMode(ledPin, OUTPUT); // Set LED pin as output
}
void loop() {
// Check if button1 is pressed
if (digitalRead(button1Pin) == LOW) {
delay(50); // Debounce delay
if (digitalRead(button1Pin) == LOW) {
ledState = !ledState; // Toggle LED state
digitalWrite(ledPin, ledState);
while (digitalRead(button1Pin) == LOW); // Wait for button release
}
}
// Check if button2 is pressed
if (digitalRead(button2Pin) == LOW) {
delay(50); // Debounce delay
if (digitalRead(button2Pin) == LOW) {
ledState = !ledState; // Toggle LED state
digitalWrite(ledPin, ledState);
while (digitalRead(button2Pin) == LOW); // Wait for button release
}
}
}
Light Does Not Turn On:
Switches Do Not Work as Expected:
Flickering Light:
Overheating Switch: