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

Raspberry Pi und Grove Base HAT

Leuchtdiode (LED)

Hintergrundwissen zur Leuchtdiode (LED), ihr Schaltzeichen, der Anschlussbelegung ihrer Kontakte, zu Widerständen und ihren Farbcodes erhältst du in den

Wer sich mit LEDs schon auskennt, kann in den

und in den

zusätzlich etwas über Durchlassspannungen (Flussspannungen) und die Berechnung von Vorwiderständen erfahren.

 

Lies dir mindestens Vorschlag 1 vorher durch, anschließend geht es hier weiter.

  • In Übung 0 wird ein Schnell-Check für Grove Sensoren vorgestellt. Es basiert auf hinterlegten Python-Programmen des Herstellers Seeed, die sich auch abändern lassen.
  • In Übung 1 wird eine LED so angesteuert, dass sie im Sekundentakt blinkt. Diese Übung kann in der Mittel- und Oberstufe durchgeführt werden.
  • Es schließt sich eine Betrachtung des Schaltungsaufbaus des Moduls Grove LED an. Je nach Kenntnisstand kann bei der Analyse der Schaltung unterschiedlich tief eingestiegen werden und führt zu ...
  • Übung 2 - Leistungsmessung; ein Thema für die Mittel- und Oberstufe. Die hier notwendigen Strom- und Spannungsmessungen können nur durchgeführt werden, wenn man den Grove 4-Pin - male Draht auf ein Steckbrett herausführt und dort die Messungen ausführt.

Didaktisch methodische Einordnung

 

In dieser Lektion lernst du

  • mit einem RasPi und Grove HAT umzugehen.
  • was eine LED ist und wie sie beschaltet wird.
  • was eine Kathode und eine Anode ist.
  • was Durchlass- und Sperrrichtung bei einer Diode bedeuten.
  • etwas über Kohleschichtwiderstände und ihren Farbcode.
  • einen einfachen Schaltplan zu lesen.
  • die technische und physikalische Stromrichtung auseinanderzuhalten.
  • eine Schaltung mit einer oder mehreren LEDs nach Schaltplan aufzubauen und nach eigenen Vorgaben zu programmieren.
  • Programmierfehler in der Sprache Python zu erkennen und zu beheben.

Übung 0 – Schnell-Check von Grove Sensoren

Seeedstudio hat für viele seiner Grove Sensoren eine Möglichkeit geschaffen, diese schnell auf ihre Funktionstüchtigkeit zu überprüfen. Dazu verbindet man den gewählten Sensor mit einem Grove-Anschluss auf dem Grove Base HAT und gibt im Terminalfenster anschließend eine Befehlszeile ein.

 

Wenn man wissen möchte, an welchen der zur Verfügung stehenden Grove-Ports auf dem Base HAT die Sensoren anzuschließen sind, einfach den Sensornamen eingeben und mit der Rücklauftaste bestätigen. Es erscheinen daraufhin alle Ports oder Slots, mit denen der ausgesuchte Sensor verbunden werden darf.

Beispiel

 

Die Terminaleingabe von

  • grove_led

 

führt zur Rückmeldung

 

 

 

 

Abb. 1

Abfrage, welche Port-Anschlüsse für das Modul Grove LED verfügbar sind.

  • grove_led 5

lässt eine mit Port D5 verbundene LED im Sekundentakt blinken.

 

  • grove_

listet alle zurzeit verfügbaren Grove Sensoren im Terminalfenster auf, die sich direkt über die Konsole ansprechen lassen.

Für die erste Übung wird nur ein Grove Modul benötigt. Es führt in die Thematik dieses Kapitels ein, den RasPi mit einem Grove Base HAT und mit ihm verbundene Sensoren anzusprechen.

Übung 1 – Blinkende LED  (MO)

Inhaltlich ist dieses Thema geeignet für die obere Mittelstufe und die Oberstufe.

Blinkende LED (MO)

Aufgaben

  • Baue die Schaltung nach Vorgabe auf: eine LED wird mit D5, die zweite mit D22 auf dem Grove Base HAT verbunden.
  • Übertrage das Programm zero_LED1.py in den Thonny Editor und speichere das Programm ab.
  • Starte das Programm und überprüfe seine Wirkung.
  • Versuche jede Zeile des Quellcodes mit eigenen Worten zu erklären.
  • Schreibe ein zweites Programm, bei dem die beiden LEDs nacheinander im Sekundentakt aufleuchten.

Material

  • 1x Basisausstattung Grove (RasPi 3> + Grove Base HAT + Netzteil + Wifi-Modul)
  • 1x Grove Modul LED

Eine Frage habe ich aber noch …

  • Wenn das Grove Modul LED an Port D5 angeschlossen werden soll, mit welchem Portpin des RasPi ist es dann verbunden?
  • Beantworte die Frage auch für die Ports D16 und D18.
  • Welches der vier Verbindungskabel überträgt die Signale des RasPi an das Modul? Gib die Farbe an.
  • Welche Bedeutung haben das schwarze und das rote Kabel?
  • In welcher Programmzeile des Python Programms LED1.py wird der Portanschluss der LED aufgerufen?

Schaltungsaufbau

 

 

 

 

 

 

 

Abb. 2 – Zwei Grove LED angeschlossen an Port D5 und Port D22 des Base HAT.

Wie entwickle ich Programmcode?

Ein leichter Zugang ist, wenn man sich vorstellt, dem Rechner mündliche Anweisungen zu geben. Die werden frei formuliert und könnten zum Beispiel so aussehen:

  • RasPi, schalte die LED an.
  • Warte dann 1 Sekunde.
  • Schalte danach die LED wieder aus.
  • Warte 1 Sekunde.

Eine solche Ansammlung von einzelnen Handlungsanweisungen bezeichnet man auch als Pseudocode.

 

Um dem Computer (RasPi) Anweisungen geben zu können, der nur seine eigene Sprache versteht, müssen ihm zu Beginn der Kommunikation Sprachbibliotheken für die benutzte Hardware mitgegeben werden. Sie enthalten all die Worte/Sprachelemente (Funktionen), die der Rechner versteht und befinden sich in unserem Fall in den Bibliotheken gpiozero und time.

 

Der RasPi hat sehr viele Pins, die mit der Außenwelt kommunizieren können. Wenn an einem bestimmten Pin eine LED oder ein anderes Bauteil angeschlossen wird, dann muss dem Rechner zu Beginn der Handlungsanweisungen mitgeteilt werden, an welchen Pins etwas angeschlossen ist. Und die Pins haben unterschiedliche Bezeichner:

  • die physikalische Pin-Nummer auf dem Board und
  • die BCM-Nummer oder GPIO-Nummer. Sie wird vom Hersteller des Boards (Broadcom) vergeben.

Der Pseudocode könnte mit diesen Informationen jetzt so aussehen:

Das Programm zero_LED1.py

 

 

 

 

 

 

 

Abb. 3 – Python Programm zero_LED1.py

Wie arbeitet das Programm zero_LED1.py?

Programmzeilen 1 und 2

Die Bibliotheksfunktionen time und gpiozero werden importiert.

 

Programmzeile 4

Die Portverbindung GPIO5 wird led zugewiesen.

 

Programmzeilen 6 – 10

In der Endlosschleife while True: werden wiederholt die folgenden Anweisungen ausgeführt:

  • Die LED an GPIO5 wird eingeschaltet.
  • Sie bleibt für 1 Sekunde eingeschaltet.
  • Die LED an GPIO5 wird ausgeschaltet.
  • Sie bleibt für 1 Sekunde ausgeschaltet.
  • Es geht weiter mit dem ersten Spiegelpunkt.

Alle eingerückten Befehle (Zeilen 7 – 10) gehören zur while-Schleife.

 

Das Programm wird abgebrochen über Strg-C.

Der Aufbau des Modul Grove LED

Die folgende Schaltskizze zeigt den Aufbau des Grove LED.

 

 

 

 

 

 

 

 

 

 

 

Abb. 4

Schaltungsaufbau des Moduls Grove LED. Ein NPN-Transistor wird als Schalter betrieben. Der Leuchtdiode ist ein Potentiometer und ein 220 Ohm Widerstand vorgeschaltet. Über das Poti lässt sich die Leuchtstärke der LED verändern.

Ein HIGH-Signal schaltet den Transistor durch, die Spannung UCE sackt auf ca. 0,3 Volt, die LED leuchtet. Der Vorwiderstand der LED liegt, je nach Einstellung des Schleifers auf dem Potenziometer zwischen 720 Ohm und 220 Ohm. Mit einer angenommenen Flussspannung von 1,9 V bei einer roten LED liegt der maximale Kollektorstrom bei ca. 5 mA. Bitte selbst noch einmal nachrechnen!

Die grobe Überprüfung der Gesamtstromstärke in der Schaltung wird in der folgenden Übung durchgeführt.

Übung 2 – Leistungsmessung  (MO)

Gesamtstrommessung (MO)

Aufgaben

  • Schließe das Modul Grove LED an D5 des Grove Base HAT an.
  • Miss mit einem Drehspulinstrument den Stromfluss Iges.
  • Bestimme rechnerisch die elektrische Leistungsaufnahme der Schaltung.

Material

  • 1x Basisausstattung Grove (RasPi 3.0 + Grove Base HAT + Netzteil + Wifi-Modul)
  • 1x  Steckbrett
  • 1x LED, rot
  • 2x Grove - 4 Pin male Draht

Ergebnisse

  • Die Spannungsmessung zwischen dem roten und schwarzen „Grove – 4 Pin male“ Steckdraht ergab eine Festspannung von erwarteten Ugesamt = 3,3 V.

  • Die Strommessung ergab eine maximale Gesamtstromstärke von ca. Iges,max = 5 mA bei einem Potenziometerwert von ca. 0 Ohm.  

  • Die maximale Gesamtleistung errechnet sich zu Pelektr.,max = 0,18..W oder 180 mW.

Übung 3 – Dimmer  (MO)

Diese Übung baut auf einigen Vorkenntnissen auf, die du erst einmal erarbeiten solltest, bevor du diese Übung beginnst: Abschnitt 7 („Was ist eigentlich ein Tastverhältnis“), Abschnitt 8 („Dunkle Zeiten für LEDs“) und Abschnitt 9 („Eine LED dimmen“).

LEDs lassen sich über eine Veränderung des Tastverhältnisses einer anliegenden Rechteckspannung in ihrer Leuchtkraft beliebig verändern; dies wird Thema der folgenden Übung sein.

Dimmer (MO)

Aufgaben

  • Verbinde das Modul Grove LED mit Port PWM des Grove Base HAT.
  • Lade das Programm zero_LED1pwm.py in den Thonny Editor und speichere es ab.
  • Starte das Programm und überprüfe seine Wirkung.

Material

  • 1x  Basisausstattung Steckbrett (RasPi 3.0 + Grove Base HAT + Netzteil + Wifi-Modul)
  • 1x  Grove LED, rot
  • 1x  Steckdraht

Pulsweitenmodulation (PWM) mit dem RasPi

An welchem GPIO-Pin des RasPi lässt sich PWM durchführen? Nicht jeder Dx-Port ist dafür geeignet. Erinnern wir uns jetzt an den Schnell-Check der Grove-Sensoren; gib im Terminalfenster ein:

  • grove_led

und schließe die Eingabe mit der Rücklauftaste ab. Die Antwort erscheint prompt auf dem Bildschirm (s. Abb. 1); es ist GPIO12 des RasPi. Damit kann die Erstellung des Programms beginnen.

Das Programm zero_LED1pwm.py

Wie arbeitet das Programm zero_LED1pwm.py?

In den Programmzeilen 1 und 2 werden Bibliotheksfunktionen geladen; anschließend wird GPIO12 der Variablen led und den Variablen stufen und pause je ein Wert zugewiesen.

In der sich anschließenden Endlosschleife zwischen Programmzeile 8 und 11 wird in einer FOR-Schleife der Leuchtwert der LED (über das Tastverhältnis) stetig verändert und an der LED für eine kurze Zeit (pause) angezeigt. Nach Erreichen des maximalen Helligkeitswertes fängt alles wieder von vorne an.

Eine einfachere Programmier-Variante für das pulsierende Leuchten einer LED

Die gpiozero Bibliothek enthält in der Unterdatei PWMLED eine Funktion

  • pulse(fade_in_time, fade_out_time, n)

mit deren Hilfe die Leuchtkraft einer LED langsam auf- und abschwellen kann. Dabei haben die Parameter folgende Bedeutung

  • fade_in_time gibt die Anzahl Sekunden des fade-in an
  • fade_out_time gibt die Anzahl Sekunden des fade-out an
  • n gibt an, wie oft das fade_in – fade_out wiederholt werden soll

Das schauen wir uns gleich mal im Programm zero_LED1_pwm2.py an.

Der led.pulse(5,5,5) Befehl bewirkt, dass sowohl das fade-in als auch fade-out jeweils 5 Sekunden benötigen und das dieser Vorgang fünf mal wiederholt wird. Anschließend wird die LED auf LOW gesetzt.

Weiter geht´s mit dem Kapitel Taster und LED.

Druckversion | Sitemap
© Reinhard Rahner - Gettorf