0% fanden dieses Dokument nützlich (0 Abstimmungen)
5 Ansichten62 Seiten

Elektronik Guide Raspberry Pi Edition

Der Elektronik-Guide Raspberry Pi Edition bietet eine Einführung in die Programmierung mit der Python-Bibliothek GPIO Zero, die das Hardware-nahe Programmieren erleichtert. Das enthaltene Elektronik-Set ermöglicht es Nutzern, ohne Vorkenntnisse mit verschiedenen Bauteilen zu experimentieren und eigene Steuerungen zu programmieren. Der Guide zielt darauf ab, die Komplexität der Kombination von Elektronik und Software zu reduzieren und den Einstieg in das Physical Computing zu erleichtern.

Hochgeladen von

Bertin Deriban
Copyright
© All Rights Reserved
Wir nehmen die Rechte an Inhalten ernst. Wenn Sie vermuten, dass dies Ihr Inhalt ist, beanspruchen Sie ihn hier.
Verfügbare Formate
Als PDF, TXT herunterladen oder online auf Scribd lesen
0% fanden dieses Dokument nützlich (0 Abstimmungen)
5 Ansichten62 Seiten

Elektronik Guide Raspberry Pi Edition

Der Elektronik-Guide Raspberry Pi Edition bietet eine Einführung in die Programmierung mit der Python-Bibliothek GPIO Zero, die das Hardware-nahe Programmieren erleichtert. Das enthaltene Elektronik-Set ermöglicht es Nutzern, ohne Vorkenntnisse mit verschiedenen Bauteilen zu experimentieren und eigene Steuerungen zu programmieren. Der Guide zielt darauf ab, die Komplexität der Kombination von Elektronik und Software zu reduzieren und den Einstieg in das Physical Computing zu erleichtern.

Hochgeladen von

Bertin Deriban
Copyright
© All Rights Reserved
Wir nehmen die Rechte an Inhalten ernst. Wenn Sie vermuten, dass dies Ihr Inhalt ist, beanspruchen Sie ihn hier.
Verfügbare Formate
Als PDF, TXT herunterladen oder online auf Scribd lesen

+ + GPIO zero

Elektronik-Guide Raspberry Pi Edition


Impressum
Elektronik-Guide Raspberry Pi Edition

Version: 2022-12-16

Herausgeber:
Patrick Schnabel
Droste-Hülsho -Str. 22/4
Dieses Elektronik-Set wurde nach den geltenden europäischen
71642 Ludwigsburg Richtlinien entwickelt und hergestellt. Der bestimmungsgemäße
Deutschland Gebrauch aller Bauteile ist in dieser Anleitung beschrieben. Der Nutzer
ist für den bestimmungsgemäßen Gebrauch und Einhaltung der
geltenden Regeln verantwortlich. Bauen Sie die Schaltungen deshalb
USt-ID-Nr.: DE207734730 nur so auf, wie es in dieser Anleitung beschrieben ist. Das Elektronik-
Set darf nur zusammen mit dieser Anleitung weitergegeben werden.
WEEE-Reg.-Nr.: DE80632679

[Link]

Das Symbol mit der durchkreuzten Mülltonne bedeutet, dass dieses


Produkt nicht mit dem Hausmüll entsorgt, sondern als
Elektroschrott dem Recycling zugeführt werden muss. Mit dem Kauf
dieses Produkts wurden die Gebühren für die Entsorgung entrichtet.
Die nächstgelegene kostenlose Annahmestelle für Elektroschrott
erfahren Sie von Ihrer regional zuständigen Abfallwirtschaft.

2

ff
Vorwort (1)
Elektronik, einfach und leicht verständlich. Das ist GPIO Zero ist eine Python-Bibliothek zum
mein Motto. Auch zusammen mit dem Raspberry Pi. Programmieren von elektronischen Bauteilen. Oder,
Aber, Elektronik und Raspberry Pi ist eine schwierige wie es heute genannt wird, Physical Computing oder
Ehe. So dachte ich am Anfang. Die Schwierigkeit liegt auch Hardware-nahes Programmieren. GPIO Zero
nicht in der Elektronik, die am Raspberry Pi in ein reduziert die Komplexität auf wenige Zeilen
enges Korsett gezwängt wird. Nein, es ist die Programmcode.
Kombination aus Elektronik und Software-
Programmierung. Denn wenn etwas nicht funktioniert, Auf der Programmierseite ist GPIO Zero zusammen
wo liegt dann der Fehler? In der Verschaltung der mit Python die ultimative Lösung für Einsteiger in die
Bauteile oder im Programmcode? Bei dieser Hardware-nahe Programmierung. Aber auch
doppelten Komplexität wird aus Lust schnell Frust. Fortgeschrittene, die bisher alles mit „[Link]“
Das weiß ich aus Erfahrung. gemacht haben, lohnt sich ein Blick darauf. Ich nde,
das Programmieren von GPIOs ist dadurch viel
Wir brauchen also möglichst einfache Schaltungen einfacher. Du kannst Dich mehr auf die eigentliche
und ganz kurze und leicht lesbare Quelltexte. Nach Funktionalität Deines Programms konzentrieren.
Möglichkeit solltest Du nicht zu viel falsch machen
können. Außer die üblichen Bedienungsfehler. Die Jetzt brauchst Du nur noch ein dazu passendes
Raspberry-Pi-Community hat gegen die Komplexität Bauteile-Sortiment zum Experimentieren. Das gibt es
eine Lösung gefunden: GPIO Zero. natürlich auch. Allerdings muss man die im Ausland
bestellen. Wenn sie denn mal verfügbar wären. Mir ist
schon klar, dass diese billigen Elektronik-Sets mit

3

fi
Vorwort (2)
einer handvoll Bauteile kein großes Geschäft ausprobieren kann, ohne Änderungen am Aufbau
bedeuten. Das ist für die großen und bekannten vornehmen zu müssen.
Raspberry-Pi-Shops eher so ein Mitnahme-Produkt.
Entsprechend stiefmütterlich sind diese Sets Herausgekommen ist das „Elektronik-Set Raspberry
ausgestattet und nur gelegentlich verfügbar. Pi Edition“ mit Anleitung und Bauteilen zum
Experimentieren und Programmieren mit Python und
Das ist wirklich schade. Der Python-Bibliothek GPIO GPIO Zero. Dieser Elektronik-Guide soll dabei kein
Zero wird das nicht gerecht. Aus meiner Sicht muss Ersatz für die o zielle Dokumentation sein, sondern
das nicht sein. Deshalb garantiere ich die dauerhafte die Schwelle zum Einstieg noch ein wenig tiefer
Verfügbarkeit des Elektronik-Sets „Raspberry Pi legen.
Edition“.
Ich nde, so macht Experimentieren mit dem
Für diesen Elektronik-Guide „Raspberry Pi Edition“ Raspberry Pi und Elektronik viel mehr Spaß.
habe ich mir die o zielle englischsprachige
Dokumentation von GPIO Zero zur Brust genommen
und alle Beispiele ausprobiert. Ich habe mir dann
überlegt, welche Bauteile wirklich notwendig sind, um
nicht alle, aber möglichst viele sinnvolle Experimente
durchzuführen. Die meisten Aufbauten und
Programmcodes weichen deshalb vom Original ab,
damit man mehrere Programmcodes nacheinander

4

fi
ffi
ffi
Elektronik-Set Raspberry Pi Edition

Das Elektronik-Set Raspberry Pi Edition enthält


viele elektronische Bauteile, um Hardware-nahes
Programmieren zu lernen, Steuerungen selber zu
programmieren und ohne Lötkolben zu
experimentieren.

Eine strukturierte Einführung berücksichtigt die


Besonderheiten von Elektronik und
Programmierung ohne Vorkenntnisse.

• Hardware-nahes Programmieren mit Python


und GPIO Zero ohne Vorkenntnisse.
• Grundlagen lernen, um Steuerungen selber zu
programmieren.
• Ohne Lötkolben experimentieren. Bauteile
einfach stecken.

[Link]

5

Inhaltsverzeichnis

6

Einführung und Grundlagen
Raspberry Pi: Was ist das?
Modelle
Den Raspberry Pi gibt es in drei verschiedenen
Größen. Als kleinen und sparsamen Raspberry Pi
Zero. Als ebenfalls sparsam und leistungsfähigeren
Raspberry Pi 3 A+. Und das Topmodell Raspberry Pi
4 B mit vier schnellen Rechenkernen und wahlweise
1, 2 oder 4 GByte Arbeitsspeicher.

Typische Anwendungen
Die Rechenleistung des System-on-Chip (Prozessor)
ist nicht besonders groß, weshalb man mit dem
Raspberry Pi beim Experimentieren immer wieder an
dessen Leistungsgrenzen stößt. Für viele
Anwendungen reicht die Leistungsfähigkeit
vollkommen aus.
Der Raspberry Pi ist ein Mini-Computer, der
ursprünglich für Schüler und Studenten gedacht war.
Grundsätzlich ist er auch für Bastler, Maker und • Mini-PC
Hobby-Elektroniker interessant. Ganz nebenbei kann • Steuerungs-Computer
man damit viel über die grundsätzliche • Multimedia-Center
Funktionsweise von Computern, Programmieren und • Netzwerk-Speicher
auch Elektronik lernen.

8

Spannung und Strom
Was ist der elektrische Strom?

• Der elektrische Strom ist die Übertragung elektrischer


Energie durch die Bewegung freier Ladungsträger
(Elektronen oder Ionen).
• Die technische Stromrichtung wird in Schaltungen mit einem
roten Pfeil von Plus (+) nach Minus (-) angegeben.
• Das Formelzeichen des elektrischen Stroms bzw. der
elektrischen Stromstärke ist das große „I“.
• Die gesetzliche Grundeinheit des elektrischen Stroms ist
Ampere (A). Kleinere Ströme werden in Milliampere (mA) und
größere in Kiloampere (kA) angegeben.

Was ist die elektrische Spannung?

• Die elektrische Spannung ist die Kraft auf freie Elektronen


und die Ursache des elektrischen Stroms. Die elektrische
Spannung entsteht durch einen Ladungsunterschied.
• Der Ladungsunterschied wird oft als blauer Pfeil von Plus (+)
nach Minus (-) angegeben.
• Das Formelzeichen der elektrischen Spannung ist das große
„U“.
• Die gesetzliche Grundeinheit der elektrischen Spannung ist
Volt (V). Kleinere Spannungen werden in Millivolt (mV) und
größere in Kilovolt (kV) oder Megavolt (MV) angegeben.

9

Elektronik mit dem Raspberry Pi
Einschränkungen

• Nur digitale Eingänge und Ausgänge


• Keine analogen Eingänge und Ausgänge, nur mit
ADC-Chip möglich
• Keine Ströme schaltbar
• Defektanfälligkeit bei fehlerhafter Beschaltung

Wann ist Elektronik mit einem Raspberry Pi


sinnvoll?
Elektronik mit dem Raspberry Pi ermöglicht Dank
schaltbarer digitaler Ein- und Ausgänge vielfältige Ein Raspberry Pi für Physical Computing oder
Anwendung im Bereich der Steuerung von Hardware-nahes Programmieren ist dann sinnvoll,
elektronischen Bauteilen. wenn die Hardware einem vollwertiger Computer
„Digital“ bedeutet, dass die Ein- und Ausgänge der ähneln muss. Zum Beispiel zur Nutzung in einer
binären Logik folgen und nur zwei Zustände Netzwerk-Umgebungen oder die Installation von
annehmen bzw. unterscheiden können. Das heißt zusätzlicher Software.
aber auch, analoge Signale können an den Die Stärken des Raspberry Pi liegen klar in der
Eingängen nicht ausgewertet werden. Typische Computer-Architektur, die die Ausführung von Open-
Mikrocontroller haben hier mehr Möglichkeiten. Source-Software für Linux ermöglicht.

10

GPIO - General Purpose Input Output
General Purpose Input Output, kurz GPIO, bezeichnet
programmierbare Ein- und Ausgänge, die man für
unterschiedliche Zwecke nutzen kann. GPIOs werden
auf Platinen als Lötpunkte oder Pins in Form einer
Stiftleiste herausgeführt und dienen als Schnittstelle zu
anderen Systemen, Schaltungen oder Bauteilen, um
diese über einen Raspberry Pi zu steuern. Dabei kann
der Raspberry Pi bei entsprechender Programmierung
digitale Signale von außen annehmen (Input) oder
Signale nach außen abgeben (Output).
Viele der GPIOs erfüllen je nach Einstellung und
Programmierung unterschiedliche Funktionen. Neben
Grundsätzlich, ein Raspberry Pi wird mit 5 Volt per USB- den typischen GPIO-Ein- und Ausgängen nden sich
Netzteil gespeist. Allerdings arbeitet der System-on-Chip aber auch Pins mit der Doppelfunktion für I2C, SPI und
auf Basis von 3,3 Volt. Das bedeutet, an einem GPIO muss eine serielle Schnittstelle.
das Signal eingangsseitig auf 3,3 Volt begrenzt werden
und ausgangsseitig ist das Signal auf 3,3 Volt begrenzt.
Die GPIOs sind oftmals nur als Lötpunkte oder, beim
Desweiteren verträgt ein GPIO nur ein paar Milliampere
Raspberry Pi vom Modell abhängig, als zweireihige
(mA) Strom. Das bedeutet, über einen GPIO-Pin kann man
Stiftleiste herausgeführt. Je nach Modell weist ein
keine externen Schaltungen und Bauteile betreiben. Die
müssen eine eigene Stromversorgung haben.
Raspberry Pi eine Stiftleiste mit 26 oder 40 Pins auf,
wovon allerdings nicht alle zur Ein- oder Ausgabe
Insbesondere bei Relais und Motoren muss man sich um
eine sichere Ansteuerung kümmern. dienen. Einige Pins führen ein festgelegtes +5V-,
+3,3V- oder 0V-Potential.

11

fi
GPIO-Belegung

12

GPIOs mit Python und GPIO Zero programmieren
GPIO Zero ist eine Python-Bibliothek. Sie stellt eine
Software-Schnittstelle für Physical Computing bereit, um
LEDs, Taster, LED-Reihen, 7-Segment-Anzeigen,
Analog-Digital-Wandler und vieles mehr über die GPIOs
in Python zu programmieren und zu steuern.

Es gibt viele verschiedene Möglichkeiten um die GPIOs


zu steuern und zu programmieren. Welche man
verwendet hängt von den Anforderungen ab, oder
einfach auch von den eigenen Fähigkeiten sich in
bestimmte Programmiersprachen und Bibliotheken
einzuarbeiten.

Zusammen sind Python und GPIO Zero für Anfänger und


Einsteiger einfach unschlagbar. Und auch
Python ist eine universelle Programmiersprache. Sie gilt Fortgeschrittene können von der Einfachheit pro tieren.
als einfach zu erlernende Sprache, da sie über eine klare Alltägliche Funktionen, die mit vielen Zeilen
und übersichtliche Syntax und einer guten Lesbarkeit Programmcode realisiert werden müssten, sind in GPIO
verfügt. Des Weiteren ist Python in der Informatik weit Zero implementiert und können mit einem einzigen
verbreitet, so dass man sie in Technik-nahen Kommando aufgerufen werden.
Ausbildungen und Berufen immer wieder ndet.

13

fi
fi
Entwicklungsumgebung zum Programmieren
Was ist eine Entwicklungsumgebung?
Mit Entwicklungsumgebung ist meist ein Programm • Hardware: Raspberry Pi mit Zubehör (Maus, Tastatur,
gemeint, in dem der Programmcode oder Quelltext für ein Bildschirm)
anderes Programm geschrieben wird. Also das Programm,
mit dem programmiert wird. Im einfachsten Fall ist das ein
• Elektronik: verschiedene Bauteile, Steckbrett und
einfacher Text-Editor. Programmierer verwenden gerne Verbindungskabel
spezielle Text-Editoren die über Syntax-Highlightning
verfügen. Das heißt, die Grammatik der
Programmiersprache erkennen und zur besseren • Betriebssystem: Raspberry Pi OS Desktop auf SD-
Lesbarkeit bestimmte Befehle, Kommandos, Optionen, Speicherkarte
Parameter usw. farblich unterschiedlich darstellen. Hilfreich
sind Editoren, die auch noch Eingabefehler erkennen und • Programmiersprache: Python Version 3 mit GPIO Zero
kennzeichnen können. Desweiteren vereinfacht es die (in der Regel vorinstalliert)
Software-Entwicklung, wenn man direkt im Editor das
geschriebene Programm starten und stoppen kann. • Editor: Thonny Python IDE (in der Regel vorinstalliert)

Zu einer vollständigen Entwicklungsumgebung gehört • Internet: von Vorteil, aber nicht zwingend erforderlich
meist eine bestimmte Hardware und zusätzliche Software,
was aber davon abhängig ist, in welcher
Programmiersprache geschrieben werden soll und was
genau programmiert wird. Beispielsweise, ob eine
bestimmte Hardware berücksichtigt werden muss.

14

Programmieren mit der Thonny Python IDE
Die Thonny Python IDE verfügt über alle erforderlichen
Funktionen und Bedienelemente, um e ektiv mit Python
und GPIO Zero programmieren zu können

Aufteilung der Entwicklungsumgebung:

1. Menü-Leiste zum Bedienen und Steuern


2. Eingabefeld für den Quelltext
3. Ausgabefeld für die Textausgabe und Status-
Informationen

Wichtige Funktionen der Menü-Leiste:

• Neue Datei erstellen (New)


• Datei ö nen (Load)
• Datei speichern (Save)
Wenn Du mit der Desktop-Version von Raspberry Pi OS • Programm ausführen (Run)
arbeitest, dann emp ehlt es sich mit der Thonny Python • Programm stoppen (Stop)
IDE zu programmieren.
Die Thonny Python IDE erreicht man im Programm- Weitere Funktionen sind selbsterklärend oder erfüllen
Menü über das Untermenü „Entwicklung“. eine Spezialfunktion.

15

ff
fi
ff
Bauteile
Steckbrett
• lötfreies Experimentieren
• einfach zu verwenden und miteinander
kombinierbar
• verschiedene Größen erhältlich

Eine Steckbrett ist eine Experimentier-Platine, die


auch „Steckbrett“ oder „Steckboard“ genannt wird.
Auf dem Steckbrett lassen sich elektronische Bauteile
durch Stecken mechanisch Befestigen und zu
Schaltungen elektrisch verbinden.
Das Steckbrett wird im Englischen oft „Solderless
Breadboard“ genannt, womit angedeutet wird, dass
das Verbinden mit dem Steckbrett lötfrei erfolgt. Das
Steckbrett hat 400 Kontakte im 2,54-mm- bzw. 1-
Zoll-Raster, die reihenweise miteinander verbunden
sind. In der Mitte be ndet sich ein breiter Steg, damit
die Anschlüsse von integrierten Schaltungen (ICs) in
DIL-Bauform voneinander getrennt sind.
Die durchgezogenen Linien kennzeichnen die
Über die Rot und Blau markierten Seitenleisten
Steckkontakte, die eine elektrische und damit
erfolgt in der Regel die Stromversorgung für die
leitende Verbindung aufweisen.
gesteckten Schaltungen.

17

fi
Steckverbindungskabel
• elektrische Verbindungen zwischen Bauelementen,
Schaltungen und Geräten

Steckverbindungskabel oder auch nur


Verbindungskabel dienen zum Trennen und Verbinden
von Bauelementen, Schaltungen und Geräten.
Bei elektrischen Steckverbindungen unterscheidet
man den männlichen Teil einer Steckverbindung (mit
nach außen weisenden Kontaktstiften) und den
weiblichen Teil (mit nach innen weisenden
Kontaktö nungen). Den männlichen Teil bezeichnet
man als Stecker, wenn er sich an einem Kabelende
be ndet. Den weiblichen Teil bezeichnet man
richtigerweise als Kupplung, wenn er sich an einem
Kabelende be ndet. Manchmal sagt man auch
Buchse dazu.

18

fi
ff
fi
Taster
• Stromkreis schließen
• Stromkreis unterbrechen
• manuelles Ein- und Ausschalten

Durch einen Taster kann ein Stromkreis geschlossen


und unterbrochen werden. Damit steuert man, ob im
Stromkreis ein Strom ießt oder nicht.
Bei dem dargestellten Taster handelt es sich um einen
2-poligen Taster mit 4 Anschlüssen. Je zwei
Anschlüsse stellen einen Kontakt des Tasters dar.
Bei einem Taster ist der geö nete Zustand der
Normalzustand. Der Kontakt wird nur durch Drücken
des Tasters geschlossen. Und der Kontakt bleibt nur
solange geschlossen, wie der Taster gedrückt bleibt.
Lässt man den Taster los, dann ö net sich der Kontakt
wieder.
Die im Bild mit 1 und 2 gekennzeichneten Anschlüsse
können je nach Bauform an unterschiedlichen
Wenn man einen Stromkreis richtig ein- und
Positionen liegen. Welche Anschlüsse
ausschalten will, dann sollte man dafür einen Schalter
zusammengehören, muss man mit einem
verwenden, der nach der Betätigung in seiner Position
Durchgangsprüfer oder Widerstandsmessgerät
bleibt. Ein Taster schaltet sich automatisch in seinen
heraus nden. Normalzustand zurück.

19

fi
fl
ff
ff
Widerstand
• Begrenzen des elektrischen Stroms
• Begrenzen der elektrischen Spannung
• Einstellen von Strom und Spannung

Mit einem Widerstand kann man Strom und


Spannung in einer Schaltung begrenzen und
bestimmte Spannungs- und Stromwerte an
bestimmten Punkten in einer Schaltung einstellen.
Ein Widerstand ist zwar ungepolt, doch auch er kann
kaputt gehen, wenn er zu viel Spannung oder zu viel Um einen bestimmten Widerstandswert zu errechnen,
Strom ausgesetzt wird. Die relevante Größe ist die verwendet man das Ohmsche Gesetz.
elektrische Leistung in Watt (W) oder Milliwatt (mW).
Das ist mathematisch ein Produkt aus Spannung und
In der praktischen Elektronik unterscheidet man
Strom. In der Regel verwendet man Widerstände mit
zwischen Kohleschichtwiderständen und
maximal 250 mW bzw. 0,25 W Verlustleistung. In der
Metall lmwiderständen.
Regel ist das bei kleinen Spannungen bis 9 V und
Kohleschichtwiderstände haben meist einen hell
kleine Ströme bis 25 mA unproblematisch.
gefärbten Widerstandskörper und weisen
Hinweis: Widerstände, die mit einer zu großen
typischerweise 4 Ringe auf. Metall lmwiderstände
Leistung betrieben werden, werden heiß und brennen
haben meist einen Hellblau gefärbten
durch. Dann qualmt es etwas und der Widerstand
Widerstandskörper und weisen typischerweise 5
färbt sich braun bis schwarz.
Ringe auf.

20

fi
fi
Kennzeichnung von Widerständen (1)
Widerstände werden in der Regel durch Farbringe
gekennzeichnet. Je nach Art des Widerstandsmaterials,
werden 4 oder 5 Ringe verwendet.

Kohleschichtwiderstände haben meist einen Beige


(Mischung aus Weiß und Braun) gefärbten
Widerstandskörper und weisen typischerweise 4 Ringe
auf. Metall lmwiderstände haben meist einen Hellblau
gefärbten Widerstandskörper und weisen typischerweise
5 Ringe auf.

Die Ringe entsprechen einem internationalen Farbcode


zur Kennzeichnung und Bestimmung des
Widerstandswertes in Ω, sowie der Toleranz dieses
Wertes. Um die Werte abzulesen, behilft man sich mit
einer Tabelle.

21

fi
Kennzeichnung von Widerständen (2)
Widerstand mit 470 Ohm Widerstand mit 10 kOhm

22

Leuchtdiode (LED)
• optischer Signalgeber
• optischer Sensor

Eine Leuchtdiode, auch Light Emitting Diode, kurz LED


genannt, erzeugt ein Licht in einer bestimmten Farbe,
wenn sie von einem Strom durch ossen wird. Dabei
verhält sich die LED wie jede andere Halbleiterdiode
auch.

Die beiden Anschlüsse werden als Kathode und Anode


bezeichnet. Typischerweise sind die beiden
Anschlussdrähte einer LED unterschiedlich lang. Der
längere von beiden ist die Anode. Der kürzere die
Kathode. Außerdem sind die meisten LEDs auf der
Kathodenseite abge acht. Um das zu erkennen, musst
Du ganz genau hinschauen.

Leuchtdioden werden typischerweise mit einem Leuchtdioden gibt es in vielen verschiedenen Farben.
Vorwiderstand in Reihe betrieben, der eine spannungs- Am häu gsten kommen Rot, Grün, Gelb, Blau und
und strombegrenzende Wirkung hat. Die Weiß vor. Die Farbe wird durch das Halbleitermaterial
Strombegrenzung ist deshalb notwendig, weil der LED- vorgegeben und zusätzlich ein entsprechend gefärbtes
Halbleiter bei zu viel Strom kaputt gehen kann. und lichtdurchlässiges Gehäuse verwendet.

23

fi
fl
fl
Kennzeichnung und Anschlussbelegung von Leuchtdioden
Weil sich eine LED wie jede andere Halbleiterdiode
verhält, gibt es eine Sperrrichtung und eine
Durchlassrichtung. Soll eine LED leuchten, muss sie in
Durchlassrichtung angeschlossen sein. Also die
Kathode (K) an Minus (-) und die Anode (A) an Plus (+).
Je nach Hersteller, Farbe und Typ können
Leuchtdioden sehr unterschiedliche elektrische Werte Einfach zu merken: Das Pluszeichen hat einen Strich
aufweisen. Gemeint sind die Durchlassspannung und mehr als das Minuszeichen und deshalb ist der
der Durchlassstrom. Beide Werte sind wichtig zur Anschlussdraht der Anode etwas länger. Außerdem
Berechnung des strombegrenzenden Vorwiderstands. sind die meisten LEDs auf der Minusseite abge acht,
wie eben ein Minus, oder das "K" der Kathode.
Ein Vorwiderstand begrenzt den Strom in
Durchlassrichtung typischerweise auf etwa 10 mA. Die Beim Schaltzeichen kann man sich das so merken:
Spannung je nach LED-Typ auf 1,8 bis 2,2 Volt, oder Das Schaltzeichen hat wegen dem Querbalken die
höher. Manche LEDs haben eine Durchlassspannung Form des Buchstabens "K". Das Dreieck hat eine
von 3 oder sogar 4 Volt. Ähnlichkeit mit dem Buchstaben "A". Beim Querbalken
An 9 Volt emp ehlt sich ein Widerstandswert zwischen ist der Anschluss die Kathode und auf der anderen
1 kOhm bis 20 kOhm. Seite die Anode. Die Anode zeigt vom Pluspol weg
Bei einem deutlich kleineren Widerstand als 1 kOhm und zum Minuspol hin, was der technischen
kann die LED kaputt gehen. Bei einem deutlich zu Stromrichtung entspricht. Und somit wird die Anode
großen Widerstand als 20 kOhm leuchtet die LED zu am Pluspol und die Kathode am Minuspol
schwach oder gar nicht. angeschlossen.

24

fi
fl
Integrierte Schaltkreise / Integrated Circuits (IC)
• komplexe Standard-Schaltung als ein Bauteil
• Platz und Kosten sparen durch mehrfach
integrierte Funktionen
• geringerer Schaltungsaufwand

Viele Schaltungen oder Schaltungsteile kommen in


der praktischen Elektronik immer wieder vor. Um
diese teilweise komplexen Schaltungen nicht immer
wieder neu aufbauen oder er nden zu müssen,
werden sie in eine integrierte Schaltung (IS =
Integrierter Schaltkreis) zusammengefasst und in
einem Gehäuse vergossen.
Fast alle ICs gibt es in unterschiedlichen
Gehäuseformen. Die unterscheiden sich nicht nur in
der Größe, sondern hauptsächlich in der Art der
Anschlusspins und wie die mit der restlichen
Wenn man auf die beschriftete Seite des ICs schaut,
Schaltung verbunden werden. Also beispielsweise,
kann man an einer kurzen Seite eine Einkerbung
ob das IC löt- oder steckbar ist. In der Hobby-
entdecken. Diese Einkerbung kennzeichnet „oben“.
Elektronik werden ICs gerne mit DIL- bzw. DIP-
Links von der Einkerbung beginnt die Nummerierung
Gehäuse verwendet. Diese eignen sich zum Stecken
der Pins von 1 an nach unten gegen den
in eine Fassung und zum Verlöten auf eine Platine.
Uhrzeigersinn zu zählen.

25

fi
ULN2003A - Darlington Transistor Array (IC)
• Eingänge für TTL-Signale (5 Volt)
• Ausgänge für bis 50 Volt
• Ausgänge mit Freilaufdiode für induktive Lasten (z.
B. Motor und Relais)

Ein ULN2003A ist ein integrierter Schaltkreis mit 7


bipolaren NPN-Darlington-Transistoren mit o enem
Kollektor und gemeinsamen Emitter. Damit kann man
eine Spannung bis 50 Volt (V) und einen Strom bis
500 Milliampere (mA) pro Ausgang schalten. Eine
Besonderheit ist die bereits integrierte Freilaufdiode
an den Ausgängen. Dadurch kann man problemlos
Relais, Motoren und andere induktive Lasten
schalten.

Wenn Du an einem Ausgang des ULN2003A ein


Die Eingänge eines ULN2003A eignen sich für die
Relais oder einen Motor anschließt, dann verbinde
Ansteuerung mit TTL- (Transistor-Transistor-Logik)
auch den COM-Anschluss (Pin 9) mit der
und CMOS-Signalen (Komplementär-Metalloxid-
Versorgungsspannung der angeschlossenen
Halbleiter) bis maximal 5 Volt. mit einem Transistor
Verbraucher. Dadurch aktivierst Du die integrierten
beschaltet werden soll.
Freilaufdioden, die die Darlington-Stufen vor der
Rückwirkung induktiver Lasten schützen.

26

ff
ULN2003A: Beschaltung
Eingänge beschalten COM-Anschluss (Pin 9): Freilaufdiode aktivieren
Die Eingänge arbeiten mit Standard-TTL-Signalen. Also Der Anschluss Pin 9 (COM) ist der gemeinsame
bei High-Pegel mit 5 Volt und bei Low-Pegel mit 0 Volt. Anschluss der integrierten Freilaufdioden. Dieser
Typischerweise wird ein TTL-Eingang eine anliegende Anschluss muss nur dann beschaltet werden, wenn an
Spannung bis 2 Volt runter als High-Pegel erkennen. Das den Ausgängen induktive Lasten angeschlossen sind.
bedeutet, dass ein High-Pegel eines GPIO-Ausgangs mit Zum Beispiel Relais oder Motoren. Sollte das der Fall
3,3 Volt vom ULN2003A-Eingang als High-Pegel erkannt sein, dann wird Pin 9 typischerweise mit der
wird. Versorgungsspannung der angeschlossenen
Verbraucher verbunden.
Ausgänge beschalten
Welche Spannung geschaltet werden soll hängt von den Masse bzw. Ground (GND)
angeschlossenen Verbrauchern ab. Diese Spannung Der Anschluss Pin 8 ist der gemeinsame Masse-
muss in der Regel aus einer eigenen Anschluss bzw. Ground (GND) für die sieben Eingänge
Spannungsversorgung bereitgestellt werden. und die sieben Schaltstufen. In der Regel muss auch der
Aufgrund der integrierten Darlington-Stufe haben die Ground einer separaten Versorgungsspannung damit
Ausgänge bei einen Low-Pegel nie ganz 0 Volt, sondern verbunden werden.
etwa 0,9 Volt. Unter Umständen ist das beim
Dimensionieren nachfolgender Schaltungsteile zu Hinweis
berücksichtigen. Es emp ehlt sich einen Blick ins Datenblatt zu werfen.
Werden alle 7 Transistorstufen dauerhaft
durchgeschaltet (Tastverhältnis 100%), darf jede Stufe
nur mit max. 160 mA belastet werden.

27

fi
Motor für Gleichstrom (DC)
• Umwandlung von elektrischer Energie in
Bewegungsenergie oder mechanische Energie
• typischerweise Bewegen von Fahrzeugen und
Antrieben

Motoren ndet man überall dort, wo etwas bewegt


werden muss. Zum Beispiel Fahrzeuge, Ventilatoren und
Antriebe zum Ö nen und Schließen. In der Elektrotechnik
und Elektronik werden entsprechend Elektro-Motoren
Gleichstrom-Motoren sind typischerweise gepolt. verwendet. Das heißt, sie werden mit elektrischem Strom
Deshalb sind die Anschlüsse mit unterschiedlichen betrieben. Je nach Spannungsart, Spannungsbereich
Kabel- oder Adernfarben versehen. Typischerweise stellt und Leistungsbedarf gibt es sehr viele unterschiedliche
die Farbe Rot den Plus-Pol dar. Die Farben Blau oder Typen.
Schwarz den Minus-Pol. Bei einem Gleichstrom-Motor
dienen diese Farben aber nur zur Unterscheidung der Im einfachsten Fall handelt es sich um einen
beiden Anschlüsse. Denn wie herum gepolt wird, hängt Gleichstrom-Motor (DC), der im Spannungsbereich von 3
von der gewünschten Bewegungsrichtung ab. Eine bis 6 Volt mit etwa 180 Milliampere (mA) arbeitet.
Falschpolung wird nur funktional dazu führen, dass der
Motor in die falsche Richtung dreht. Gemeint ist, er läuft
Motoren und Antriebe laufen nicht dauerhaft, sondern nur
je nach Polung vorwärts oder rückwärts. Je nach
wenn etwas bewegt werden soll. Zum manuellen
Sichtweise auch rechtsherum oder linksherum.
Bedienen, also zum Einschalten und Ausschalten, eignen
Du kannst einen Gleichstrom-Motor also durch
sich meist Taster oder Schalter in Reihe zum Motor.
Falschpolung nicht kaputt machen.

28

fi
ff
Relais-Board (KY-019)
• potentialfreies Schalten
• integrierte Freilaufdiode
• schraubbare Anschlüsse für Leitungen zum
schaltenden Gerät

Ein Relais ndet oft dort Anwendung, wo eine


galvanische Trennung zwischen Steuer- und
Laststromkreis erforderlich ist. Oft kommt es vor,
dass beide Stromkreis bezüglich Spannung und
Strom nicht kompatibel sind. Man braucht also ein
Bauteil oder einen Schaltkreis, der beide elektrisch
voneinander trennt, aber funktional trotzdem eine
Verbindung ermöglicht. Ein solches Bauteil kann ein
Relais sein.
Auch wenn das Relais-Modul einfach anzuschließen Um ein Relais anzusteuern braucht es nicht viel: Ein
ist, sind gerade deshalb ein paar Dinge zu beachten. Transistor, zwei Widerstände und eine Diode. Welche
Auch wenn die Beschriftung des Relais-Boards die genau das sind, hängt vom Relais ab. Der Vorteil
Eignung bis 250 Volt ausweist, ist es nicht eines Relais-Boards ist, dass die notwendigen
zwangsläu g dafür geeignet. Arbeiten mit 230 Volt Bauteile korrekt dimensioniert und auf der Platine mit
sind gefährlich und können tödlich sein. Die Eignung dem Relais richtig verschaltet sind. Außerdem hat ein
und der sichere Betrieb des Moduls bei 230 Volt Relais-Board auch noch schraubbare Anschlüsse
können nur Fachleute gewährleisten. zum Verbinden mit der zu steuernden Schaltungen.

29

fi
fi
Relais-Board beschalten (1)
Beschaltung der Eingangsseite vom GPIO

Die Eingangsseite des Relais-Boards hat 3 Anschlüsse


in Form von Pins bzw. einer Pin-Leiste. An zwei Pins
wird typischerweise die Betriebsspannung
angeschlossen. Die ist abhängig vom Relais. Die
meisten Relais-Boards sind TTL-kompatibel und haben
eine Betriebsspannung von 5 Volt. Deshalb wird am Pin,
der mit einem Plus (+) oder VCC gekennzeichnet ist, die
5V-Leitung angeschlossen und am Pin, der mit Minus (-),
0V oder GND gekennzeichnet ist entsprechend mit der
0V-Leitung bzw. GND verbunden.

Ein Relais-Board verfügt zusätzlich über einen


Steuereingang, mit dem das Relais geschaltet wird. Der
Steuereingang ist typischerweise mit „S“, „IN“ oder
ähnlichen Zeichen gekennzeichnet, die von der
Kennzeichnung der Betriebsspannung abweichen.

30

Relais-Board beschalten (2)
Beschaltung der Ausgangsseite zum schaltenden
Gerät

Die Beschaltung der Ausgangsseite erfolgt meist über


schraubbare Anschlussklemmen. Dahinter verbergen
sich die Arbeitskontakte, die je nach Relais
unterschiedliche Funktionen aufweisen können. Die
typischen Relais-Boards haben nur zwei Funktionen, die
entsprechend gekennzeichnet sind:

• Schließer (Normally Open, NO): Der Schließer ist im


Ruhezustand geö net. Erst wenn im Steuerstromkreis
ein Strom ießt, dann schließt sich dieser
Arbeitskontakt.
• Ö ner (Normally Closed, NC): Der Ö ner ist im
Ruhezustand geschlossen. Erst wenn im
Steuerstromkreis ein Strom ießt, dann ö nen sich
dieser Arbeitskontakt.
• Beide Arbeitskontakte haben einen gemeinsamen
Anschlusspunkt (COM), an dem die andere Seite des
Stromkreises angeschlossen werden muss.

31

ff
fl
ff
fl
ff
ff
Relais-Board beschalten (3)
Wie sind die drei Anschlüsse funktional
miteinander verbunden?

• Im spannungslosen Zustand ist der Schaltkontakt


zwischen COM und NC geschlossen und der
Schaltkontakt zwischen COM und NO o en.
• Im Fall einer anliegenden Spannung ist der
Schaltkontakt zwischen COM und NC geö net und
der Schaltkontakt zwischen COM und NO
geschlossen.

Wie sollte ein Gerät oder eine Schaltung


angeschlossen werden?

Wenn ein Gerät im Normal- bzw. Grundzustand


ausgeschaltet ist, dann wäre das Gerät in Reihe zu COM
und NO anzuschließen. Wäre das Gerät im
Normalzustand eingeschaltet, dann wäre das Gerät in
Reihe zu COM und NC anzuschließen.

32

ff
ff
Experimente und Anwendungen
Experimente und Anwendungen mit Python und GPIO Zero
• LED einschalten und ausschalten Python ist eine universelle Programmiersprache. Sie gilt als
einfach zu erlernende Sprache, da sie über eine klare und
• LED blinken lassen
übersichtliche Syntax und eine gute Lesbarkeit verfügt. Des
• LED-Helligkeit steuern
Weiteren ist Python in der Informatik weit verbreitet, so dass
• Taster-Zustand anzeigen man sie in Technik-nahen Ausbildungen und Berufen immer
• LED mit Taster einschalten und ausschalten wieder ndet.
• LED über ULN2003A steuern
• Motor über ULN2003A steuern GPIO Zero ist eine Python-Bibliothek. Sie stellt eine Software-
Schnittstelle für Physical Computing bereit, um LEDs, Taster,
• Relais-Board über ULN2003A steuern
LED-Reihen, 7-Segment-Anzeigen, Analog-Digital-Wandler
• Relais-Board ohne ULN2003A Steuern und vieles mehr über die GPIOs in Python zu programmieren
• LED-Ampel-Steuerung und zu steuern.
• LED-Lau icht
• Raspberry Pi per Taster herunterfahren Die folgenden Experimente bauen auf der o zielle
Dokumentation von GPIO Zero auf. Auf den folgenden Seiten
• Einfaches Reaktionsspiel für zwei Personen
ndest Du einige Beispiele aus der Dokumentation mit ein
paar zusätzlichen Erklärungen und wie sie sinnvoll
einzusetzen sind.

Bei den folgenden Experimenten handelt es sich um keine


sinnvollen und vollständig laufenden Anwendungen, sondern
nur um Beispiele, wie die GPIOs für angeschlossene Bauteile
kon guriert und deren Zustände gesetzt und gelesen werden
können.

34

fi
fi
fi
fl
ffi
Vorgehensweise
1. Zuerst die Schaltung aufbauen

2. Dann den Programmcode ins Textfeld


kopieren und speichern

from gpiozero import LED


from time import sleep

3. Danach das Programm ausführen red = LED(17)

[Link]()
sleep(5)
4. Funktion von Aufbau und Programm prüfen
[Link]()

35

LED einschalten und ausschalten
In diesem Aufbau geht es darum, an einem Raspberry Pi
eine LED richtig anzuschließen und mit einem Programm
die LED einzuschalten und wieder auszuschalten. Das
ist nicht weiter schwer. Wir brauchen dazu eine LED
(egal welche Farbe) und einen Widerstand. Auf einem
Steckbrett werden die Raspberry-Pi-GPIO-Pins und die
Bauteile mit den Verbindungskabeln verbunden.

Die folgende Schaltung und das Programm sind


denkbar einfach. Es ermöglicht Dir, Dich mit dem
Verbinden von nur zwei Bauteilen auf dem Steckbrett
vertraut zu machen und ein erstes Programm mit Python
und GPIO Zero zu schreiben.
from gpiozero import LED
Wenn Du das alles gescha t hast, dann können Dich die from time import sleep
nächsten Experimente nicht mehr schrecken.
# Initialisierung von GPIO17 als LED (Ausgang)
Es bietet sich an, anders farbige Leuchtdioden
led = LED(17)
auszuprobieren.
# LED: ein / 5 Sekunden warten / aus
[Link]()
sleep(5)
[Link]()

36

ff
LED blinken lassen (1)
Am Besten ist Elektronik immer dann, wenn es blinkt
und blitzt. Aber bitte nicht zu viel davon. Wenn es zu
sehr blitzt, ist danach meistens etwas kaputt. Deshalb
beschränken wir uns sicherheitshalber auf das Blinken
einer Leuchtdiode.
Mit Python und GPIO Zero lässt sich das Blinken einer
Leuchtdiode mit wenigen Zeilen erledigen.

Damit eine LED blinkt oder blitzt gibt es in der Elektronik


nur ein paar Grundschaltungen, die man je nach
Blinkfrequenz variieren kann oder sogar bevorzugt. Die
folgenden Programmcodes ersetzen praktisch die
Funktion dieser Grundschaltungen. Das einzige, was an
Hardware bleibt, ist die Leuchtdiode mit Vorwiderstand.
Und natürlich der Raspberry Pi.
Die Leuchtdiode wird per Software gesteuert. Dabei gibt
es nicht nur einen Weg, wie man die Leuchtdiode zum from gpiozero import LED
Blinken bringt. Es gibt gleich mehrere davon und auch
# Initialisierung von GPIO17 als LED (Ausgang)
noch in verschiedenen Variationen. Und genau das sollst led = LED(17)
Du ausprobieren.
In der ersten Variante erfolgt das Blinken der # LED blinken lassen
Leuchtdiode durch hartes Ein- und Ausschalten. [Link]()

37

LED blinken lassen (2)
In der zweiten Variante erfolgt das Blinken durch from gpiozero import PWMLED
weiches Ein- und Ausblenden, in dem die Helligkeit über
ein PWM-Signal gesteuert wird. # Initialisierung von GPIO17 als PWM-Signal (LED)
led = PWMLED(17)

# PWM-Signal ausgeben
[Link]()

In der dritten Variante wird das Blinken mit from gpiozero import LED
unterschiedlicher Leuchtdauer und Pausedauer from time import sleep
realisiert. Die Werte von „sleep“ sind die Dauer in
Sekunden. # Initialisierung von GPIO17 als LED (Ausgang)
led = LED(17)

# Wiederholung einleiten
while True:
# LED einschalten
[Link]()
# 0,17 Sekunden warten
sleep(0.17)
# LED ausschalten
[Link]()
# 1 Sekunde warten
sleep(1)

38

LED blinken lassen (3)
In der vierten Variante wird das Blinken mit from gpiozero import LED
unterschiedlicher Leuchtdauer und Pausedauer
realisiert. Die Werte von „blink“ sind die Dauer in # Initialisierung von GPIO17 als LED (Ausgang)
Sekunden. led = LED(17)

# LED im Verhältnis 1 Sekunde zu 2 Sekunden


blinken lassen
[Link](1,2)

Die letzten beiden Beispiele erlauben verschiedene


Experimente:

1. Versuche verschiedene Kombination mit


unterschiedlichen Leucht- und Pausezeiten aus. Zum
Beispiel 0.5 und 2.
2. Welche kleinste Zeit kann man als Leuchtdauer
angeben, damit man die Leuchtdiode noch leuchten
sieht?
3. Welche kleinste Zeit kann man als Pausedauer
angeben, damit die Leuchtdiode noch ausgeht?

39

LED-Helligkeit steuern
Im Prinzip kennt ein GPIO nur zwei Zustände: „High“
und „Low“. Also „An“ und „Aus“ oder „1“ und „0“. Es
handelt sich dabei um die binäre Logik. Werte
dazwischen gibt es nicht. Logisch wäre es, dass man
mit der Steuerung per GPIO eine LED auch nur ein- und
ausschalten kann. Die Helligkeit kann man also nicht
einstellen.

Trotzdem gibt es einen Trick mit dem man die Helligkeit


einer LED doch steuern kann. Wenn die LED sehr
schnell ein- und ausgeschaltet wird, also ein Taktsignal
ausgeben wird. Dieses Taktsignal wird als PWM-Signal
realisiert, bei dem die Breite des Pulses über die Zeit
eingestellt werden kann. Das heißt, es wird die Dauer
des Leuchtens der LED eingestellt. Durch die Trägheit
des Au euchtens und der Wahrnehmung des
menschlichen Auges sieht es so aus, als ob die
Helligkeit der Leuchtdiode gesteuert wird.

40

fl
LED-Helligkeit steuern (2)
Mit Python und GPIO Zero lässt sich ein PWM-Signal
from gpiozero import PWMLED
mit wenigen Zeilen erzeugen. Auf diese Weise kann man from time import sleep
die Helligkeit einer Leuchtdiode einstellen.
# Initialisierung von GPIO17 als PWM-Signal (LED)
led = PWMLED(17)
Nach dem Start des Programms wird die Leuchtdiode in
10 Stufen (von 0 bis 1) von „aus“ nach „ganz hell“
# Wiederholung einleiten
geändert. Das Programm endet im Prinzip nie. Es muss while True:
manuell beendet bzw. gestoppt werden. # LED ausschalten
[Link] = 0
sleep(1)
[Link] = 0.1
sleep(1)
[Link] = 0.25
sleep(1)
# LED mit halber Helligkeit
[Link] = 0.5
sleep(1)
[Link] = 0.75
sleep(1)
[Link] = 0.9
sleep(1)
# LED mit voller Helligkeit
[Link] = 1
sleep(1)

41

Taster-Zustand auswerten und anzeigen (1)
Ein Taster kann zwei Zustände haben: „gedrückt“ und
„nicht gedrückt“. Entsprechend für „Ein“ und „Aus“. Die
folgenden Programmbeispiele berücksichtigen
verschiedene Szenarien in denen ein Taster gedrückt
oder auch wieder losgelassen wird.

Zu allem Über uss macht es einen Unterschied, ob man


einen Taster nach Ground (GND) oder nach +3,3V (VCC)
schaltet. Beim Experimentieren ist es eigentlich egal und
macht nur im Programmcode beim Initialisieren des
GPIOs einen Unterschied. In der praktischen
Anwendung muss man dann sehen, was sinnvoller ist,
um einen stabilen und fehlerfreien Betrieb zu
gewährleisten. from gpiozero import Button

GPIO Zero kennt mehrere Möglichkeiten die Betätigung # Initialisierung von GPIO27 als Button (Eingang)
eines Tasters auszuwerten, der nach Ground (GND) button = Button(27)

geschaltet wird.
# Warten auf Druck auf Button
Das folgende Programm wird angehalten und läuft erst button.wait_for_press()
dann weiter, wenn der Taster gedrückt wird. Nachdem
der Text ausgegeben wurde, wird das Programm # Text-Ausgabe
beendet. print("Taster wurde gedrückt")

42

fl
Taster-Zustand auswerten und anzeigen (2)
Im folgenden Programm wird der Druck auf den Taster from gpiozero import Button
immer wieder erneut geprüft. Der Nachteil davon ist,
dass die Betätigung mehrmals erkannt wird, auch wenn # Initialisierung von GPIO27 als Button (Eingang)
man nur einmal drückt. Das macht natürlich nur Sinn, button = Button(27)
wenn man wissen will, wenn der Taster nicht nur
# Wiederholung einleiten
gedrückt wurde, sondern auch gehalten wird.
while True:
# Wenn Button gedrückt wurde
if button.is_pressed:
# Text-Ausgabe
print("Taster wurde gedrückt")

Im folgenden Programm wird die Auswertung des from gpiozero import Button
Tasters im Programmablauf global de niert. Das heißt,
immer dann, wenn der Taster gedrückt wird, wird der # Definition einer Funktion
Text ausgegeben. Das Programm wird nicht automatisch def pressed():
# Text-Ausgabe
beendet.
print("Taster wurde gedrückt")

# Initialisierung von GPIO27 als Button (Eingang)


button = Button(27)

# Wenn der Button gedrückt wird


button.when_pressed = pressed

43

fi
Taster-Zustand auswerten und anzeigen (3)
Im folgenden Programm wird die Auswertung des from gpiozero import Button
Tasters zusätzlich um das Loslassen im Programmablauf
global de niert. Das heißt, immer dann, wenn der Taster # Definition einer Funktion
gedrückt und losgelassen wird, wird ein Text def pressed():
ausgegeben. Das Programm wird nicht automatisch # Text-Ausgabe
print("Gedrückt")
beendet.
# Definition einer Funktion
def released():
# Textausgabe
print("Losgelassen")

# Initialisierung von GPIO27 als Button (Eingang)


button = Button(27)

# Wenn der Button gedrückt wird


button.when_pressed = pressed

# Wenn der Button losgelassen wird


button.when_released = released

44

fi
LED mit Taster einschalten und ausschalten (1)
Damit eine Leuchtdiode (LED) beim Drücken eines
Tasters ein- und ausgeht braucht man eigentlich keine
Softwaresteuerung. Diese Funktion kann man natürlich
auch ohne Software realisieren. Einfach nur dadurch,
dass der Taster mit der Leuchtdiode und einem
Vorwiderstand in Reihe geschaltet wird.

Allerdings kann der Taster dann auch nur diese eine


festgelegte Funktion. Soll der Taster eine andere
Funktion haben, dann muss man die Hardware ändern.
Wenn die Funktion fest verdrahtet oder gelötet ist, dann
ist eine Änderung nicht so einfach möglich.

Es gibt also gute Gründe, warum heute alles mit


Software realisiert wird und prozessorgesteuert ist. Eine
Funktion lässt sich in der Software einfach leichter
ändern als in der Hardware.
Dazu erweitern wir das Programm in einem zweiten
Versuch um das Speichern des Zustandes
(Haltefunktion). Das heißt, drücken wir den Taster wird
die LED eingeschaltet. Drücken wir ein zweites Mal wird
die LED ausgeschaltet. Man spricht hier auch von einer

45

Taster-Zustand auswerten und anzeigen (2)
Das folgende Programm schaltet die LED immer dann from gpiozero import Button, LED
ein, wenn der Taster gedrückt wird und aus, wenn der
Taster losgelassen wird. Das Programm wird nicht # Initialisierung von GPIO27 als Button (Eingang)
automatisch beendet. button = Button(27)

# Initialisierung von GPIO17 als LED (Ausgang)


led = LED(17)

# Wenn der Button gedrückt wird


button.when_pressed = [Link]

# Wenn der Button losgelassen wird


button.when_released = [Link]

Das folgende Programm schaltet die LED immer dann


from gpiozero import Button, LED
ein und wieder aus, wenn der Taster gedrückt wird. Das
Programm wird nicht automatisch beendet. # Initialisierung von GPIO27 als Button (Eingang)
button = Button(27)

# Initialisierung von GPIO17 als LED (Ausgang)


led = LED(17)

# Wenn der Button gedrückt wird


button.when_pressed = [Link]

46

LED über ULN2003A steuern
Ein ULN2003A ist ein integrierter Schaltkreis mit 7
bipolaren NPN-Darlington-Transistoren. Damit kann man
eine Spannung bis 50 Volt (V) und einen Strom bis 500
Milliampere (mA) pro Ausgang schalten. Eine
Besonderheit ist die bereits integrierte Freilaufdiode an
den Ausgängen. Dadurch kann man problemlos Relais,
Motoren und andere induktive Lasten schalten.

Einen ULN2003A oder einen ähnlichen Baustein braucht


man deshalb, weil man einen einzelnen GPIO und alle
GPIOs zusammen nicht mit zu viel Strom belasten darf.

Für eigene Anwendungen und Experimente kann der


ULN2003A-Ausgang auch mit eigenen Schaltungen oder
Bauteilen beschaltet werden. Bei induktiven Lasten from gpiozero import DigitalOutputDevice
muss man den COM-Anschluss mit der from time import sleep
Spannungsversorgung des Bauteils verbinden, um die
# Initialisierung von GPIO2 als digitaler Ausgang
Freilaufdiode zu aktivieren.
led = DigitalOutputDevice(2)

Hinweis: Beachte bitte, dass der ULN2003A gegen # 1 Sekunde warten / Blinken im Verhältnis 2 zu 3
Ground (GND) schaltet. Beim Verschalten von Bauteile, sleep(1)
die hiervon abweichen kann das Verwirrung stiften. [Link](2,3)

47

Motor über ULN2003A steuern (1)
Motoren ndet man überall, wo etwas bewegt werden
muss. Zum Beispiel Fahrzeuge, Ventilatoren oder
Antriebe zum Ö nen und Schließen.
Diese Motoren und Antriebe laufen nicht dauerhaft,
sondern nur wenn etwas bewegt werden soll. Zum
manuell Bedienen, also zum Einschalten und
Ausschalten, eignen sich meist Taster oder Schalter. Zur
elektrischen Steuerung gibt es oft Relais,
Halteschaltungen, mit und ohne Zeitgeberschaltung.

Zur Steuerung eines Motors kann man eine Treiber-


Schaltung mit Transistor und Freilaufdiode verwenden.
Oder, was viel einfacher ist, einen ULN2003A-IC. Da ist
die Treiber-Schaltung 7-fach in einem Bauteil integriert. from gpiozero import DigitalOutputDevice
from time import sleep
Der folgende Aufbau ist nicht universell, sondern
# Initialisierung von GPIO3 als digitaler Ausgang
berücksichtigt die Besonderheiten der Ansteuerung des
motor = DigitalOutputDevice(3)
ULN2003A mit einem Motor.
# Motor: Ein / Warten / Aus
Beachte bitte die Hinweise auf der nachfolgenden [Link]()
Seite! sleep(3)
[Link]()

48

fi
ff
Motor über ULN2003A steuern (2)
• Zur Steuerung eines Motors mit dem Raspberry Pi • Motoren sind Verbraucher, die einen vergleichsweise
kann ein GPIO genutzt werden, der als Ausgang hohen Strom verbrauchen. Insbesondere beim
programmiert wird. Allerdings darf ein Motor nicht Anlaufen. Also im Einschaltmoment. In der
direkt mit dem GPIO-Ausgang verbunden werden. aufgebauten Schaltung wird der Motor über die 5-
Denn ein GPIO-Ausgang eignet sich nicht zur Volt-Leitung vom Raspberry Pi mit Strom versorgt.
Stromversorgung des Motors. Ein Verbraucher, wie ein • Was wichtig ist, dass man weiß, dass abhängig vom
Motor, braucht immer eine eigene Stromversorgung. Raspberry-Pi-Model und vom verwendeten Netzteil,
Zum Beispiel ein Netzteil. Unabhängig davon muss der Aufbau funktionieren kann, oder auch nicht. Im
zwischen GPIO-Pin und Verbraucher eine Treiber- günstigsten Fall wird im Desktop rechts oben die
Schaltung oder ein potentialfreier Kontakt geschaltet Meldung „Low voltage warning. Please check your
werden, damit der Verbraucher, in dem Fall der Motor, power supply.“ erscheinen. Das heißt nichts anderes,
unabhängig vom Raspberry Pi geschaltet werden als dass die Belastung durch den Motor die
kann. Wenn der Motor mit 12 Volt läuft, dann Versorgung im Raspberry Pi zur Unterspannung führt.
funktioniert das mit den 3,3 oder 5 Volt vom Wenn man das nicht abstellt, wird der Raspberry Pi
Raspberry Pi nicht. einfach abstürzen. Im schlimmsten Fall wird der
• Beachte bitte, dass der ULN2003A gegen Ground Raspberry Pi sofort ausgehen, weil das Netzteil nicht
(GND) schaltet. Beim Verschalten von Bauteile, die genug Strom liefert.
hiervon abweichen kann das Verwirrung stiften. • Stelle für den Dauerbetrieb von externer Beschaltung
eine eigene Stromversorgung bereit (Netzteil). Nur so
ist ein problemloser Betrieb möglich.

49

Relais-Board ohne ULN2003A steuern
Um ein Relais mit einem Raspberry Pi zu schalten
benötigt man in der Regel ein eigenes Netzteil für das
Relais und zusätzliche Beschaltung in Form eines
Transistors, zwei Widerstände und einer Diode. Und
dann muss das noch korrekt dimensioniert sein.
Der Vorteil eines Relais-Boards ist, dass die
notwendigen Bauteile korrekt dimensioniert und auf der
Platine mit dem Relais richtig verschaltet sind.
Außerdem hat ein Relais-Board auch noch schraubbare
Anschlüsse zum Verbinden nachfolgender Schaltungen
oder Geräte.

Zur Steuerung des Relais-Boards mit dem Raspberry Pi


kann ein GPIO genutzt werden, der als Ausgang from gpiozero import DigitalOutputDevice
programmiert wird. from time import sleep

# Initialisierung von GPIO4 als digitaler Ausgang


Dieses Relais-Board ist für Mikrocontroller, wie dem
relais = DigitalOutputDevice(4)
Arduino, konzipiert und arbeitet mit TTL-Steuersignalen
(5 Volt und 0 Volt). Der Raspberry Pi gibt an seinen # Relais: Ein / Warten / Aus
GPIO-Ausgängen aber nur eine Spannung von 3,3 Volt [Link]()
aus. Das reicht normalerweise aus, um ein TTL-High- sleep(3)
Signal zu erkennen und zu schalten. [Link]()

50

Relais-Board über ULN2003A steuern
Die typischen Relais-Boards sind für Mikrocontroller, wie
dem Arduino, konzipiert und arbeiten eingangsseitig mit
TTL-Steuersignalen (5 Volt und 0 Volt). Der Raspberry Pi
gibt an seinen GPIO-Ausgängen aber nur eine
Spannung von 3,3 Volt aus. Das reicht normalerweise
aus, um ein TTL-High-Signal zu erkennen und zu
schalten. Die Frage ist, ob das in der Praxis immer so
funktionieren wird und betriebssicher ist.

Wenn knapp dimensionierte Bauteile und Baugruppen


zu gelegentlicher Fehlfunktion führen, dann kann das
ungeahnte Folgen haben. Deshalb verbinden wir das
vorhandene Relais-Board nicht direkt mit dem GPIO,
sondern schalten ein ULN2003-IC dazwischen. Zwar ist from gpiozero import DigitalOutputDevice
dieses IC auch für TTL-Signale gedacht, also 5 und 0 from time import sleep
Volt, allerdings reagiert es wegen der integrierten
Darlington-Schaltung ziemlich emp ndlich. Das heißt, es # Initialisierung von GPIO4 als digitaler Ausgang
steuert sicherer durch als die Eingangsschaltung eines relais = DigitalOutputDevice(4)
Relais-Boards.
# Relais: Ein / Warten / Aus
[Link]()
sleep(3)
[Link]()

51

fi
LED-Ampel-Steuerung
Eine LED-Ampel-Steuerung lässt mit einigen Zeilen
from gpiozero import TrafficLights
Code in Python mit der Bibliothek GPIO Zero schnell from time import sleep
schreiben. GPIO Zero kennt dazu ein eigenes
Initialisierungs-Device für eine Ampel-Steuerung. Damit # Initialisierung: GPIO25/GPIO8/GPIO7 als Ampel
lassen sich drei LEDs zu einer Ampel zusammenfassen lights = TrafficLights(25, 8, 7)
und gemeinsam steuern.
# Definition einer Funktion für die Ampelphasen
def traffic_light_sequence():
# Wiederholung einleiten
while True:
# Rot-Phase
yield (1, 0, 0)
sleep(7)
# Rot-Gelb-Phase
yield (1, 1, 0) # rot+gelb
sleep(2)
# Grün-Phase
yield (0, 0, 1) # grün
sleep(5)
# Gelb-Phase
yield (0, 1, 0) # gelb
sleep(2)

# Aufruf der Steuerung für die Ampelphasen


[Link] = traffic_light_sequence()

52

LED-Lau icht
Ein LED-Lau icht lässt mit einigen Zeilen Code in
from gpiozero import LEDBoard
Python mit der Bibliothek GPIO Zero schnell schreiben.
from time import sleep
GPIO Zero kennt für eine LED-Reihe ein eigenes
Initialisierungs-Device, mit dem sich mehrere LEDs mit # Initialisierung von GPIO25, GPIO8, GPIO7,
einem Kommando gemeinsam steuern und zu als GPIO20 und GPIO21 als LED-Reihe (Ausgang)
Lau icht nutzen lassen. leds = LEDBoard(25, 8, 7, 20, 21)

# Wiederholung einleiten
while True:
# LED-Status setzen
[Link] = (1, 0, 0, 0, 0)
# Warten (Sekunden)
sleep(0.2)
[Link] = (0, 1, 0, 0, 0)
sleep(0.2)
[Link] = (0, 0, 1, 0, 0)
sleep(0.2)
[Link] = (0, 0, 0, 1, 0)
sleep(0.2)
[Link] = (0, 0, 0, 0, 1)
sleep(0.2)

53

fl
fl
fl
Herunterfahren per Taster
Wie schaltest Du einen Raspberry Pi richtig aus? Genau,
Du fährst ihn softwareseitig herunter, auch Shutdown
genannt. Wie jeden anderen Computer auch. Dafür gibt
es in der Regel im Betriebssystem eine Menü-Funktion.
Durch das softwareseitige Herunterfahren wird
sichergestellt, dass alle Speicherinhalte auf den
Massenspeicher geschrieben und alle Prozesse
kontrolliert beendet werden. Auf diese Weise vermeidest
Du Datenverlust und Inkonsistenzen im Speicher, die
einen erneuten, erfolgreichen Bootvorgang verhindern
würden.

Den Wunsch nach einem „Shutdown“ per Taster oder


Schalter hört man öfter. Die meisten Raspberry Pis
haben das nicht vorgesehen. Aber Du kannst diese
Funktion selber nachrüsten. Dafür brauchst Du nur einen
Taster und ein Programm, dass das Drücken des Tasters
auswertet und den „Shutdown“ durchführt.

Dabei reicht es nicht, den Taster einfach nur zu drücken.


Der Taster muss 2 Sekunden gedrückt gehalten werden,
damit eine Funktion ausgeführt wird.

54

Reaktionsspiel mit Tastern und LEDs (1)
Experimentieren mit Tastern und LEDs ist ja ganz nett.
Aber soll es das schon gewesen sein? Taster drücken
und LED geht an. Voll langweilig. Es wird Zeit das wir
etwas wirklich sinnvolles mit Tastern und LEDs machen.
Ein Spiel gefällig? Du musst natürlich zu Zweit sein,
sonst macht das keinen Spaß.

Na dann los. Aufgebaut und hergeschaut. Wer hat am


schnellsten den Taster gedrückt, wenn die grüne LED
angeht?

Im folgenden Programm werden zwei Taster und drei


Leuchtdioden de niert. Die grüne LED soll nach einer
zufälligen Zeit zwischen 5 und 10 Sekunden angehen.
Wer zuerst seinen Taster drückt, dessen Leuchtdiode
leuchtet und der Spieler hat gewonnen. Wessen LED
leuchtet kann das Spiel mit Drücken auf den Taster
erneut starten.

55

fi
Reaktionsspiel mit Tastern und LEDs (2)
from gpiozero import Button, LED def pressed_btn_2():
from time import sleep if led_2.is_lit:
import random start_game()
return
# LEDs initialisieren if led_3.is_lit:
led_1 = LED(17) led_2.on()
led_2 = LED(10) led_3.off()
led_3 = LED(9)
def start_game():
# Taster initialisieren # Alle LEDs ausschalten
btn_1 = Button(27) led_1.off()
btn_2 = Button(22) led_2.off()
led_3.off()
# Definition einer Funktion # Zufällige Zeit zwischen 5 und 10 Sekunden
def pressed_btn_1(): time = [Link](5, 10)
if led_1.is_lit: sleep(time)
start_game() led_3.on()
return
if led_3.is_lit: # Wenn ein Button gedrückt wird
led_1.on() btn_1.when_pressed = pressed_btn_1
led_3.off() btn_2.when_pressed = pressed_btn_2

# Spiel starten
start_game()

56

Weitere Ideen für Dich
So, jetzt hast Du genug experimentiert. Du bist jetzt 1. Schalte den Motor durch Drücken eines Tasters
bereit eigene Anwendungen zu programmieren. Wenn jeweils ein und aus.
Du noch nicht weist, was Du jetzt selber bauen sollst,
hier noch ein paar Ideen, die natürlich komplexer
sind, als das, was du bisher gemacht hast. 2. Starte und Stoppe das Lau icht durch Drücken
eines Tasters.
Die Lösungen für folgende Ideen kannst Du teilweise
aus den vorgegangenen Experimenten ableiten und
um eigene Ideen erweitert. 3. Erweitere die einzelne Ampel um 3 weitere Ampeln
für eine Kreuzung und programmiere die
Viel Vergnügen. Steuerung dafür richtig.

4. Programmiere eine LED-Steuerung so, dass die


LED wie eine Kerze ackert.

57

fl
fl
Lust auf mehr?
Elektronik-Set Sensor Edition

Das Elektronik-Set Sensor Edition ist eine


Sammlung beliebter Sensoren und Bauteile für die
Hardware-nahe Programmierung mit
Mikrocontrollern und Mini-Computern.

Es werden verschiedene Bereiche abgedeckt, wie


Temperatur, Bewegungserkennung,
Akustikerkennung, Lichterkennung, Bewegen und
Lichtsteuerung.

Spannende Experimente und Anwendungen aus


dem Bereich Smart Home, Robotik und Automation
warten auf Dich.

[Link]

59

Elektronik-Set Eingabe Ausgabe Edition

Das Elektronik-Set Eingabe Ausgabe Edition ist


eine Sammlung beliebter Bauteile zur
Dateneingabe, Steuerung und Datenausgabe für
die Hardware-nahe Programmierung mit
Mikrocontrollern und Mini-Computern.

Wenn Sie bereits das Elektronik-Set Pico Edition


oder Pico WLAN Edition haben, dann können Sie
es mit diesem Elektronik-Set sinnvoll erweitern und
viele weitere spannende Experimente durchführen.

[Link]

60

Elektronik-Set Starter Edition
Mit Elektronik ohne Löten experimentieren

Das Elektronik-Set Starter Edition ist die optimale


Ergänzung zum Elektronik-Guide. Das Elektronik-
Set enthält alle und noch viel mehr Bauteile, um
alle Schaltungen und Experimente nachzubauen.

Zusätzlich enthält das Elektronik-Set:


• 1 Steckbrett mit 400 Pins
• 40 Verbindungskabel
• 1 Batterie-Clip für einen 9-Volt-Block
• 1 Micro-USB-Adapter für ein USB-Ladegerät

Nicht im Lieferumfang enthalten und zusätzlich


empfohlen:

• 9-Volt-Block-Batterie, USB-Netzteil oder USB-


Ladegerät

[Link]

61

Elektronik-Fibel
Elektronik - einfach und leicht verständlich

Elektronik muss nicht schwer sein. Die Elektronik-


Fibel beschreibt die Grundlagen der Elektronik
einfach und leicht verständlich, so dass der
Einstieg in die Elektronik so einfach wie möglich
gelingt.

Die Elektronik-Fibel eignet sich besonders zum


Lernen auf Klassenarbeiten, Klausuren und
Prüfungen oder als Nachschlagewerk für die Schule
und Ausbildung.

Mit den vielen gra schen Abbildungen, Formeln,


Schaltungen und Tabellen dient diese Buch dem
Einsteiger und auch dem Pro immer und überall als
unterstützende und nützliche Lektüre.

[Link] bel

62

fi
fi
fi

Das könnte Ihnen auch gefallen