Alle hier vorgestellten Übungen lassen sich ohne Abänderung an den Programmen auch mit einem Seeeduino V4> oder Arduino UNO + Grove Arduino Shield
durchführen.
Grove LED Bar- oder Balkenanzeige
Elektrische Signale, die den Fortschritt eines bestimmten Prozesses signalisieren, lassen sich auf verschiedene Art und Weisen darstellen: Zeiger, LEDs, Töne, farbliche Balken etc..
Handelsübliche LED-Balkenanzeigen bestehen i.a. aus 10 ein- oder mehrfarbigen LEDs, die sich, mit Hilfe verschiedener Protokolle (I2C, seriell, parallel) ansteuern lassen.
Das Grove LED Bar ist mit einem MY9221 LED Treiberbaustein mit 4x R/G/B Ausgängen als Konstantstromquellen (max. 60 mA) ausgerüstet. Daten werden seriell mit steigender und fallender
Flanke des Taktgebers in ein 208-Bit Schieberegister übertragen und durch interne Latch-Funktionen in ein Latch Register geladen.
Übungen mit dem Akronym UM (steht für
Unter- und Mittelstufe) wendet sich an Personen ab der Jahrgangsstufe 5 oder ab ca. 10 Jahren, die noch keine oder nur geringe Erfahrung mit
elektronischen Bauteilen und so gut wie keine oder sehr geringe Programmierkenntnisse in der Sprache
Arduino-C haben.
Übungen mit dem Akronym MO (steht für Mittel- und Oberstufe) wendet sich an Personen ab Jahrgangsstufe 9/10 mit Programmier- und Elektronikerfahrung.
Übung 1: LED Balkenanzeige ansteuern(UM)
Didaktisch methodische
Einordnung
Die Schülerinnen und Schüler lernen in dieser Übung
...
- ... eine Bibliotheksdatei aus dem
Internet herunterzuladen und in die Arduino IDE einzubinden.
- ... eine Schaltung nach Vorgabe
aufzubauen.
- ... eine LED Balkenanzeige, ihre
Wirkungsweise und Programmierung kennen.
- ... mündlich ausgesprochene Handlungsanweisungen in eine
Versuchsablaufsteuerung mit einer entsprechenden Software vorzunehmen.
- ... Befehle der Sprache Arduino-C
kennen.
- ... einfache Änderungen im Programm vorzunehmen und neuen
Anforderungen anzupassen.
- ... Versuchsergebnisse zu bewerten und Fehlerquellen zu
benennen.
Bevor Übung 1 startet, wird aus dem Internet eine Bibliotheksdatei heruntergeladen, die
verschiedene Funktionen zur einfachen Ansteuerung des Grove LED Bar bereitstellt.
1 - Die Bibliothek Grove_LED_Bar.h
einbinden
- Gehe auf https://github.com und gib als Suchbegriff „Grove_LED_Bar“ ein.
- Bestätige die Suchanzeige und
wechsle in den Downloadbereich.
- Mit einem Klick auf den Button
„Clone or Download“ und „Download ZIP“ wird die Datei „Grove_LED_Bar-Master.zip“ heruntergeladen. Lege sie in einem
Verzeichnis deiner Wahl ab.
- Starte die Arduino-IDE. Gehe im
Hauptmenü auf „Sketch – Bibliothek einbinden - .ZIP Bibliothek hinzufügen“.
- Wechsle in das Verzeichnis der gerade
heruntergeladenen Datei und öffne sie. Alles weitere macht das Arduino Programm. Die Installation der Bibliotheksdatei ist abgeschlossen.
2 - Die verwendeten Funktionen aus der Bibliothek Grove_LED_Bar.h
- grove_LED_Bar bar(pinCLK, pinDATA,
greToRed, LED_BAR_10)
Die Bedeutung der Parameter
pinCLK
Pin für das Taktsignal
pinDATA
Pin für die Daten
greToRed
wenn 1 oder true, dann steht das LSB für eine grüne LED, wenn 0 oder false, für eine
rote.
Abb. 1 - Je nach Setzung von greToRed, liegt das LSB ganz rechts oder ganz links auf dem Grove LED Bar.
- LED_BAR_10
Vorgabewert für das Grove LED Bar mit 10 LEDs.
- begin()
initiiert das Grove LED Bar.
- setBits(uint32_t wert)
zieht die LEDs, die in der Binärdarstellung von wert auf 1 gesetzt sind,
auf HIGH. Es sind hexadezimale, dezimale oder binäre Eingaben von wert möglich.
0b0000010011 setzt die 1., 2. und 5. LED auf HIGH.
0x13 setzt die 1., 2. und 5. LED auf
HIGH.
19
setBits mit Zahlen unterschiedlicher Basis |
0b0000010011 (binär)
0x13 (hexadezimal)
19
(dezimal)
|
setzt die 1., 2. und 5. LED auf HIGH
(gezählt vom jeweiligen LSB).
|
Mit den drei genannten Funktionen; grove_LED_Bar,
begin und setBits lässt sich das Grove LED Bar jetzt einfach ansteuern.
Übung 1: LED Bar ansteuern(UM) |
Material |
- 1x Seeed
Basis-Set
- 1x Grove LED
Bar
- 1x
Grove-Verbindungskabel
- 1x USB-Typ C Verbindungskabel zum
Laptop/Computer
|
Aufgaben
|
- Baue die Schaltung auf; verbinde das Grove LED
Bar Modul mit D2 auf dem Grove Shield.
- Übertrage das Programm LEDBar_01. in den
Arduino Editor und speichere es ab.
- Beschreibe, was auf der LED Balkenanzeige angezeigt
wird.Insgesamt sollten sieben verschiedene LED-Muster zu sehen sein.
- Beschreibe mit eigenen Worten die Wirkung jeder
Programmzeile auf die Balkenanzeige. Was würde auf der Anzeige passieren, wenn man in Programmzeile 11 die dritte Zahl (0) in 1 abändert?
- Versuche ein zweites Programm zu schreiben, mit dem du
ein beliebiges Muster auf der Balkenanzeige ausgibst.
|
Übung 2: Spannungwerte sichtbar machen (MO)
Um optisch schnell erfassen zu können, ob ein anliegender Signalwert kritisch oder nicht kritisch ist, setzt man häufig Balkenanzeigen ein.
Bewegt sich zum Beispiel ein Spannungswert im Toleranzbereich, zeigt die Balkenanzeige grünes Signal. Je mehr grün gezeigt wird, um so mehr weicht der Spannungswert
vom Sollwert ab. Gerät er hingegen in den kritischen Bereich, soll die LED gelb und im äußersten Notfall rot leuchten.
Dies soll mit Hilfe eines Potenziometers und einer LED Balkenanzeige in Übung 2 gezeigt werden.
Übung 2 - Spannungswerte sichtbar machen (MO) |
Material |
- 1x Seeed
Basis-Set
- 1x Grove LED
Bar
- 1x Grove Rotary Angle
Sensor
- 2x
Grove-Verbindungskabel
- 1x USB-Typ C Verbindungskabel zum
Laptop/Computer
|
Aufgaben |
- Baue die Schaltung auf; verbinde das Grove LED
Bar Modul mit D2 und das Grove Rotary Angle mit A0 auf dem Grove Shield.
- Übertrage das Programm LEDBarPoti_01. in den
Arduino Editor und speichere es ab.
- Beschreibe, wie die LED Balkenanzeige reagiert, wenn der
Mittelabgriff des Potenziometers von einer Maximalposition (Linksanschlag) in die andere (Rechtsanschlag) bewegt wird.
- Bestimme, ab welchem Spannungswert die Anzeige rot bzw.
gelb leuchtet.
- Beschreibe mit eigenen Worten die Wirkung jeder
Programmzeile auf die Balkenanzeige. Was würde auf der Anzeige passieren, wenn man in Programmzeile 11 die dritte Zahl (0) in 1 abändert?
______________________________________________________
- Zusatzübung (schwierig) Tausche den Rotary Angle Sensor gegen eine LDR-Schaltung (Spannungsteiler) aus.
- Schreibe ein Programm, dass die Lichtintensität auf der
Balkenanzeige anzeigt. Je höher der Lichtintensität, desto mehr LEDs leuchten. Bei direkter Bestrahlung des LDR soll der rote Bereich erreicht werden.
|
3 - Die verwendeten Funktionen aus der Bibliothek
Grove_LED_Bar.h
Zusätzlich zu den in Übung 1 bereits besprochenen
Funktionen kommt in dieser Übung nur eine neue Funktion hinzu.
setzt alle LEDs in der Balkenanzeige auf HIGH, deren gemappter Wert kleiner oder gleich wert ist.
Das Programm LEDBarPoti_01
Übung 3: LDR steuert Balkenanzeige (MO)
Die Zusatzaufgabe aus der vorherigen Übung mit einem LDR lässt sich zum Beispiel hervorragend in einem automatisch gesteuerten Beleuchtungssystem für
Anzuchtschalen, Frühbeete etc. einbinden. Sobald das Tageslicht schwächer wird, schaltet sich die LED-Beleuchtung im Gewächshaus ein und gleicht das fehlende Tageslicht aus. Ein
möglicher Lösungsvorschlag für das gesuchte Programm LED Bar LDR zeigt folgende Abbildung.
Zur Anpassung des Programms an die eigenen Bedürfnisse ist es sehr hilfreich, sich über das Terminal zum Beispiel die Messwerte des LDR anzeigen zu lassen. Dafür sind
die Programmzeilen 19 und 26 eingebaut. Die Funktion
- constrain(analogRead(LDR), Anfangswert, Endwert);
beschränkt die an die Variable intensitaet übergebenen Werte auf den Bereich [Anfangswert, Endwert].