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

Für alle folgenden Übungen wird vorausgesetzt, dass der Raspberry Pi soweit konfiguriert ist, dass das Betriebssystem und die Internetanbindung sowie das Modul RPi.GPIO installiert sind. Sollte das noch nicht der Fall sein, dann muss es jetzt nachgeholt werden. Hier ist die Anleitung.

1 - Pi-Cobbler

In dieser Übung verwenden wir den Raspi ohne gepufferte Éin- und Ausgänge. Das heißt, dass bei falscher Beschaltung und Programmierung der I/O Ports und/oder Dimensionierung der Bauteile der Raspberry Pi abraucht. Deshalb ist doppelte Vorsicht geboten. Für alle Übungen gilt:

  • Die Schaltung wird auf einem separten Steckbrett aufgebaut, das über Steckkabel mit dem Raspberry Pi verbunden ist. Empfehlenswert ist, einen Pi-Cobbler (Abb. 1) zu verwenden. Die Spannungsversorgung  muss während des Schaltungsaufbaus abgeschaltet sein.
  • Erst wenn die Schaltung komplett aufgebaut ist, wird die Spannungsversorgung eingeschaltet. Veränderungen an der Schaltung dürfen dann nicht mehr vorgenommen werden, wenn man Schäden an der Elektronik vermeiden will.
Abbildung 1 - Pi-Cobbler mit der Beschriftung aller 26 Anschlusspin.

2 - Die GPIOs und die Pinnummerierung

Leider ist die Bezeichnung der Anschlusspins des Raspi nicht eindeutig. Das erhöht die Fehleranfälligkeit bei Versuchsaufbauten. Die sogenannten GPIO Pins auf dem Raspi-Board sind durchnummeriert und es wurden ihnen gleichzeitig auch spezielle Namen gegeben (Abb. 1). Um Missverständnisse zu vermeiden, werden wir in allen Übungen die Pinbezeichnung der Steckerleiste verwenden (Abb. 2).

Abbildung 2 - Pinnummern und BCM Bezeichnung der GPIO-Anschlüsse auf dem Raspi. Hier für den Raspberry Pi Modell A und B Rev 2 (26 Pinsockel)

Die maximale Belastung der I/O Ports

Ganz allgemein sollte die Belastung pro Pin bei maximal 15mA liegen. Alle Pin zusammen vertragen nicht mehr als 50mA. Der maximale Spannungswert von 3,3V darf an den I/O Ports des Raspberry Py nicht überschritten werden.

3 - Eine LED blinkt

Eine LED blinkt
Material
  • 1x  Steckbrett (optional mit Pi-Cobbler)
  • 1x  Raspi mit Internetzugang
  • 1x  kabellose Maus, Tastatur
  • 1x  HDMI-Kabel
  • 1x  Schaltnetzteil
  • 1x  Widerstand, 1kOhm
  • 1x  LED, rot
Aufgaben
  • Achte darauf, dass der Raspi nicht mit dem Netz verbunden ist.
  • Baue die Schaltung nach Abb. 3 auf dem Steckbrett auf.
  • Verbinde das Steckernetzteil des Raspi mit der Steckdose und warte, bis der Rechner gebootet ist und die grafische Benutzeroberfläche erscheint.
  • Starte über Menü - Entwicklung - Python 2 (IDLE) die Entwicklungsumgebung Python 2 und öffne anschließend mit File - New File eine neue Editoroberfläche.
  • Übertrage das Programm led_pc1.py in den Editor.
  • Starte das Programm led_pc1.py mit dem Befehl Run - Run Module (F5) aus dem Hauptmenü.
  • Überprüfe, ob die LED neunmal blinkt und dann aus geht.
  • Beende deine Arbeit mit dem Raspi immer über Menu - Shutdown ...  und warte ca. zwei Minuten, bis der Rechner heruntergefahren ist. Ziehe anschließend den Netzstecker des Steckernetzteiles.

Schaltskizze und Schaltungsaufbau

Abbildung 3 - Schaltskizze zur Übung. Die Zahlen geben die Nummern der GPIO Pinsockelleiste an; rechts daneben stehen die BCM Bezeichner.
Abbildung 4 - Schaltungsaufbau auf dem Steckbrett.

Python-Befehle austesten in der Shell

Wenn man mit einem sog. Pi-Cobbler arbeitet, kann man die entsprechenden Anschlussstellen direkt am Hilfsgerät ablesen. Die Gefahr einer Fehlschaltung wird dadurch reduziert.  

 

Über Menu > Entwicklung > Python2 (IDLE) wird die Python-Shell geladen. Über die Shell lassen sich die verschiedenen Befehle, die die LED später in einem Programm ein- und ausschalten sollen, "ausprobieren". Dazu muss vorher ein Modul (eine Bibliotheksdatei RPi.GPIO) geladen werden, die verschiedene Funktionen enthält, mit denen sich die Ansteuerung der Ein- und Ausgänge des Raspi vereinfacht. Der Befehl zur Einbindung lautet

  • import RPi.GPIO as name

Mit einem zweiten Befehl wird die Art der Nummerierung und Adressierung der einzelnen Ports festgelegt. Es gibt zwei Möglichkeiten: BOARD oder BCM.

  • GPIO.setmode(GPIO.BCM) oder
  • GPIO.setmode(GPIO.BOARD)

 

Wer mit einem Pi-Cobbler arbeitet und die einzelnen BCM-Pinnamen direkt vom Cobbler ablesen kann, für den ist die Einstellung BCM günstig; wer darauf verzichtet, muss die Pins abzählen und sollte BOARD wählen. Diese Einstellung wird auch in den Beispielen vorgenommen.

Erst nachdem diese Festlegungen getroffen worden sind, werden die Ein- und Ausgänge definiert.

 

  • GPIO.setup(BCM-Pin, GPIO.OUT) oder
  • GPIO.setup(Board-Pin, GPIO.OUT)

 

Das Ein- und Ausschalten der LED übernimmt der Befehl

  • GPIO.output(Board-Pin, 1 oder True) oder
  • GPIO.output(BCM-Pin, 1 oder True)
Abbildung 5 - Eintragungen in der Python Shell. Fehlermeldungen werden rot abgesetzt. Hier bezieht sie sich darauf, dass einzelne Ports, die aufgerufen wurden, in einer vorherigen Sitzung bereits geöffnet und nicht wieder geschlossen wurden.

Über die Python Shell kann auf diese Weise ausprobiert werden, wie ein Befehl aufzurufen ist, ohne dass man jedesmal ein Programm starten muss. In Abb. 5 kann man sehen, dass einmal im Modus BCM gearbeitet und der Port 4 (GPIO4) angesprochen wurde. Der gleiche Port taucht im Modus BOARD als Port 7 auf. Die an GPIO4 angeschlossene LED leuchtet auf, wenn Pin7 True oder 1 ist und erlischt bei False oder 0.

Das Programm

Abbildung 6 - Programm led1.py

Wie arbeitet das Programm pc_led1.py?

Kommentarzeile

Eine einfache Kommentarzeile wird mit dem Zeichen

  • #

eingeleitet und reicht bis zum Ende einer Zeile.

Mehrzeilige Kommentare werden mit

  • """        eingeleitet und mit
  • """        beendet.

Die restlichen Programmzeilen haben wir bereits im Abschnitt Python Befehle austesten in der Shell besprochen.

4 - Zwei LEDs blinken wechselseitig

Eine LEDs blinken wechselseitig
Material
  • 1x  Steckbrett (optional mit Pi-Cobbler)
  • 1x  Raspi 2 mit Internetzugang
  • 1x  kabellose Maus, Tastatur
  • 1x  HDMI-Kabel
  • 1x  Schaltnetzteil
  • 2x  Widerstand, 470Ohm
  • 2x  LED, rot
Aufgaben
  • Achte darauf, dass der Raspi nicht mit dem Netz verbunden ist.
  • Baue die Schaltung nach Abb. 7 auf dem Steckbrett auf.
  • Verbinde das Steckernetzteil des Raspi mit der Steckdose und warte, bis der Rechner gebootet ist und die grafische Benutzeroberfläche erscheint.
  • Starte über Menü - Entwicklung - Python 2 (IDLE) die Entwicklungsumgebung Python 2 und öffne anschließend mit File - New File eine neue Editoroberfläche.
  • Übertrage das Programm led_pc2.py in den Editor.
  • Starte das Programm led_pc2.py mit dem Befehl Run - Run Module (F5) aus dem Hauptmenü.
  • Überprüfe, ob die LEDs im Gegentakt an und aus gehen.
  • Beende deine Arbeit mit dem Raspi immer über Menu - Shutdown ...  und warte ca. zwei Minuten, bis der Rechner heruntergefahren ist. Ziehe anschließend den Netzstecker des Steckernetzteiles.

Schaltskizze und Schaltungsaufbau

Abbildung 7 - Schaltskizze zur Übung. Die Zahlen geben die Pinnummern auf dem Raspi an; rechts daneben stehen die BCM Bezeichner.
Abbildung 8 - Zwei LEDs, die mit GPIO4 und GPIO17 verbunden sind und im Wechsel ein und aus geschaltet werden.

Das Programm

Wie arbeitet das Programm?

Vielleicht ist aufgefallen, dass wir in dieser Schaltung mit zwei LEDs plötzlich mit Vorwiderständen von 470 Ohm arbeiten. Der Grund ist schnell erklärt: ich habe low current LEDs (3mm) genommen und da reichen diese Widerstände aus. Wer selbst experimentieren möchte, sollte unbedingt vorher die Ströme durch die LED messen, bevor er die Schaltung mit dem Raspi ausführt .

Im Gegensatz zum Programm led_pc1.py werden in dieser Übung zwei LEDs wechselseitig ein und aus geschaltet. Die Änderungen im Programm betreffen drei zusätzliche Programmzeilen. Zunächst muss der neue I/O Port an Pin11 auf Ausgang gesetzt werden

  • io.setup(11, io.OUT)

und in der FOR-Schleife wird zusätzlich, wenn die eine LED eingeschaltet wird, die andere ausgeschaltet und umgekehrt.

5 - Lauflicht mit fünf LEDs

In dieser Übung werden 5 LEDs so beschaltet, dass ein Beobachter den Eindruck hat, dass die Lichter von links nach rechts oder von rechts nach links laufen.

Lauflicht mit fünf LEDs
Material
  • 1x  Steckbrett (optional mit Pi-Cobbler)
  • 1x  Raspi 2 mit Internetzugang
  • 1x  kabellose Maus, Tastatur
  • 1x  HDMI-Kabel
  • 1x  Schaltnetzteil
  • 5x  Widerstand, 470Ohm
  • 5x  LED, rot
Aufgaben
  • Achte darauf, dass der Raspi nicht mit dem Netz verbunden ist.
  • Baue die Schaltung nach Abb. 9 auf dem Steckbrett auf.
  • Verbinde das Steckernetzteil des Raspi mit der Steckdose und warte, bis der Rechner gebootet ist und die grafische Benutzeroberfläche erscheint.
  • Starte über Menü - Entwicklung - Python 2 (IDLE) die Entwicklungsumgebung Python 2 und öffne anschließend mit File - New File eine neue Editoroberfläche.
  • Übertrage das Programm led_pc3.py in den Editor.
  • Starte das Programm led_pc3.py mit dem Befehl Run - Run Module (F5) aus dem Hauptmenü.
  • Überprüfe, ob der Lauflichteffekt zu beobachten ist.
  • Beende deine Arbeit mit dem Raspi immer über Menu - Shutdown ...  und warte ca. zwei Minuten, bis der Rechner heruntergefahren ist. Ziehe anschließend den Netzstecker des Steckernetzteiles.

Schaltskizze und Schaltungsaufbau

Abbildung 9 - Schaltbild und Schaltskizze zum Lauflicht mit 5 LEDs. In der Schaltskizze sind sowohl die GPIO-Anschlüsse (BCM-Format) als auch die Pin-Anschlüsse (BOARD-Format) angegeben.

Das Programm led_pc3.py

Abbildung 10 - Programm led_pc3.py. Die fünf LEDs sind an die Pin 7, 11, 13, 15 und 18 angeschlossen.

Wie arbeitet das Programm led_pc3.py?

Neu ist hier die Aufzählungsliste ioPin

In ihr sind alle Pins benannt, an denen eine LED angeschlossen ist (BOARD-Format - Abb. 2). Mit dem folgenden Schleifenaufruf werden alle I/O Pin auf Ausgang gesetzt.

Die folgende Doppelschleife wird zehnmal durchlaufen und das Programm dann beendet, wobei vorher alle gesetzten Ports zurückgesetzt werden.

Mit jedem Durchlauf werden nacheinander die LEDs ein- und ausgeschaltet; dazwischen liegt jeweils eine Pause von 0,1s.

Kommentar schreiben

Kommentare

  • olaf (Sonntag, 10. Dezember 2017 08:35)

    wow...die mit Abstand beste Site, die ich bisher zu diesem Thema gesehen habe :-))
    Vielen Dank dafür. Hilft super beim Erklären!!

  • David Eisenblätter (Sonntag, 11. Februar 2018 13:38)

    Sehr schön erklärt, und zufällig heute, wo ich nochmal nach einer detailierten Gedankenstütze diesbezüglich gesucht habe!

    Vielen vielen Dank!

    David.

Bitte geben Sie den Code ein
* Pflichtfelder
Druckversion Druckversion | Sitemap
© Reinhard Rahner - Gettorf