Calliope mini - Spaß durch Programmieren

Anzeigefunktion für das 4-Digit Display

Ziel: Es wird eine Funktion entwickelt, der eine ganze Zahl übergeben wird und die diese Zahl immer rechtsbündig auf dem Display darstellt. Ist die übergebene Zahl negativ, leuchtet der Doppelpunkt auf.

Die Anleitungen in diesem Block beziehen sich auf die Ansteuerung des Grove 4-Digit Display v1.0 von SEEED, das für wenige Euro im Versandhandel zu finden ist.

Die Anzeige muss mit dem Anschluss A1 (rechts) verbunden werden! Danach muss die Anzeige in der Roboterkonfiguration aktiviert werden.

Calliope mini-4-Digit

Calliope mini-4-Digit

Rechtsbündige Anzeige durch Entscheidungen

In einer Zählschleife werden die Zahlen von 0 bis 20 hochgezählt und zur Anzeige gebracht. In der Anzeigefunktion wird zuerst die Anzeige gelöscht und dann die Zahl ab der Position 0 angezeigt.
Damit erscheinen die einstelligen Zahlen am linken Rand. Beim Wechsel von der 9 zur 10 wandert die Anzeige um eine Stelle nach rechts.
Das soll aber so nicht sein.
Setzt man für die Position die Stelle 3 ein, beginnt das Zählen zwar am rechten Rand, ab der 10 werden aber die Einerstellen nicht mehr angezeigt. Auch nicht gut.
Calliope mini-4-digit

So soll es nicht sein!

Damit die Zahlen korrekt rechtsbündig dargestellt werden, muss die Variable position in je nach Stellenanzahl der Zahl verändert werden.

Stellenanzahl Position
1 (z.B. 7) 3
2 (z.B. 34) 2
3 (z.B 745) 1
4 z.B. 4529) 0

Im Programmbeispiel wird jetzt recht zügig von 0 bis 1999 gezählt.

Calliope mini-4-digit

Positive und negative Zahlen werden angezeigt

Wenn auch noch negative Zahlen angezeigt werden sollen, muss vor dem Festlegen der position in einer weiteren Entscheidung eine Variable vorzeichen gesetzt werden: Ist die Zahl kleiner als 0, dann wahr, ansonsten falsch. Damit wird bei negativen Zahlen der Doppelpunkt angezeigt.

Damit die Entscheidung für die position auch bei negativen Zahlen funktioniert, muss von der Variablen zahl der Absolutwert gebildet werden.

Im Programm wird von -2000 (20:00) bis +1999 (1999) hochgezählt.

Position automatisch bestimmen

Die Funktion mit den Entscheidungen zur Bestimmung der Position ist nicht besonders elegant. Für eine vierstellige Anzeige mag es gehen, aber wenn mehr Stellen angezeigt werden sollen, wird die Liste der Entscheidungen immer länger.

Besser wäre es, wenn die Stellenzahl der anzuzeigenden Zahl mathematisch bestimmt wird.

Das geht über den dekadischen Logarithmus. Von der Zahl, die angezeigt werden soll, wird der Logarithmus zur Basis 10 gebildet. Das Ergebnis ist der Wert, der als Exponent von 10 wieder die Zahl ergibt.

Wenn man die Logarithmen abrundet und diesen Wert von 3 abzieht, erhält man die für die Zahl benötigte Position. Natürlich muss man die 0 beachten!!

Calliope mini-4-digit
Zahl log10 abgerundet 3-abger. Wert
7 0,845 0 3
34 1,53 1 2
745 2,87 2 1
4529 3,66 3 0

Bevor man auf das 4-Digit-Diaplay zugreifen kann, muss man die Erweiterung für die Seeed Studio Grove Module installieren: Fortgeschritten, Erweiterungen...

Danach stehen unter Grove alle Befehle zur Verfügung.

Calliope mini-4-digit

Im ersten Programm werden nur die Zahlen von 0 bis 20 in 0,5s-Abständen auf dem Display angezeigt.

Calliope mini-4-digit

Dazu wird eine Variable anzeige erzeugt und ihr der Treiber für das Anzeigeelement zugewiesen. Danach kann man über verschiedene Methoden auf die Anzeige zugreifen.

Die Methode .show(zahl) zeigt die Zahl, die der Methode in der Klammer übergeben wird, einfach an. Die Anzeige erfolgt sofort rechtsbündig! Damit sind keine weiteren Verrenkungen notwendig.

In der Erweiterung des Programms wird folgendes zusätzlich gemacht

  • Die Helligkeit der Anzeige wird auf 7 (ganz hell) gesetzt
  • Es wird von -20 bis +20 gezählt
  • Ist die zahl kleiner als 0, wird der Doppelpunkt eingeschaltet, ansonsten ist er aus
  • Es wird der Absolutwert der zahl angezeigt
Calliope mini-4-digit

zurück