

A Double Pole Double Throw (DPDT) switch is an electrical switch designed to control two separate circuits simultaneously. It features two input terminals and can connect each input to one of two output terminals, effectively allowing for two different outputs. This versatility makes the DPDT switch a popular choice in applications requiring circuit selection, polarity reversal, or motor control.








Below are the key technical details for a standard DPDT switch:
| Parameter | Value |
|---|---|
| Voltage Rating | Typically 12V to 250V AC/DC |
| Current Rating | 1A to 15A (varies by model) |
| Contact Configuration | Double Pole Double Throw (DPDT) |
| Operating Modes | ON-ON or ON-OFF-ON |
| Mechanical Life | 10,000 to 50,000 cycles |
| Mounting Style | Panel mount or PCB mount |
A DPDT switch typically has six terminals. The pin configuration is as follows:
| Pin Number | Label | Description |
|---|---|---|
| 1 | Input 1 (Pole 1) | First input terminal for the first circuit |
| 2 | Output 1A | First output terminal for the first circuit |
| 3 | Output 1B | Second output terminal for the first circuit |
| 4 | Input 2 (Pole 2) | Second input terminal for the second circuit |
| 5 | Output 2A | First output terminal for the second circuit |
| 6 | Output 2B | Second output terminal for the second circuit |
Below is an example of using a DPDT switch to control the direction of a DC motor with an Arduino UNO:
// Example: Controlling a DC motor's direction using a DPDT switch and Arduino UNO
const int motorPin1 = 9; // Pin connected to one side of the motor
const int motorPin2 = 10; // Pin connected to the other side of the motor
const int switchPin = 2; // Pin connected to the DPDT switch
void setup() {
pinMode(motorPin1, OUTPUT); // Set motorPin1 as output
pinMode(motorPin2, OUTPUT); // Set motorPin2 as output
pinMode(switchPin, INPUT_PULLUP); // Set switchPin as input with pull-up resistor
}
void loop() {
int switchState = digitalRead(switchPin); // Read the state of the DPDT switch
if (switchState == LOW) {
// If the switch is in one position, rotate motor in one direction
digitalWrite(motorPin1, HIGH); // Set motorPin1 HIGH
digitalWrite(motorPin2, LOW); // Set motorPin2 LOW
} else {
// If the switch is in the other position, reverse motor direction
digitalWrite(motorPin1, LOW); // Set motorPin1 LOW
digitalWrite(motorPin2, HIGH); // Set motorPin2 HIGH
}
}
Switch Not Functioning Properly:
Overheating:
Noise or Flickering in Digital Circuits:
Motor Not Reversing Direction:
Q1: Can I use a DPDT switch to control AC circuits?
A1: Yes, as long as the switch's voltage and current ratings are suitable for the AC circuit.
Q2: What is the difference between ON-ON and ON-OFF-ON configurations?
A2: In an ON-ON configuration, the switch alternates between two output states. In an ON-OFF-ON configuration, the middle position disconnects the outputs.
Q3: How do I debounce a DPDT switch in software?
A3: Use a delay or a state-change detection algorithm in your microcontroller code to filter out noise caused by mechanical bouncing.
Q4: Can I use a DPDT switch for audio signal routing?
A4: Yes, DPDT switches are commonly used to route audio signals between different outputs or inputs.