Unterrichts- und Lernmaterial für Mikrocontroller
Unterrichts- und Lernmaterial fürMikrocontroller

Seeeduino Nano und Grove

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

Signale visualisieren

Elektrische Signale, die den Fortschritt eines bestimmten Prozesses signalisieren, lassen sich auf verschiedene Art und Weisen darstellen: Zeiger, LEDs, Töne, farbliche Balken etc..

Grove LED Bar

Handelsübliche LED-Balkenanzeigen bestehen i.a. aus 10 ein- oder mehrfarbigen LEDs, die sich, mit Hilfe verschiedener Protokolle (I2C, seriell, parallel) ansteuern lassen.

Technische Ausstattung des Moduls

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

  1. Gehe auf https://github.com und gib als Suchbegriff „Grove_LED_Bar“ ein.
  2. Bestätige die Suchanzeige und wechsle in den Downloadbereich.
  3. 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.
  4. Starte die Arduino-IDE. Gehe im Hauptmenü auf „Sketch – Bibliothek einbinden - .ZIP Bibliothek hinzufügen“.
  5. 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.

Das Programm LEDBar_01

Ü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.

  • setLevel(float wert)

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].

Druckversion | Sitemap
© Reinhard Rahner - Gettorf