WS2025 - Sensortechnik - Drehimpulsgeber

| Dozent: | Prof. Dr.-Ing. Schneider |
| Modul | Mechatronik, Antriebs- und Sensortechnik (Wahlpflichtprofil „Systems Design Engineering“), Wintersemester |
| Modulbezeichnung: | MTR-B-2-5.12 |
| Modulverantwortung: | Ulrich Schneider |
| Lehrveranstaltung: | Sensortechnik |
| Lektion: | 8: Digitale Sensoren zur Messung von Weg und Winkel |
Einleitung
Der Drehimpulsgeber KY-040 wird im Wiki-Artikel beschrieben.
Aufgabe
Bearbeiten Sie alle Aufgaben und sichern Sie Ihre Ergebnisse in SVN.
Aufgabe 8.1 - KY-040 Drehencoder anschließen
Der KY-040 Drehencoder soll über Simulink und ein Arduino-Board eingelesen werden. Der Encoder liefert zwei phasenverschobene digitale Signale (A und B). Diese müssen ausgewertet werden, um die Drehrichtung und Schritte zu bestimmen.
| KY-040 Pin | Funktion | Arduino Pin |
|---|---|---|
| CLK (A) | Signal A | D2 |
| DT (B) | Signal B | D3 |
| SW | Taster (optional) | D4 |
| + | 5V | 5V |
| GND | Masse | GND |
Aufgabe 8.2 - Simulink Setup
- Öffnen Sie Simulink → Arduino Support Package, falls noch nicht installiert: über Add-On Explorer → MATLAB Support Package for Arduino Hardware installieren.
- Erstelle ein neues Modell:
- Library Browser → Simulink Support Package for Arduino Hardware → Common
- Ziehe zwei Digital Input-Blöcke für die Pins
D2undD3ins Modell.
Aufgabe 8.3 - Quadraturdekoder aufbauen
- **Zwei Digital Input Blöcke** für `A` und `B`
- **Detect Change / Edge Detector**, um Flanken zu erkennen
- **Logic-Blöcke** oder **Compare To Constant**, um die Richtung zu bestimmen:
* Wenn `A` vor `B` → +1 (im Uhrzeigersinn) * Wenn `B` vor `A` → −1 (gegen Uhrzeigersinn)
- **Integrator (Add Block)**, um die Schritte aufzusummieren
Beispielhafte Logik:
if rising_edge(A)
if B == 0 → count++
else → count--
end
Tutorial
→ zurück zum Hauptartikel: WS2025 - Sensortechnik