Zurück

Analoge Elektronik im Browser: sieben Schaltungen zum Ausführen und Messen

Das 5-V-Netzteil in Velxio: zwei Signalgeneratoren als mittelangezapfter Transformator, zwei 1N4007-Dioden, ein Ladekondensator und ein 7805-Regler, wobei das Oszilloskop die 12-V-AC-Eingangsspannung und die gleichgerichtete Spannung zeigt

Die meisten Arduino-Tutorials springen direkt zum Code. Doch die Bauteile rund um den Mikrocontroller sind analog: der Widerstand, der eine LED am Leben hält, der Spannungsteiler, der einen Sensor in eine Spannung verwandelt, der Transistor, der einen Motor schaltet, der Regler, der aus einem Steckernetzteil 5 V macht. Wenn eines davon falsch ist, hilft kein Code der Welt.

Velxio simuliert auch diese Hälfte. Es führt ngspice aus, den quelloffenen SPICE-Schaltungssimulator, kompiliert zu WebAssembly, sodass sich Widerstände, Kondensatoren, Dioden, Transistoren, Op-Amps und Regler in deinem Browser wie ihre realen Gegenstücke verhalten. Du kannst sie mit einem Voltmeter, einem Amperemeter und einem Oszilloskop messen und jeden Wert ändern, während die Schaltung läuft.

Dieser Artikel führt durch sieben Projekte. Die ersten fünf haben überhaupt keinen Mikrocontroller, nur Bauteile. Die letzten beiden mischen analoge Schaltungen mit einem Arduino und einem ESP32. Jedes Projekt ist in der Beispielgalerie, und jede Zahl unten wurde aus dem Simulator abgelesen und gegen die Formel geprüft, die sie erklärt.

Bevor du beginnst: die drei Messinstrumente

Eines solltest du wissen: Bei Schaltungen mit Wechselstromquellen löst Velxio ein kurzes Zeitfenster ab dem Einschalten der Versorgung (einige Zyklen des Signals) und zeigt den Scope-Verlauf dieses Fensters. Es wiederholt die Lösung, während du Dinge änderst, sodass das Bild aktuell bleibt, aber es ist keine kontinuierliche Aufzeichnung.

1. Eine LED und ein Widerstand: das Ohmsche Gesetz

Eine 9-V-Batterie, ein Amperemeter mit 15,18 mA, ein 470-Ohm-Widerstand mit einem parallel geschalteten Voltmeter, das 7,136 V anzeigt, und eine leuchtende rote LED

Die erste Schaltung, die jeder Anfänger baut, und die am häufigsten falsch gebaute: Eine LED, die direkt an eine Batterie angeschlossen wird, brennt durch, weil nichts ihren Strom begrenzt. Der Widerstand in Reihe erledigt diese Aufgabe.

Die Messgeräte erzählen die ganze Geschichte:

Das ist die Formel zur Wahl des Widerstands: R = (VVersorgung − VLED) / I. Für 15 mA aus einer 9-V-Batterie: (9 − 1,8) / 0,015 = 480 Ω, also ist 470 Ω der nächste Normwert.

Probier es aus: Klicke mit der rechten Maustaste auf den Widerstand und ändere ihn auf 1 kΩ. Der Strom fällt auf 7,2 mA und die LED wird dunkler, während sich ihre eigene Spannung kaum bewegt (1,81 V). Eine LED hält ihre Spannung nahezu konstant und lässt den Widerstand den Strom bestimmen.

Öffne die Schaltung LED und Ohmsches Gesetz in Velxio

2. Ein 5-V-Netzteil: Gleichrichter, Kondensator und Regler

Das klassische lineare Netzteil, das in jedem alten Steckernetzteil steckt, in vier Stufen:

  1. Transformator. Er wandelt Netz-Wechselspannung in eine sicherere, niedrigere Wechselspannung um. Hier ist es eine mittelangezapfte 12-0-12-V-Sekundärwicklung, dargestellt als zwei Signalgeneratoren in Gegenphase (je 12 V Spitze, 50 Hz).
  2. Gleichrichter. Zwei 1N4007-Dioden, eine pro Hälfte der Sekundärwicklung. Jede leitet in ihrer eigenen Halbwelle, sodass der Ausgang alle 10 ms einen positiven Impuls erhält: Vollwellengleichrichtung.
  3. Ladekondensator. Der 220-µF-Kondensator lädt sich bei jeder Spitze auf und versorgt dazwischen die Last. Die Spannung, die er hält, ist nicht flach: Sie sackt zwischen den Spitzen ab. Dieser Einbruch ist die Brummspannung.
  4. Regler. Der 7805 nimmt diese schwankende Spannung und hält seinen Ausgang exakt bei 5 V, solange sein Eingang mindestens etwa 2 V über dem Ausgang bleibt.

Das Scope-Bild oben in diesem Artikel zeigt die 12 V AC vom Transformator und die gleichgerichtete Spannung am Kondensator. Der Kondensator schwankt zwischen 10,1 V und 11,8 V, etwa 1,7 V Brummspannung bei 50 mA Last, und das Voltmeter am Ausgang zeigt stabile 5,000 V.

Die schnelle Schätzung für die Brummspannung ist ΔV ≈ I / (2·f·C): 0,05 A / (2 × 50 Hz × 220 µF) = 2,3 V. Diese Formel geht davon aus, dass der Kondensator die Last während der gesamten Halbwelle versorgt; in Wirklichkeit laden die Dioden ihn etwas früher wieder auf, sodass die gemessenen 1,7 V niedriger sind.

Probier es aus: Klicke mit der rechten Maustaste auf den Kondensator und ändere ihn auf 47 µF. Die Brummspannung wächst auf 6 V, die Täler fallen auf 5,9 V, unter das, was der 7805 braucht, und sein Ausgang sackt in jedem Zyklus auf 3,9 V ab. Deshalb verwenden Netzteile große Kondensatoren.

Öffne das 5-V-Netzteil in Velxio

3. Ein Nachtlicht mit LDR und zwei Transistoren

Nachtlicht im Dunkeln: das Lichtsensormodul, die Transistoren Q1 und Q2 und eine leuchtende gelbe LED

Ein automatisches Nachtlicht, ohne Mikrocontroller und ohne Code. Ein Fotowiderstand (LDR) misst das Licht, und zwei Transistoren schalten die LED ein, wenn es dunkel wird.

Das Lichtsensormodul ist ein Spannungsteiler: der LDR oben und ein 10-kΩ-Widerstand unten. Bei Tageslicht ist der Widerstand des LDR niedrig und der Ausgang des Moduls (AO) hoch; im Dunkeln steigt er auf Hunderte von kΩ und AO fällt in Richtung 0 V.

Warum zwei Transistoren? Weil einer allein das Gegenteil bewirken würde: die LED einschalten, wenn es hell ist. Die erste Stufe invertiert das Signal.

In der Simulation liegt AO bei 20 Lux (einem dämmrigen Raum) bei 0,50 V, Q1 ist aus und die LED führt 13 mA. Bei 30 Lux liegt AO bei 0,67 V, Q1 schaltet ein und die LED erlischt. Klicke mit der rechten Maustaste auf den Lichtsensor und ändere Illumination (lux) über diesen Bereich, um ihn umzuschalten:

Dieselbe Schaltung bei Tageslicht: die gelbe LED ist aus

Öffne das Nachtlicht in Velxio

4. Ein Transistorverstärker: die Emitterschaltung

Emitterverstärker mit dem Oszilloskop: das Basissignal (grün) ist klein, das Kollektorsignal (rot) ist größer und steht auf dem Kopf

So wird aus einem kleinen Signal ein großes: der Emitterverstärker, der Baustein jedes diskreten Audioverstärkers. Ein 1-kHz-Sinus von 0,4 V Spitze-Spitze gelangt über einen Koppelkondensator hinein und kommt am Kollektor etwa viereinhalbmal größer und auf dem Kopf stehend wieder heraus. (Die 9-V-Versorgung ist das Labornetzteil-Symbol oben links; der Signalgenerator befindet sich darunter.)

Zwei Dinge sorgen dafür, dass es funktioniert.

Die Vorspannung. Ein Transistor verstärkt nur, wenn er teilweise leitend ist. Der Spannungsteiler aus 47 kΩ und 10 kΩ legt die Basis auf 1,54 V. Der Emitter liegt eine Diodenspannung tiefer, bei 0,89 V, sodass 0,89 mA durch den 1-kΩ-Emitterwiderstand fließen. Derselbe Strom verursacht am 4,7-kΩ-Kollektorwiderstand einen Abfall von 4,2 V, sodass der Kollektor bei 4,83 V liegt, nahe der Mitte der Versorgungsspannung, mit Spielraum in beide Richtungen.

Die Verstärkung. Eine Änderung an der Basis erscheint nahezu unverändert am Emitter, sodass sie den Strom um ΔV / Re ändert. Diese Stromänderung fließt durch Rc und verschiebt den Kollektor um ΔV × Rc / Re, und zwar in die entgegengesetzte Richtung. Die Verstärkung beträgt also −Rc/Re = −4,7. Der Simulator misst 4,54: Der Transistor fügt einen kleinen internen Emitterwiderstand von etwa 26 mV / Ie ≈ 29 Ω hinzu, und 4700 / 1029 = 4,57.

Auf dem Oszilloskop bewegt sich die Basis (grün) um 0,4 V um 1,5 V, und der Kollektor (rot) bewegt sich um 1,8 V um 4,8 V, mit seinen Spitzen dort, wo die Basis ihre Täler hat.

Probier es aus: Klicke mit der rechten Maustaste auf den Signalgenerator und erhöhe seine Amplitude auf 1 V. Der Kollektor müsste dann 9 V schwingen, mehr als die Versorgung zulässt, also flacht die Spitze der Welle bei 9 V ab und der Boden bei der Sättigung: Clipping, der Klang eines übersteuerten Verstärkers.

Den Emitterverstärker in Velxio öffnen

5. Ein Thermostat mit einem Op-Amp-Komparator

Thermostat über seinem Sollwert: der Ausgang des LM358 ist hoch und die rote LED, die einen Lüfter darstellt, leuchtet

Ein Thermostat, der einen Lüfter einschaltet, wenn es warm wird, mit einem einzigen LM358-Op-Amp und ohne Code.

Der Sensor. Der Widerstand des NTC-Thermistors fällt, wenn er sich erwärmt (10 kΩ bei 25 °C, etwa 7,4 kΩ bei 32 °C). Das Modul schaltet ihn unter einen festen 10-kΩ-Widerstand, sodass seine Ausgangsspannung mit der Temperatur fällt: 2,50 V bei 25 °C, 2,12 V bei 32 °C.

Der Sollwert. Das Potentiometer ist ein zweiter Spannungsteiler. Sein Schleifer liegt bei 2,336 V, der Spannung, die der Thermistor bei 28 °C liefert. Das Voltmeter zeigt sie an.

Der Komparator. Ein Op-Amp ohne Rückkopplung hat so viel Verstärkung, dass sein Ausgang je nachdem, welcher Eingang höher liegt, auf die eine oder andere Versorgungsschiene springt. Der Sollwert geht an den +-Eingang und der Thermistor an den −-Eingang: unterhalb von 28 °C ist die Spannung des Thermistors höher und der Ausgang liegt bei 0 V; oberhalb von 28 °C ist sie niedriger und der Ausgang springt auf etwa 3,7 V und bringt die LED zum Leuchten. Bei 27 °C ist die LED aus, bei 29 °C ist sie an.

Warum 3,7 V und nicht 5 V? Der LM358 kann seinen Ausgang nicht bis ganz an seine positive Versorgung treiben; er bleibt etwa 1,3 V davor stehen. Projekt 6 stößt an dieselbe Grenze.

Ein echtes Thermostat fügt eine Hysterese hinzu, damit es nicht ständig ein- und ausschaltet, während die Temperatur um die Schwelle schwankt. Projekt 7 macht das im Code.

Probier es aus: Klicke mit der rechten Maustaste auf den Thermistor und ändere seine Temperatur, oder klicke mit der rechten Maustaste auf das Potentiometer und ändere seine Position (0 bis 1023), um den Sollwert zu verschieben.

Das Op-Amp-Thermostat in Velxio öffnen

6. Arduino: PWM in eine echte analoge Spannung verwandeln

Ein Arduino Uno, dessen Pin 9 einen RC-Filter und einen LM358-Spannungsfolger zurück in A0 speist, und der serielle Monitor, der die erwarteten und die gemessenen Spannungen vergleicht

Ein Arduino Uno hat keinen DAC: analogWrite() gibt keine Spannung aus, sondern PWM, eine 490-Hz-Rechteckwelle, deren Tastverhältnis den Mittelwert bestimmt. Eine LED oder ein Motor kümmert das nicht, aber viele Schaltungen brauchen eine echte, konstante Spannung. Ein analoger Filter erzeugt eine.

PWM 0    expected 0.00 V  measured 0.02 V
PWM 64   expected 1.25 V  measured 1.26 V
PWM 128  expected 2.51 V  measured 2.51 V
PWM 192  expected 3.76 V  measured 3.77 V
PWM 255  expected 5.00 V  measured 4.03 V

Bis 192 ist der DAC auf 10 mV genau. Bei 255 bleibt er bei 4,03 V stehen: Der Filter erreicht zwar 5 V, aber der LM358, der mit 5 V versorgt wird, kann seinen Ausgang nicht so hoch treiben. Die Lösung ist ein Rail-to-Rail-Op-Amp wie der MCP6002, oder man nutzt nur den Bereich, den der LM358 erreichen kann.

Den Arduino-PWM-DAC in Velxio öffnen

7. ESP32: ein Thermometer, das einen Lüfter schaltet

Ein ESP32, der einen NTC-Thermistor an GPIO34 liest und einen Lüfter (eine grüne LED) über einen 2N7000-MOSFET schaltet, während der serielle Monitor 35.0 C fan ON ausgibt

Wieder das Thermostat, diesmal entscheidet ein Mikrocontroller, sodass er Dinge tun kann, die ein Komparator nicht kann: die Temperatur in Grad anzeigen und eine Hysterese hinzufügen.

Die Temperatur messen. Der Ausgang des NTC-Moduls geht an GPIO34, einen reinen Eingangspin am ersten ADC des ESP32. Der Sketch mittelt 16 Messungen, berechnet den Widerstand des Thermistors aus dem Spannungsteiler (R = 10 kΩ × V / (3,3 V − V)) und rechnet ihn mit der Beta-Gleichung aus dem Datenblatt des Thermistors in Grad um: 1/T = 1/T₀ + ln(R/R₀)/β, mit R₀ = 10 kΩ bei T₀ = 25 °C und β = 3950. Der serielle Monitor gibt 25,0 °C aus, wenn der Thermistor auf 25 °C eingestellt ist, und 35,0 °C bei 35 °C.

Die Last schalten. Ein GPIO-Pin kann ein paar Milliampere liefern, nicht die Hunderte, die ein Lüfter braucht. Stattdessen treibt GPIO25 das Gate eines 2N7000-MOSFET über einen 100-Ω-Widerstand an, und der MOSFET verbindet den Lüfter (hier eine grüne LED) mit Masse. Bei 35 °C liegt der Drain bei 0,06 V: Der MOSFET ist vollständig leitend.

Hysterese. Der Lüfter schaltet sich bei 30 °C ein und erst unterhalb von 28 °C wieder aus. Ohne diese 2-°C-Lücke würde eine Temperatur, die um die Schwelle schwankt, den Lüfter jede Sekunde ein- und ausschalten.

Für einen echten Lüfter verwende einen Logic-Level-MOSFET, der für den Strom des Lüfters ausgelegt ist (der 2N7000 eignet sich nur für kleine Lasten), und eine Diode parallel zum Lüfter, um die Spannungsspitze des Motors beim Abschalten aufzunehmen.

Das ESP32-Thermometer und den Lüfter in Velxio öffnen

Was wir beim Bauen dieser Projekte behoben haben

Diesen Artikel zu schreiben bedeutete, jede Schaltung zu messen, und die Messungen brachten Probleme im Simulator ans Licht, die alle vor der Veröffentlichung behoben wurden:

Wenn du eine analoge Schaltung in Velxio baust und die Werte nicht zur Formel passen, sag uns Bescheid auf GitHub. So wurden diese gefunden.


Teilen auf:
David Montero

Geschrieben von

David Montero

Creator of Velxio, the open-source circuit and Arduino simulator.

GitHub velxio.dev

Ähnliche Artikel


Vorheriger Artikel
Sechs Handheld-Spiele für den ESP32 und den XIAO ESP32-S3, spielbar im Browser
Nächster Artikel
Sieben Halloween-Projekte, die du im Browser bauen und ausführen kannst