

A Single Pole Double Throw (SPDT) switch is an electrical switch that allows a single input to connect to one of two outputs. This functionality enables the selection between two different circuits or devices. SPDT switches are versatile and commonly used in applications requiring circuit selection, signal routing, or toggling between two states.








Below are the general technical specifications for a typical SPDT switch. Note that specific values may vary depending on the manufacturer and model.
| Parameter | Specification |
|---|---|
| Switch Type | Single Pole Double Throw (SPDT) |
| Voltage Rating | 3V to 250V (varies by model) |
| Current Rating | 0.5A to 15A (varies by model) |
| Contact Resistance | < 50 mΩ |
| Insulation Resistance | > 100 MΩ |
| Mechanical Life | 10,000 to 100,000 cycles |
| Operating Temperature | -40°C to +85°C |
An SPDT switch typically has three terminals:
| Pin Name | Description |
|---|---|
| Common (C) | The input terminal that connects to one of the two output terminals. |
| Normally Open (NO) | The terminal that connects to the common terminal when the switch is activated. |
| Normally Closed (NC) | The terminal that connects to the common terminal when the switch is not activated. |
An SPDT switch can be used with an Arduino UNO to toggle between two LEDs. Below is an example circuit and code:
// Define pin numbers for the SPDT switch and LEDs
const int switchPin = 2; // SPDT switch common terminal connected to pin 2
const int led1Pin = 3; // LED 1 connected to Normally Open (NO) terminal
const int led2Pin = 4; // LED 2 connected to Normally Closed (NC) terminal
void setup() {
pinMode(switchPin, INPUT_PULLUP); // Configure switch pin as input with pull-up resistor
pinMode(led1Pin, OUTPUT); // Configure LED 1 pin as output
pinMode(led2Pin, OUTPUT); // Configure LED 2 pin as output
}
void loop() {
int switchState = digitalRead(switchPin); // Read the state of the SPDT switch
if (switchState == LOW) {
// If the switch is toggled to the Normally Open (NO) position
digitalWrite(led1Pin, HIGH); // Turn on LED 1
digitalWrite(led2Pin, LOW); // Turn off LED 2
} else {
// If the switch is toggled to the Normally Closed (NC) position
digitalWrite(led1Pin, LOW); // Turn off LED 1
digitalWrite(led2Pin, HIGH); // Turn on LED 2
}
}
Switch Not Working as Expected:
Intermittent Behavior:
LEDs Not Lighting Up in Arduino Circuit:
Switch Overheating:
Q: Can I use an SPDT switch to control AC devices?
A: Yes, as long as the switch's voltage and current ratings are suitable for the AC device.
Q: How do I debounce an SPDT switch?
A: You can use a capacitor and resistor in hardware or implement a software delay in your microcontroller code.
Q: What is the difference between SPDT and DPDT switches?
A: An SPDT switch has one input and two outputs, while a DPDT (Double Pole Double Throw) switch has two inputs and four outputs, allowing control of two separate circuits simultaneously.