

A rotary switch is an electrical switch that is operated by rotating a knob or lever. It allows the user to select different circuits or functions by turning the switch to different positions. Rotary switches are commonly used in applications where multiple circuit options or settings need to be selected manually. They are versatile and reliable components found in devices such as audio equipment, industrial machinery, and control panels.








Below are the general technical specifications for a typical rotary switch. Note that specific values may vary depending on the model and manufacturer.
| Parameter | Specification |
|---|---|
| Voltage Rating | 12V to 250V (AC or DC, depending on model) |
| Current Rating | 0.3A to 6A |
| Number of Positions | 2 to 12 (varies by model) |
| Contact Resistance | ≤ 50 mΩ |
| Insulation Resistance | ≥ 100 MΩ |
| Operating Temperature | -20°C to 85°C |
| Mechanical Life | 10,000 to 50,000 cycles |
The pin configuration of a rotary switch depends on the number of positions and poles. Below is an example for a single-pole, 4-position rotary switch:
| Pin Number | Description |
|---|---|
| Common (C) | Common terminal connected to the selected position |
| Position 1 | Terminal for position 1 |
| Position 2 | Terminal for position 2 |
| Position 3 | Terminal for position 3 |
| Position 4 | Terminal for position 4 |
For a double-pole, 3-position rotary switch, the configuration would include two sets of common and position terminals (e.g., C1, C2, P1A, P1B, etc.).
Below is an example of how to use a rotary switch with an Arduino UNO to read its position:
// Rotary Switch Example with Arduino UNO
// Reads the position of a 4-position rotary switch and prints it to the Serial Monitor
const int pin1 = 2; // Position 1 connected to digital pin 2
const int pin2 = 3; // Position 2 connected to digital pin 3
const int pin3 = 4; // Position 3 connected to digital pin 4
const int pin4 = 5; // Position 4 connected to digital pin 5
void setup() {
// Set rotary switch pins as inputs
pinMode(pin1, INPUT);
pinMode(pin2, INPUT);
pinMode(pin3, INPUT);
pinMode(pin4, INPUT);
// Initialize Serial Monitor
Serial.begin(9600);
}
void loop() {
// Check which position is active
if (digitalRead(pin1) == HIGH) {
Serial.println("Rotary Switch Position: 1");
} else if (digitalRead(pin2) == HIGH) {
Serial.println("Rotary Switch Position: 2");
} else if (digitalRead(pin3) == HIGH) {
Serial.println("Rotary Switch Position: 3");
} else if (digitalRead(pin4) == HIGH) {
Serial.println("Rotary Switch Position: 4");
} else {
Serial.println("No position selected");
}
delay(500); // Delay for stability
}
Switch Not Working in Circuit
Incorrect Position Detection
Switch Feels Stiff or Loose
Overheating or Damage
Q: Can a rotary switch be used for analog signals?
A: Yes, rotary switches can handle analog signals, but ensure the switch has low contact resistance and is rated for the signal's voltage and current.
Q: How do I debounce a rotary switch?
A: You can use capacitors across the terminals or implement software debouncing in your microcontroller code.
Q: Can I use a rotary switch for high-power applications?
A: Only if the switch is specifically rated for high power. For most high-power applications, consider using relays or contactors controlled by the rotary switch.
Q: How do I determine the number of poles and positions?
A: Check the datasheet or inspect the switch. The number of poles refers to independent circuits, and the number of positions refers to selectable states.