Elektronik im Arduino-TestLab
Elektronik-Labor Mikrocontroller PicoBasic TestLab
18.6.25: Verstärker-Grundschaltungen
12.6.25: Dioden und LEDs im TestLab
28.5.25: Statische Ladungen und Felder
27.5.25: Messungen im Arduino-Testlab
26.5.25: Elektronik im Arduino-TestLab
Der Schwerpunkt der Elektronik verschiebt sich immer weiter in die Digitaltechnik. Die
analoge Schaltungstechnik gerät mehr und mehr in Vergessenheit und wird
scheinbar überflüssig. Aber tatsächlich spielt sie immer noch eine große Rolle
auch dann, wenn der Schwerpunkt eines Projekts im Digitalen liegt. Hier
versuche ich eine Brücke zwischen analoger und digitaler Elektronik zu schlagen,
denn am Ende muss man beide Bereiche kennen.
Ein übliches
Elektronik-Labor ist vollgestopft mit teuren Mess- und Testgeräten. Aber hier
reicht ein kleiner Mikrocontroller, der viele dieser Aufgaben übernehmen soll.
Verwendet wird das Arduino-Testlabor auf der Basis eines Arduino Nano.
Alternativ könnte man auch einen RPi Pico oder den preiswerten Tiny3216
verwenden.
Alle Versuche
werden auf einem Steckboard aufgebaut. Das Testlabor und die untersuchten
Schaltungen finden Platz darauf, sodass alles schön kompakt bleibt. Die
Stromversorgung übernimmt der PC über das USB-Kabel.
Die gesamte Entwicklung des TestLab und der vereinfachten Programmiersprache PicoBasic findet man hier: PicoBasic
Vorbereitungen
Die verwendete Windows-Software
heißt TestLab30 und kann hier geladen werden: TestLab30.zip, Das Zip-Archiv muss
zuerst entpackt werden. Das Verzeichnis TestLab30 kann an einen beliebigen Ort oder
auf den Desktop gelegt werden.
Wenn das nicht
schon passiert ist, muss man zuerst die nötige Firmware in den Nano laden. Im
Unterverzeichnis Firmware findet man den Arduino-Sketch PicoBasicNano23 mit PicoBasic
und dem TestLab in der aktuellen Version 2.3. Der Nano ist meist ein Arduino-Clone.
Deshalb muss man in den Werkzeugen ATMega328P (Old Bootloader) und zusätzlich
den verwendeten COM-Port (hier COM4) wählen.
Dann
kann man die Firmware in den Nano hochladen.
Nach dem Start des
TestLab erscheint zuerst das PicoBasic-Fenster. Hier kann man einfache
Programme schreiben und starten, die für Experimente oder besondere Messungen
gebraucht werden. Beim ersten Mal muss man hier den verwendeten Mikrocontroller
(Nano) und die aktuelle COM (hier COM4:) auswählen. Diese Einstellungen werden
in TestLab. Ini gespeichert und sind dann beim nächsten Start wieder aktiv.
Später kann man aber gleich ins TestLab wechseln und mit einfachen Experimenten
beginnen. Die verschiedenen Messgeräte und Steuerungen werden nach und nach vorgestellt.
Ein Klick ins Help-Menü zeigt die verwendbaren Anschlüsse des
Systems.
LED-Ansteuerung
Im ersten Versuch sollen vier LEDs angesteuert werden. Die
verwendeten LEDs hatten interne Vorwiderstände von 1 kOhm. Sie waren
aber trotzdem noch zu hell, deshalb haben alle zusammen noch einen
gemeinsamen Widerstand von 10 k in der Leitung nach GND bekommen. Man
kann aber auch LEDs ohne interne Widerstände nehmen, weil der
gemeinsame Widerstand den Strom begrenzt. 10 k wurde gewählt, weil die
verwendeten LEDs sehr effektiv waren. Bei manchen Typen reicht auch 1
k. Normalerweise bekommt allerdings jede LED ihren eigenen Widerstand.
Der gemeinsame Widerstand führt zu einem besonderen Verhalten.
Als Ausgänge dienen die Ports P0 bis P3. Man kann sie sich vereinfacht
wie Umschalter zwischen GND (0 V) und Vdd (+5 V) vorstellen. Sie müssen
allerdings zuerst als Ausgänge geschaltet werden. Dazu dient das
Kommando Pdir = 255, was alle acht Ports als Ausgänge einrichtet. Mit Pout
= 1 schaltet man dann die erste LED ein. Die folgenden werden mit P =
2, P = 4 und P = 8 aktiviert. Man kann diese Zahlen auch addieren und
mit Pout = 15 alle vier LEDs einschalten.
Am Ausgang P0 wird zusätzlich der analoge Eingang AD0 angeschlossen.
Damit hat man eine Art Voltmeter. Im ausgeschalteten Zustand wird 0
angezeigt und im eingeschalteten Zustand 255 für Vollausschlag, d.h. 5
V. Falls kleinere Widerstände verwendet werden, kann im eingeschalteten
Zustand auch etwas weniger gemessen werden, weil die Umschalter
tatsächlich aus Transistoren bestehen, die selbst einen gewissen
Einschaltwiderstand haben. Die Eingänge AD1 und AD3 zeigen als offene
Eingänge auch irgendetwas an, was aber nur aussagt, auf welche Spannung
sich diese Eingänge zufällig aufgeladen haben.
Bis jetzt wurden die Ausgänge manuell umgeschaltet. Es geht jedoch auch
automatisch, wenn man ein kleines Programm dazu verwendet. Dazu
schaltet man auf die PicoBasic-Programmieroberfläche um. Man kann das
Programm selbst eingeben. In diesem Fall wurde jedoch das fertige
Programm Count.pbas aus dem Verzeichnis Start verwendet, nur die
Wartezeit in Delay ms = 250 geändert und dann mit Run gestartet. Sofort
beginnen die LEDs nach einem vorgegebenen Muster zu blinken. Die
Programmierung in PicoBasic ist hier nicht das zentrale Thema. Wer sich
da einarbeiten will, sei auf das Thema PicoBasic verwiesen.
REM Count
0x09FF Pdir = 255
L1:
0x4500 Pout = A
0x2800 A = A + 1
0x1964 Delay ms = 250
0x2001 Goto L1:
Das Programm zählt eine Variable A hoch und gibt ihren Inhalt an die
acht Ausgänge aus. Wenn man die Zahlen 0 bis 15 als Binärzahlen
schreibt, erkennt man, dass P0 am schnellsten blinkt, P1 halb so
schnell, und jede folgende LED noch einmal halb so schnell.
0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000, 1001 usw.
Der analoge Eingang A0 im Testlab kann auch als Eingang eines einfachen
Oszilloskops dienen. Die Ablenkgeschwindigkeit wurde hier auf 0,25
s/div eingestellt. Auf dem Schirm sieht man das regelmäßige Umschalten
im Takt von 250 ms.Genauso kann man auch die anderen Ausgänge
beobachten. Auch ein Zweikanal- und ein Dreikanal-Oszilloskop gibt es,
um mehrere Ausgänge gleichzeitig zu beobachten.
Jetzt wird der
Eingang AD0 an den gemeinsamen Vorwiderstand angeschlossen. Damit hat man
zugleich auch eine Stromstärkemessung für den Gesamtstrom durch alle vier LEDs.
Das Oszillogramm zeigt einen seltsamen Verlauf. Wenn man genau hinsieht,
erkennt man fünf unterschiedliche Ströme für keine, eine, zwei, drei und vier
gleichzeitig leuchtende LEDs.
Ganz grob
betrachtet misst das Oszilloskop entweder null oder den halben Ausschlag, also
ca. 2,5 V. Das bedeutet einen Strom von 2,5 V / 10 k = 0,25 mA. Dieser Strom
teilt sich auf alle gerade leuchtenden LEDs auf. Wenn man eine einzelne LED
betrachtet, sieht man eine in vier Stufen schwankende Helligkeit. Wenn man den
Stromverlauf allerdings ganz genau erklären will, wird es kompliziert. Hier
spielt nämlich die LED-Kennlinie mit hinein, die später noch genauer untersucht
werden soll.
Leistungstreiber
Im Bild ganz oben sieht man eine Glühlampe mit 12V/3W. So etwas
kann der Mikrocontroller nicht allein schalten, dazu wird ein
Leistungstreiber gebraucht. In diesem Fall wurde ein NPN-Transistor
BC337 verwendet. Er kann laut Datenblatt dauerhaft 800 mA schalten und
hat eine Stromverstärkung von mindestens 100. Die Lampe braucht 250 mA
bei 12 V und hat einen Nennwiderstand von rund 50 Ohm. Der
Kaltwiderstand ist aber etwa 10-fach kleiner, sodass man im ersten
Moment des Einschaltens mit einem Strom von ca. 1 A bei 5 V rechnen
muss. Im Betrieb sinkt der Strom dann auf ca. 150 mA an 5 V, was mit
einem Labornetzteil festgestellt wurde. Der Basiswiderstand wurde mit 1
k festgelegt, was einen Basiswiderstand von knapp 5 mA ergibt und einen
maximalen Kollektorstrom von mindestens 500 mA.
Der analoge Eingang AD0 wurde direkt mit dem Kollektor verbunden. Damit
wird die Kollektor-Emitterspannung gemessen. Sie sollte bei einem
idealen Schalter im eingeschalteten Zustand bei 0 V liegen. Der
Transistor hat aber immer eine gewisse CE-Restspannung.
Im Oszillogramm sieht man das Einschaltverhalten des Transistors.
In y-Richtung wird eine Spannung bis 5 V dargestellt, also 0,5 V pro
Skalenteil. Am Anfang ist der Glühfaden noch kalt und niederohmig,
sodass ein großer Kollektorstrom fließt. Man sieht eine CE-Restspannung
von 1,25 V, die dann nach rund einer halben Sekunde auf 0,75 V sinkt.
An der Lampe selbst sieht man ebenfalls das verzögerte Aufleuchten und
ein langsames Abnehmen der Helligkeit. Beides ist auf die
Wärmekapazität des Glühfadens zurückzuführen. Das schwache Durchschalten des Transistors führt zu seiner stärkeren Erwärmung.
Insgesamt ist die Helligkeit der Glühlampe gering, weil sie nur an 5 V
betrieben wird und tatsächlich nur rund 4 V bekommt. Mit dem
verwendeten Leistungstreiber könnte man auch 12 V anschließen, sodass
sie mit voller Helligkeit blinkt. Aber Achtung! Der AD-Wandler darf nur
Spannungen bis 5 V messen! Bei höherer Spannung an AD0 oder einem
beliebigen anderen Pin des Controllers kann er zerstört werden. Die
Verbindung AD0 - Kollektor muss also dann unbedingt entfernt werden.
Siehe auch: Taschenbuch mit genaueren Informationen zum Aufbau des Systems:
Elektronik-Labor Mikrocontroller PicoBasic TestLab