

A Single Pole Double Throw (SPDT) switch is an electrical switch that allows a single input to connect to one of two outputs. This versatile component is commonly used in applications where control over multiple circuits is required from a single switch. SPDT switches are widely utilized in devices such as audio equipment, power supplies, and motor controllers, as well as in logic circuits for signal routing.








Below are the general technical specifications for a standard 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 | Typically 3V to 250V (AC or DC) |
| Current Rating | Typically 0.5A to 15A |
| Contact Resistance | ≤ 50 mΩ |
| Insulation Resistance | ≥ 100 MΩ |
| Mechanical Life | 10,000 to 100,000 cycles |
| Operating Temperature | -20°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 to toggle between two LEDs using an Arduino UNO. 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 NO position, turn on LED 1
digitalWrite(led1Pin, HIGH);
digitalWrite(led2Pin, LOW);
} else {
// If the switch is toggled to the NC position, turn on LED 2
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, HIGH);
}
}
INPUT_PULLUP mode is used to simplify the circuit by enabling the internal pull-up resistor of the Arduino.Switch Not Functioning Properly
LEDs Not Lighting Up in Arduino Circuit
INPUT_PULLUP mode is enabled.Switch Generates Noise in Digital Circuits
Overheating or Damage
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 load.
Q: How do I identify the terminals on an SPDT switch?
A: Most SPDT switches have markings or diagrams on the body. If not, use a multimeter to test continuity between the terminals.
Q: Can I use an SPDT switch for PWM signals?
A: Yes, but ensure the switch can handle the frequency and voltage of the PWM signal without introducing significant noise or distortion.