3.6. Grundlagen der Elektronik¶
Um irgendetwas Externes über einen GPIO-Pin anzusteuern, ist eine Schaltung auf der anderen Seite des Pins erforderlich. Drei Konzepte aus der grundlegenden Elektronik – Spannung, Strom und ihr Zusammenhang über einen Widerstand – tauchen in jeder solchen Schaltung auf.
3.6.1. Spannung, Strom, Widerstand¶
Spannung (Volt, V) ist die Potentialdifferenz zwischen zwei Punkten in einer Schaltung. Die Versorgungsschiene des Chips könnte bei 3,3 V gegenüber Masse liegen; ein auf High getriebener GPIO-Pin liegt bei denselben 3,3 V.
Strom (Ampere, A, oder Milliampere, mA) ist der Ladungsfluss durch einen Draht. Strom kehrt immer dorthin zurück, woher er kam, daher muss die Schaltung einen vollständigen Kreis von der Versorgung zurück zur Masse bilden, damit überhaupt ein Strom fließen kann.
Widerstand (Ohm, Ω) gibt an, wie stark der Pfad diesem Fluss entgegenwirkt. Der Zweck eines Widerstands besteht darin, den Strom bei einer bekannten Spannung auf einen bekannten Wert einzustellen.
Das ohmsche Gesetz verbindet sie miteinander:
Das ohmsche Gesetz in seinen drei Formen.¶
In Worten: Die Spannung über einem Widerstand ist gleich dem Strom durch ihn multipliziert mit dem Widerstand. Sind zwei der drei Größen bekannt, ergibt sich die dritte durch Umstellen.
3.6.2. Dioden¶
Eine Diode ist ein Bauteil mit zwei Anschlüssen, das Strom in einer Richtung leitet (von der Anode zur Kathode) und ihn in der anderen sperrt.
Eine Diode leitet nur von der Anode zur Kathode. Eine LED ist eine Diode, die beim Leiten Licht abgibt.¶
Eine Diode hat außerdem eine Durchlassspannung (Vf) – den Spannungsabfall über ihr, wenn Strom in Durchlassrichtung fließt. Sobald die angelegte Spannung Vf erreicht, verhält sich die Diode in etwa wie ein Draht; darunter fließt nahezu kein Strom.
3.6.3. LEDs¶
Eine Leuchtdiode (LED) ist eine Diode, die ihren Leitungsstrom in sichtbares oder infrarotes Licht umwandelt. Die Helligkeit skaliert mit dem Strom; die Farbe wird durch die Chemie der LED bestimmt, nicht durch die Ansteuerung.
Typische Durchlassspannungen von LEDs:
Rot: 1,8 – 2,2 V
Grün oder Gelb: 2,0 – 2,4 V
Blau oder Weiß: 2,8 – 3,4 V
Ein sinnvoller Betriebsstrom für eine Anzeige-LED liegt bei 5 – 20 mA. Höhere Ströme sind heller, verkürzen aber die Lebensdauer der LED und können die Treiberbelastbarkeit des GPIO-Pins überschreiten.
3.6.4. Der Vorwiderstand¶
Eine LED direkt zwischen einen GPIO-Pin und Masse zu schalten, würde nahezu unbegrenzten Strom fließen lassen: Sobald die Durchlassspannung erreicht ist, wirkt die LED wie ein nahezu kurzgeschlossener Stromkreis. Ein Vorwiderstand zwischen dem Pin und der LED stellt den Strom auf einen sicheren Wert ein.
Ein Vorwiderstand stellt den LED-Strom ein.¶
Die Versorgungsspannung teilt sich zwischen dem Widerstand und der LED auf: Die LED fällt ihre Durchlassspannung ab, der Widerstand fällt den Rest ab. Nach dem ohmschen Gesetz:
R = (Vsupply - Vf) / If
Für eine rote LED (Vf ≈ 2.0 V), die mit 10 mA von einem 3,3-V-GPIO-Pin getrieben wird:
R = (3.3 - 2.0) / 0.010 = 130 Ω
In der Praxis wählt man den nächstgrößeren Standardwert (150 Ω oder 220 Ω). Das Ergebnis ist eine etwas dunklere LED mit einem gesünderen Sicherheitsabstand. Greifen Sie zu 200 – 470 Ω als vernünftigen Standardwert, wenn die genaue Helligkeit keine Rolle spielt.
3.6.5. Warum jedes Teil wichtig ist¶
Die Form jeder GPIO-Ausgangsschaltung ergibt sich aus den vier obigen Konzepten:
Spannung bestimmt die am Pin verfügbare Energie. Ein 3,3-V-GPIO hat 3,3 V zur Verfügung, die über das, was zwischen ihm und Masse verdrahtet ist, aufgebraucht werden können.
Eine Diode (in diesem Fall eine LED) verbraucht einen Teil dieser Spannung als ihren Durchlassabfall und weigert sich, in die falsche Richtung zu leiten – sie legt fest, in welche Richtung und welchen festen Anteil.
Ein Vorwiderstand verbraucht die restliche Spannung und wandelt das übrige Budget in einen kontrollierten Strom um. Ohne ihn würde die LED den Strom ziehen, den der Pin liefern kann – in der Regel genug, um eines von beiden oder beide zu zerstören.
Das ohmsche Gesetz macht den Widerstandswert berechenbar: Gegeben die übrige Spannung und der gewünschte Strom, ergibt sich
Rdurch Umstellen.
Spannung, Strom, Widerstand, Dioden und eine umgestellte Gleichung reichen aus, um jede grundlegende GPIO-Ausgangsstufe zu entwerfen.
Dieselben Bauteile haben sich die ganze Zeit hinter der bordeigenen LED verborgen. machine.LED("LED_RED").on() lässt die LED leuchten, weil die Platine der Kamera bereits alles drumherum bereitstellt – den Vorwiderstand, den Draht zur Masse, die LED selbst – und die Klasse schaltet lediglich den GPIO des Siliziums dahinter um. Die Sichtweise „eine Zeile lässt eine LED leuchten“ ist zutreffend; sie ist nur eine kurze Art zu sagen „diese Schaltung ansteuern“. Entfernt man die Abstraktion, bleibt genau die obige Schaltung übrig.
machine.Pin ist dasselbe Silizium, ohne die umgebenden Bauteile freigelegt. Das Skript steuert die Spannung des Pins direkt; Sie liefern den Widerstand (dimensioniert nach dem ohmschen Gesetz), die LED und den Rückweg zur Masse. Dieselben vier Konzepte kehren in leicht unterschiedlichen Kombinationen hinter dem Entprellen von Schaltern, der PWM-Filterung und dem Motorantrieb wieder.