

A Double Pole Double Throw (DPDT) switch is an electrical switch designed to control two separate circuits simultaneously. It features two input terminals and four output terminals, allowing each input to connect to one of two outputs. This configuration enables versatile control, such as reversing motor direction, switching between power sources, or toggling between two different devices.








The DPDT switch has six terminals, as shown in the table below:
| Pin Number | Description |
|---|---|
| 1 | Input 1 (Pole 1) |
| 2 | Output 1A (Throw 1 for Pole 1) |
| 3 | Output 1B (Throw 2 for Pole 1) |
| 4 | Input 2 (Pole 2) |
| 5 | Output 2A (Throw 1 for Pole 2) |
| 6 | Output 2B (Throw 2 for Pole 2) |
Note: The exact pin numbering may vary depending on the manufacturer. Always refer to the datasheet for your specific DPDT switch.
A DPDT switch can be used to reverse the direction of a DC motor. Below is an example circuit and Arduino code to control the motor using the switch.
// Define the input pins for the DPDT switch
const int switchPin1 = 2; // Pin connected to DPDT switch input 1
const int switchPin2 = 3; // Pin connected to DPDT switch input 2
// Define the output pins for the motor
const int motorPin1 = 9; // Motor control pin 1
const int motorPin2 = 10; // Motor control pin 2
void setup() {
// Set switch pins as inputs
pinMode(switchPin1, INPUT);
pinMode(switchPin2, INPUT);
// Set motor pins as outputs
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
// Initialize motor pins to LOW
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
}
void loop() {
// Read the state of the DPDT switch
int switchState1 = digitalRead(switchPin1);
int switchState2 = digitalRead(switchPin2);
// Control the motor direction based on the switch state
if (switchState1 == HIGH && switchState2 == LOW) {
// Forward direction
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
} else if (switchState1 == LOW && switchState2 == HIGH) {
// Reverse direction
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, HIGH);
} else {
// Stop the motor
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
}
}
Switch Doesn't Work:
Motor Doesn't Reverse:
Switch Overheats:
Noise or Bouncing:
Q: Can I use a DPDT switch for AC circuits?
Q: How do I identify the terminals on my DPDT switch?
Q: Can I use a DPDT switch to control LEDs?
This concludes the documentation for the SWITCH-DPDT.