Calliope mini - Spaß durch Programmieren

Entwicklungsumgebungen

Drehgeber (Rotary Encoder KY-040)

Helligkeitsregler

Im Versandhandel wird für weinige Euro der Drehregler KY-040 angeboten. Er liefert entsprechend der Drehrichtung zwei unterschiedliche Impulsfolgen an den Ausgängen CLK und DT, die vom Calliope mini leicht interpretiert werden können. Damit lassen sich viele Anwendungen realsieren. Als einfaches Beispiel wird ein Regler für die Helligkeit und die Farbe der RGD-LED programmiert.

Neben den beiden Ausgängen für die Drehrichtung hat der Drehregler einen Ausgang für den Schalter, der durch das Drücken der Drehachse betätigt wird und zwei Eingänge für die Versorgungsspannung.

Über geeignete Kabel werden die Anschlüsse mit den Pins des Calliope mini verbunden:

Anschluss Pin
GND Minus
+ Plus
SW 3
DT 2
CLK 1

Die Zuordnung der Ausgänge zu den Pins ist frei wählbar und kann im Programm eingestellt werden.

 

KY040

Anders als in Make Code gibt es im OpenRobertaLab keine Funktionen zum Abfragen des Drehreglers. Wenn man sich aber das Datenblatt anschaut, sieht man, dass die Abfrage des Drehreglers kein Problem darstellt. Im Ruhezustand sind die beiden Anschlüsse offen. Beim Drehen werden CLK und DT nacheinander auf 0 gezogen. Die Reihenfolge hängt von der Drehrichtung ab.

Die beiden Anschlüsse des Drehreglers werden an Pin 1 und Pin 2 des Calliope mini angeschlossen. In der Roboterkonfiguration verbindet man die beiden Anschlüsse des Drehreglers mit den Pins 1 und 2 und legt den Pull-Widerstand auf up. Damit liefern die Anschlüsse eine klare 1, wenn die beiden Schalter im Drehregler offen sind.

Dreht man den Regler nach rechts, wird CLK zuerst auf 0 gehen und danach geht DT auf 0. Wird der Regler in die andere Richtung gedreht, geht zuerst DT auf 0 und dann erst CLK.

Dieses Verhalten wird ausgenutzt, um die Drehrichtung zu bestimmen.

KY040

Es wird eine Funktion geschrieben, die die beiden Anschlüsse nacheinander abfragt. Sowie ein Anschluss auf 0 geht, wird die weitere Abfrage gesperrt und der Variablen richtung der Wert der Richtung übergeben. Wird der Drehregler nach rechts gedreht, bekommt die Variable den Wert 1, nach links den Wert 2. Wenn der Drehregler garnicht bewegt wird, liefert die Funkion den Wert 0 zurück.

KY040

Der Rückgabewert der Funktion wird in einer Variablen abgelegt. Die Entscheidung legt dann fest, was mit der Variablen zaehler erfolgt.

KY040

Je nach Drehrichtung wird die Variable helligkeit um 5 erhöht oder erniedrigt. Natürlich muss darauf geachtet werden, dass sie nicht über die Grenzen läuft.

1er-Schritte haben sich nicht bewährt, da die LED eine so feine Abstufung nicht anzeigt.

KY040

Die Helligkeit der RGB-LED lässt sich mit dem Drehregler stufenlos regeln.

Farbregler

Der Drehregler soll nun jede der drei Farben einzeln einstellen. Zwischen den Farben wird über den Druckschalter gewechselt.

Dazu wird als Erstes der Schalter des Drehreglers abgefragt.Bei jedem Druck auf den Schalter wird die Variable zaehler bis 2 um eins weitergezählt und beginnt dann wieder bei 0.

Damit der Schalter bei jedem Druck nur ein Mal zählt, muss er sofort nach dem Schließen den Schalters gesperrt werden. Das erfolgt mit der Variablen schalter,

KY040

Die einzelnen Werte für die Farben Rot, Grün und Blau werden in einem Array (Liste) gespeichert. Die Variable zaehler legt fest, welches Element des Arrays bei Drehen des Reglers angesprochen wird.

Die Liste anzeige enthält auch drei Elemente, in denen die Buchstaben R, G und B stehen. Damit sieht man auf der Anzeige des Calliope mini sofort, welche der drei Farben geändert wird.

Das Bild zeigt nur den letzten Teil des Programms zum Verringern des Farbwertes!

KY040

Die Helligkeit jeder einzelnen Farbe der RGB-LED lässt sich mit dem Drehregler stufenlos regeln.

Für den Drehregler muss in Make Code ein unter den Erweiterungen angebotenes Modul aktiviert werden. danach lässt sich je nach Drehrichtung eine Variable in den Grenzen von 0 bis 255 in 5er-Schritten ändern und dadurch die Helligkeit der RGB-LED steuern.

1er-Schritte haben sich nicht bewährt, da die LED eine so feine Abstufung nicht anzeigt.

KY040

Die Helligkeit der RGB-LED lässt sich mit dem Drehregler stufenlos regeln.

Farbregler

Der Drehregler soll nun jede der drei Farben einzeln einstellen. Zwischen den Farben wird über den Druckschalter gewechselt.

Die einezlen Farbwerte werden in einem Array mit drei Einträgen abgelegt. Eine Zählvariable legt fest, welcher Array-Eintrag durch den Drehregler verändert wird. Das Bild zeigt einen Ausschnitt aus dem vollständigen Programm.

KY040

Die Helligkeit jeder einzelnen Farbe der RGB-LED lässt sich mit dem Drehregler stufenlos regeln.

zurück