iToverDose/Software· 28 APRIL 2026 · 00:03

5 präzise Rotary-Encoder-Projekte für Arduino

Von Lautstärkereglern bis zu Motorsteuerungen: Entdecken Sie fünf innovative Projekte mit dem KY-040, die präzise Eingaben in Ihre Arduino-Anwendungen bringen – inklusive Code und Aufbauanleitung.

DEV Community3 min0 Kommentare

Der KY-040-Rotary-Encoder ist ein inkrementeller Drehgeber, der digitale Impulse beim Drehen des Schafts ausgibt. Im Gegensatz zu Potentiometern nutzen Encoder keine verschleißanfälligen mechanischen Schleifer, sondern erzeugen klare Signale, die sowohl Drehrichtung als auch Position präzise erfassen. Mit dem KY-040 lassen sich interaktive Steuersysteme wie digitale Lautstärkeregler, Menünavigationssysteme oder Motorsteuerungen realisieren. Wir stellen fünf praxisnahe Arduino-Projekte vor, die das Potenzial dieses Bauteils voll ausschöpfen – von einfachen bis zu komplexen Anwendungen.

Warum Rotary Encoder die bessere Wahl sind

Potentiometer sind zwar weit verbreitet, aber Rotary Encoder bieten entscheidende Vorteile:

  • Langlebigkeit: Kein mechanischer Verschleiß durch Schleifer.
  • Präzision: Erfasst Drehrichtung und Position über digitale Impulse.
  • Zwei Signalausgänge: Die Pins CLK und DT geben um 90° phasenverschobene Impulse aus. Aus deren zeitlicher Abfolge lässt sich die Drehrichtung ableiten.
  • Integrierter Taster: Die Push-Funktion des Schafts ermöglicht zusätzliche Steuerbefehle.

Ein typischer Aufbau verbindet den KY-040 mit einem Arduino über die Pins CLK (Pin 2), DT (Pin 3) und SW (Pin 4). Die Stromversorgung erfolgt über 5V (VCC) und GND. Ein einfaches Code-Beispiel zeigt, wie die Signale verarbeitet werden:

#define CLK_PIN 2
#define DT_PIN 3
#define SW_PIN 4

int counter = 0;
int lastCLK;

void setup() {
  Serial.begin(115200);
  pinMode(CLK_PIN, INPUT);
  pinMode(DT_PIN, INPUT);
  pinMode(SW_PIN, INPUT_PULLUP);
  lastCLK = digitalRead(CLK_PIN);
}

void loop() {
  int currentCLK = digitalRead(CLK_PIN);
  if (currentCLK != lastCLK) {
    int direction = digitalRead(DT_PIN) == currentCLK ? 1 : -1;
    counter += direction;
    Serial.print("Position: ");
    Serial.println(counter);
  }
  lastCLK = currentCLK;

  if (digitalRead(SW_PIN) == LOW) {
    counter = 0;
    Serial.println("RESET");
    delay(200);
  }
}

Projekt 1: Digitaler Lautstärkeregler für den PC

Ein klassisches Anwendungsbeispiel ist die Steuerung der Lautstärke eines Computers über einen Hardware-Regler. Der KY-040 simuliert dabei das Verhalten eines analogen Potentiometers, ermöglicht aber eine präzisere und langlebigere Lösung.

Benötigte Komponenten:

  • KY-040-Rotary-Encoder
  • Arduino Nano (über USB mit dem PC verbunden)
  • USB-Kabel

Der Code liest die Drehimpulse des Encoders und überträgt die Lautstärke (0–100) über die serielle Schnittstelle an eine Software wie Voicemeeter oder Equalizer APO, die die Systemlautstärke anpasst. Ein Tastendruck setzt die Lautstärke auf Null (Stummschaltung).

Projekt 2: LCD-Menüsteuerung für Arduino-Anwendungen

Rotary Encoder eignen sich hervorragend zur Navigation durch Menüs auf Displays. Ein 16×2-I2C-LCD zeigt die Auswahlmöglichkeiten an, während der Encoder durch die Optionen scrollt. Der integrierte Taster bestätigt die Auswahl.

Benötigte Komponenten:

  • KY-040-Rotary-Encoder
  • Arduino Nano
  • 16×2-I2C-LCD-Display

Der Code nutzt die Bibliothek LiquidCrystal_I2C und definiert ein Array mit Menüpunkten. Die Drehrichtung des Encoders verschiebt den Auswahlcursor, während ein Tastendruck die Aktion auslöst. Das Display wird nach jeder Änderung aktualisiert, um eine intuitive Benutzerführung zu gewährleisten.

Projekt 3: Präzisionssteuerung eines Gleichstrommotors

Mit einem L298N-Motortreiber und einem 12V-Gleichstrommotor lässt sich die Drehzahl und Drehrichtung über den Rotary Encoder steuern. Ein 128×64-OLED-I2C-Display zeigt die aktuelle Geschwindigkeit und Richtung an.

Benötigte Komponenten:

  • KY-040-Rotary-Encoder
  • Arduino Nano
  • L298N-Motortreiber
  • 12V-DC-Motor
  • OLED-Display (128×64, I2C)

Der Code verarbeitet die Encoder-Impulse und passt die Motorgeschwindigkeit über PWM an. Die Drehrichtung wird durch die Polarität der Spannung am Motortreiber bestimmt. Das OLED-Display visualisiert die Einstellungen in Echtzeit.

Projekt 4: Synthesizer mit rotierender Notenauswahl

Für Musikprojekte eignet sich der Rotary Encoder ideal zur Auswahl von Noten in einem einfachen Synthesizer. Ein 8Ω-Lautsprecher gibt die gewählten Töne aus, während der Encoder durch eine Skala von C4 bis B4 navigiert.

Benötigte Komponenten:

  • KY-040-Rotary-Encoder
  • Arduino Nano
  • 8Ω-Lautsprecher

Der Code definiert ein Array mit Frequenzen für die Noten und spielt die ausgewählte Note bei jedem Tastendruck oder nach einer kurzen Verzögerung ab. Die Position des Encoders bestimmt die Note, während die Drehrichtung die Auswahl ändert.

Projekt 5: Playlist-Browser für Musikwiedergabe

Ein 16×2-I2C-LCD zeigt eine Liste von Musikstücken an, die über den Rotary Encoder durchblättert werden können. Ein zusätzlicher Taster startet oder pausiert die Wiedergabe.

Benötigte Komponenten:

  • KY-040-Rotary-Encoder
  • Arduino Nano
  • 16×2-I2C-LCD-Display
  • Taster (für Play/Pause)

Der Code speichert eine Liste von Titeln in einem Array und aktualisiert das Display bei jeder Drehung des Encoders. Der Taster triggert eine serielle Steuerung, die mit einer Mediaplayer-Software wie VLC oder Winamp kommuniziert.

Fazit: Rotary Encoder als vielseitige Lösung

Der KY-040-Rotary-Encoder ist ein leistungsstarkes Bauteil, das in unzähligen Arduino-Projekten präzise Eingaben ermöglicht. Ob als Lautstärkeregler, Menü-Navigator oder Motorsteuerung – die digitale Signalverarbeitung sorgt für Zuverlässigkeit und Langlebigkeit. Mit den vorgestellten Projekten erhalten Sie Inspiration für eigene Anwendungen, von einfachen Prototypen bis zu komplexen Steuerungssystemen. Experimentieren Sie mit den Codes und passen Sie sie an Ihre Anforderungen an – die Möglichkeiten sind nahezu unbegrenzt.

KI-Zusammenfassung

Explore 5 practical rotary encoder projects for Arduino to build precise digital volume knobs, menu navigators, motor controllers, synthesizers, and playlist browsers with KY-040 components.

Kommentare

00
KOMMENTAR SCHREIBEN
ID #YJ1DMN

0 / 1200 ZEICHEN

Menschen-Check

9 + 6 = ?

Erscheint nach redaktioneller Prüfung

Moderation · Spam-Schutz aktiv

Noch keine Kommentare. Sei der erste.