Rotary encoder (KY-040) with ESP32
Supply 3.3 V
Bus GPIO
Pins and ESP32 wiring
| Pin | Role | ESP32 pin | Notes |
|---|---|---|---|
| CLK | Output (the part drives it) | D25 | Encoder output A |
| DT | Output (the part drives it) | D26 | Encoder output B |
| SW | Output (the part drives it) | D27 | Push button: LOW when pressed |
| VCC | Power | 3V3 | Marked + on the board. Use 3V3: the on-board pull-ups go to this pin |
| GND | Ground | GND |
Suggested wiring for the 30-pin ESP32 DevKit, avoiding flash, input-only and strapping pins. BoardPilot checks it for you as you wire.
Starter code (Arduino)
void setup() {
Serial.begin(115200);
pinMode(25, INPUT); // CLK
}
void loop() {
Serial.println(digitalRead(25));
delay(100);
}
Sources
- Joy-IT KY-040 datasheet, Pins CLK, DT, SW, +, GND
Try it in 3D in BoardPilot
Related parts
1x4 membrane keypad (4 keys)433 MHz receiver (XY-MK-5V)4x3 membrane keypad (12 keys)4x4 membrane keypad5-way navigation button module74HC165 input shift register
Part data: CC BY 4.0, free to reuse with credit to BoardPilot.