In diesem Beitrag möchte ich dir die Grove LED Bar v2 vorstellen und zeigen, wie diese am Arduino UNO R3 programmiert wird.
Wie du eine LED Balkenanzeige am Arduino programmieren kannst habe ich dir bereits in zwei Beiträgen gezeigt, dieses Modul hier ist jedoch etwas spezieller und daher widme ich es einen speziellen Beitrag.
Welche Projekte sind mit einer Grove LED Bar am Arduino UNO R3 möglich?
Das mir vorliegende Model hat eine rote, gelbe, hellgrüne sowie sieben grüne LEDs, an diesen können wir nun Sensordaten (Temperatur, Luftdruck etc.) visualisieren oder auch die Lautstärke über einen Geräuschdetektor.
In den nachfolgenden Abschnitten werde ich dir die kleinen Projekte beschreiben und aufzeigen, wie diese in der Arduino IDE 2.0 programmiert werden.
Benötigte Ressourcen für die Projekte mit der Grove LED Bar am Arduino UNO R3
Wenn du die nachfolgenden Projekte nachbauen möchtest, dann benötigst du:
- einen Arduino UNO R3,
- ein USB-Datenkabel,
- ein Grove Base Shield,
- eine Grove LED Bar v2,
- einen Grove Drehpotentiometer,
- ein Grove Water Level Sensor
Aufbau der Grove LED Bar v2
Auf der Vorderseite des Moduls findest du die LED Balkenanzeige und auf der Rückseite die Grove Schnittstelle mit den Pinbeschriftungen. Zusätzlich hast du noch oben und unten Lötaugen für Stiftleisten im Rastermaß 2,54 mm.
Technische Daten
Betriebsspannung | 3.3V / 5V |
Umgebungstemperatur | -20 °C bis +80 °C |
LEDs | 10 Stück |
Abmaße (L x B x H) | 40 mm x 20 mm x 17 mm |
Wie erwähnt sind 10 LEDs auf dem LED Bard Modul verbaut, diese LEDs haben nachfolgende Daten:
LED | Wellenlänge | Lichtintensität |
---|---|---|
Rot | 630 – 637 nm | 50 – 70 mcd |
Gelb | 585 – 592 nm | 45 – 60 mcd |
Gelb-grün | 570 – 573 nm | 28 – 35 mcd |
Dieses ist lediglich ein Auszug aus den technischen Daten, welche du auf der offiziellen Seite von Seeed Studio zu diesem Modul findest.
Bibliothek für den Chip MY9221 auf der Grove LED Bar
Damit du dieses Modul in der Arduino IDE programmieren kannst, benötigst du eine Bibliothek. Von der Firma Seeed Studio bekommst du neben einer kleinen Wiki-Seite zu diesem Bauteil auch ebenso eine Bibliothek nebst Beispielen.
Um diese Bibliothek zu finden und zu installieren, musst du lediglich nach MY9221 im Bibliotheksmanager suchen und die Schaltfläche „INSTALL“ betätigen.
Programmieren in der Arduino IDE 2.0
Wenn die Bibliothek installiert wurde, dann können wir mit der Programmierung starten.
Steuern der LEDs per Drehpotentiometer
Für den Aufbau benötigst du zusätzlich noch einen Grove Drehpotentiometer, welcher am analogen Pin A0 angeschlossen wird.
#include <Grove_LED_Bar.h> //der Drehpotentiometer ist am //analogen Pin A0 angeschlossen #define rotaryResistor A0 // CLK Pin = 7, // DATA Pin = 6, // Orientation = 0 // Typ = LED_BAR_10 Grove_LED_Bar bar(7, 6, 0, LED_BAR_10); void setup() { //beginn der Kommunikation mit der LED Bar bar.begin(); //Wenn wir unseren Drehpotentiometer drehen //soll von grün nach rot navigiert werden bar.setGreenToRed(true); } void loop() { //auslesen des Wertes vom analogen Pin int value = analogRead(rotaryResistor); //mappen des Wertes auf den Gültigkeitsbereich der LED Bar float level = map(value, 0, 1020, 0, 10.1); //setzen des ermittelten Wertes bar.setLevel(level); //ein kleine Pause von 25 Millisekunden delay(25); }
Wenn du das kleine Programm auf den Arduino UNO gespielt hast und den Drehpotentiometer drehst, dann wird je nach Stellung ein Level an der LED Balkenanzeige gesetzt.
Grove Water Level Sensor & LED Bar v2
Mit dem Grove Water Level Sensor können wir den Füllstand eines Gefäßes prüfen. Natürlich müssen wir aufpassen, dass wir die offene Elektronik nicht mit Wasser benetzen, aber das Ganze ist natürlich erstmal sehr experimentell und daher in einem geschützten Bereich. Für den Aufbau benötigen wir jetzt zusätzlich noch ein kleines Gefäß und etwas Wasser.
Die offizielle Dokumentation zum Grove Water Level Sensor findest du auf der Wiki-Seite von Seeed Studio. Auf der Seite findest du auch zusätzlich noch ein Beispiel, wie du dieses per I2C programmierst.
Ich habe den Code in eine Bibliothek umgewandelt und stelle dir diese auf meinem GitHub Repository StefanDraeger / Grove-Water-Level-Sensor zum Download als ZIP-Datei bereit. Wie du eine Bibliothek in der Arduino IDE installierst, habe ich dir bereits im Beitrag Arduino IDE, Einbinden einer Bibliothek erläutert.
#include <waterlevelsensor.h> #include <Grove_LED_Bar.h> // CLK Pin = 7, // DATA Pin = 6, // Orientation = 0 // Typ = LED_BAR_10 Grove_LED_Bar bar(7, 6, 0, LED_BAR_10); WaterLevelSensor sensor = WaterLevelSensor(); void setup() { //beginn der seriellen Kommunikation mit 9600 baud Serial.begin(9600); //beginn der Kommunikation mit der LED Bar bar.begin(); bar.setGreenToRed(true); } void loop() { //lesen des Grove Wasser Level Sensors int waterLevel = sensor.readPercentage(); //Ausgeben des ermittelten Wertes Serial.print(waterLevel); Serial.println("%"); //mappen des Wertes auf den Gültigkeitsbereich der LED Bar float level = map(waterLevel, 0, 100, 0, 10.1); //setzen des ermittelten Wertes bar.setLevel(level); //ein kleine Pause von 25 Millisekunden delay(25); }
Wenn du den Code auf dem Arduino ausführst und das Gefäß nun langsam mit Wasser befüllst, dann steigt ebenso auch die LED Balkenanzeige.