Arduino in Kombination mit einem Drehschalter - MOD-16-Encoder
Das Beispiel demonstriert die grundlegende Funktionsweise eines Encoder-Moduls mit einem Arduino-Mikrocontroller.
Das Beispiel verwendet die folgenden Elemente:
- Arduino Uno
- LED-Dioden
- Widerstände
- Steckbrett und Drähte
Verbindung
Das Modul wird direkt vom Arduino mit Strom versorgt, sodass wir keine externe Stromquelle benötigen. Die Stifte werden gemäß der folgenden Tabelle angebracht:
Modulstift | Arduino-Stift |
---|---|
+ v | 5 V |
Masse | Masse |
S1A | 5 V |
S1B | 10 |
S2 | 7 |
S3 | 6 |
Zusätzlich enthält die Platine LED-Dioden, die durch 220-Ω-Widerstände zwischen den Pins 11 und 12 und Masse verbunden sind. Das gesamte Layout ist im Diagramm unten dargestellt.
Anschlussplan des Moduls und Arduino Uno.
Service
Die S1A- und S1B-Ausgänge sind Anschlüsse für die im Knopf befindliche Taste. Nach dem Drücken werden sie kurzgeschlossen. Die Ausgänge S2 und S3 hingegen erfassen die Richtung der Handradbewegung nach rechts bzw. nach links. Wenn am Ausgang eines gegebenen Pins eine Bewegung erkannt wird, erscheint ein High-Zustand.
Im Beispiel wurde folgender Programmcode verwendet:
int led1 = 11; // Diode an Pin 11 angeschlossen int led2 = 12; // Diode an Pin 12 angeschlossen int Helligkeit = 0; // Helligkeit von led1 int FadeAmount = 5; // Ändern Sie die Helligkeit, wenn Sie den Knopf für led1 drehen void setup () { PinMode (6, EINGANG); // Pins 6, 7 und 10 als Eingang setzen PinMode (7, EINGANG); PinMode (10, EINGANG); PinMode (LED1, AUSGANG); // Pins mit LEDs als Ausgänge PinMode (LED1, AUSGANG); } Leere Schleife () { analogWrite (led1, Helligkeit); // LED1 Helligkeitswert zuweisen wenn (Helligkeit = 255) Helligkeit = 255; if (digitalRead (6) == 1) // Wenn die Drehung des Knopfes nach rechts oder links erkannt wird, beginnt LED1, seine Helligkeit zu erhöhen oder zu verringern {Helligkeit = Helligkeit + FadeAmount;} if (digitalRead (7) == 1) {Helligkeit = Helligkeit - FadeAmount;} if (digitalRead (10) == 1 && digitalRead (led2, HIGH)) // Wenn die Taste im Knopf gedrückt wird, ändert LED2 ihren Zustand (wenn sie eingeschaltet ist, erlischt sie, wenn sie ausgeschaltet ist - it wird leuchten) {digitalWrite (LED2, NIEDRIG)} if (digitalRead (10) == 1 && digitalRead (led2, LOW)) {digitalWrite (led2, HIGH)} }
Durch Drücken der Taste im Knopf ändert sich die gelbe LED (sie wird abwechselnd ein- und ausgeschaltet). Durch Drehen des Knopfes können wir jedoch die Helligkeit der roten Diode ändern (aufhellen und dimmen).