2.2 - Pegelanzeige¶
Nachdem das erste Projekt lediglich das Blinken einer einzelnen LED zum Ziel hatte, wollen wir uns nun dem LED-Balkendiagramm zuwenden. Dieses besteht aus einer Serie von 10 LEDs in einem Kunststoffgehäuse und dient in der Regel zur Darstellung von Leistungs- oder Lautstärkepegeln.
Erforderliche Bauteile
Für dieses Projekt benötigen wir die folgenden Komponenten.
Es ist sicherlich bequem, gleich ein komplettes Kit zu kaufen. Hier der entsprechende Link:
Bezeichnung |
ARTIKEL IM SET |
KAUF-LINK |
---|---|---|
Kepler Kit |
450+ |
Die Bauteile können jedoch auch einzeln über die unten aufgeführten Links erworben werden.
Nr. |
KOMPONENTENBESCHREIBUNG |
ANZAHL |
KAUF-LINK |
---|---|---|---|
1 |
1 |
||
2 |
Micro-USB-Kabel |
1 |
|
3 |
1 |
||
4 |
Mehrere |
||
5 |
10 (220Ω) |
||
6 |
1 |
Schaltplan
Das LED-Balkendiagramm besteht aus 10 einzeln ansteuerbaren LEDs. Dabei ist die Anode jeder dieser LEDs an die Pins GP6 bis GP15 angeschlossen. Die Kathode ist jeweils über einen 220-Ohm-Widerstand mit GND verbunden.
Verkabelung
Programmcode
Bemerkung
Sie können die Datei
2.2_display_the_level.ino
im Verzeichniskepler-kit-main/arduino/2.2_display_the_level
öffnen.Oder Sie kopieren den Code in die Arduino IDE.
Vergessen Sie nicht, vor dem Hochladen das richtige Board (Raspberry Pi Pico) und den passenden Port auszuwählen.
Sobald das Programm läuft, werden Sie feststellen, dass die LEDs im LED-Balkendiagramm nacheinander aufleuchten und erlöschen.
Funktionsweise
Jede der zehn LEDs im LED-Balkendiagramm wird durch einen eigenen Pin gesteuert. Das bedeutet, dass wir diese zehn Pins zuerst definieren müssen.
Im Abschnitt setup()
wird eine For-Schleife verwendet, um die Pins 6 bis 15 nacheinander als Ausgang (OUTPUT) zu initialisieren.
for(int i=6;i<=15;i++)
{
pinMode(i,OUTPUT);
}
In der loop()
-Funktion wird ebenfalls eine For-Schleife verwendet, um die LEDs sequenziell blinken zu lassen (0,5 Sekunden ein, dann 0,5 Sekunden aus).
for(int i=6;i<=15;i++)
{
digitalWrite(i,HIGH);
delay(500);
digitalWrite(i,LOW);
delay(500);
}