Lektion 98-9: LED-Spannungspegelmesser mit Arduino oder Lauflicht mit Potentiometer
Dieses Projekt zeigt Ihnen, wie Sie ein Spannungsmessgerät bauen, das fünf LEDs als Balkendiagramm-Anzeige verwendet und vollständig von einem Arduino und einem einzigen Potentiometer angesteuert wird. Wenn Sie den Knopf drehen, liest der Arduino die sich ändernde Spannung an einem analogen Pin und lässt pro Volt eine LED aufleuchten, sodass die Reihe der Lichter buchstäblich mit dem Knopf auf und ab „wandert". Es ist eine der klarsten Möglichkeiten, den analogen Eingang zu verstehen, denn Sie können die Analog-Digital-Wandlung in Echtzeit als physischen Lichtbalken sehen.
Der praktische Nutzen geht weit über eine Lichtshow hinaus. Sobald Sie verstehen, wie man eine gemessene Spannung auf eine Reihe von Ausgängen abbildet, können Sie genau dasselbe Muster für echte Messtechnik wiederverwenden. Zum Beispiel könnten Sie bauen:
- Eine Batterieladeanzeige, die die Restkapazität einer 12-V- oder USB-Powerbank als LED-Reihe anzeigt.
- Eine Wasserstandsanzeige für einen Tank, bei der ein Schwimmsensor eine zum Füllstand proportionale Spannung ausgibt.
- Eine Temperaturbalkenanzeige mit einem analogen Temperatursensor wie dem LM35.
- Ein Signalstärke- oder Audiopegelmessgerät für einen Funkempfänger oder Verstärker.
- Eine einfache Sensoranzeige für jeden analogen 0–5-V-Messumformer (Druck, Licht, Position).
- Eine Labor-Spannungssonde zum Prüfen von Versorgungsschienen ohne Multimeter-Anzeige.
Da die Schwellenwerte als Prozentsätze der Boardspannung berechnet werden, funktioniert derselbe Code auf 5-V-Boards wie dem Uno und Mega sowie auf 3,3-V-Boards mit nur einer einzeiligen Änderung.
Hardware und Komponenten
Die Teileliste ist bewusst minimal gehalten, und alles wird im frühen Teil des Videos erklärt (im Video bei 01:54). Sie benötigen:
- Ein Arduino-Board (Uno, Nano oder Mega).
- Fünf LEDs, idealerweise in einer einzigen Farbe, damit der Balken klar ablesbar ist, obwohl gemischte Farben auch funktionieren.
- Fünf strombegrenzende Widerstände. Das Tutorial verwendet 1-kΩ-Widerstände, aber alles von etwa 300 Ω bis 1 kΩ funktioniert; höhere Werte machen die LEDs einfach dunkler (im Video bei 05:33).
- Ein Potentiometer. Es werden sowohl ein Drehknopf-Typ als auch ein Schiebe-Typ demonstriert (im Video bei 02:19).
- Ein Steckbrett und Jumper-Kabel.
Ein kurzer Hinweis zur LED selbst, da dies für die Verkabelung wichtig ist: Eine LED ist eine Diode, leitet also nur in eine Richtung. Die flache Seite des Kunststoffgehäuses und das kürzere Bein sind die Kathode (negativ). Das längere Bein ist die Anode (positiv). Das Tutorial geht auf dieses Symbol und die physische Form im Detail ein (im Video bei 02:39).
Der Widerstandswert ist nicht willkürlich. Eine LED hat eine Flussspannung von etwa 2 V, und die kleinen 3-mm- und 5-mm-Typen ziehen etwa 10 mA. Bei einer 5-V-Versorgung müssen die verbleibenden 3 V am Widerstand abfallen, sodass das Ohmsche Gesetz R = 3 V / 0,01 A = 300 Ω ergibt. Das ist der Wert für maximale Helligkeit; die Verwendung von 1 kΩ ist eine sichere, etwas dunklere Wahl (im Video bei 04:41).
Verkabelungsanleitung
Der LED-Abschnitt der Verkabelung ist identisch mit dem früheren Lauflicht-Projekt: Jede LED-Anode wird mit ihrem eigenen digitalen Pin verbunden, und jede Kathode führt über einen Widerstand zu einer gemeinsamen Masse-Schiene. Im Tutorial sind die LEDs mit den Pins 7, 6, 5, 4 und 3 verbunden (im Video bei 43:04).
Das Potentiometer ist das einzige neue Bauteil. Seine beiden äußeren Pins gehen an die beiden Versorgungsschienen — ein äußerer Pin an Masse und der andere an 5 V (oder 3,3 V, wenn Sie ein 3,3-V-System messen). Der mittlere Pin, der sogenannte Schleifer, ist der Ausgang und muss mit dem analogen Pin A0 verbunden werden (im Video bei 43:30). Der Schleifer erzeugt die variable Spannung: Wenn Sie den Knopf drehen, gleitet der Schleifer entlang einer Widerstandsbahn, und die von ihm ausgegebene Spannung ändert sich sanft zwischen den beiden Schienen.
Ein wichtiges Detail: Wenn Sie das Potentiometer entfernen, während die Schaltung läuft, bleibt der analoge Pin floating und die LEDs flackern zufällig. Dieses Verhalten wird im Video demonstriert (im Video bei 48:52) und ist eine gute Erinnerung daran, dass ein analoger Eingang immer eine definierte Spannungsquelle benötigt.
Code-Erklärung
Der Code ist kurz und größtenteils unkompliziert, daher konzentriert sich dieser Abschnitt nur auf die Teile, die Sie ändern möchten. Alle diese Einstellungen befinden sich am Anfang des Sketches.
Pin-Definitionen. Diese teilen dem Arduino mit, mit welchen Pins die LEDs und das Potentiometer verbunden sind. Wenn Sie Ihre LEDs anders verkabelt haben, ändern Sie diese Nummern entsprechend — die Reihenfolge ist wichtig, denn LED1 ist der niedrigste Schwellenwert und LED5 der höchste.
const int potPin = A0;//define a pin to connect potentiometer
const int LED1 = 7;
const int LED2 = 6;
const int LED3 = 5;
const int LED4 = 4;
const int LED5 = 3;Board-Spannung. Dies ist der wichtigste Wert, der korrekt eingestellt werden muss. Er ist die Referenz, gegen die jeder Schwellenwert berechnet wird. Stellen Sie ihn auf 5,0 für einen Uno oder Mega ein und auf 3,3 für einen 3,3-V-Nano oder ein ähnliches Board. Wenn Sie ihn falsch lassen, schaltet jede LED bei der falschen Spannung (im Video bei 44:19).
float boardVoltage= 5.0;//for UNO and MEGA 5.0V for Nano either 5V or 3.3V
Serielle Spannungsanzeige. Setzen Sie dies auf true, um die gemessene Spannung mit 9600 Baud im Serial Monitor auszugeben, was während der Kalibrierung äußerst nützlich ist. Setzen Sie es auf false, um die Ausgabe stummzuschalten, sobald alles funktioniert.
boolean showVoltage = true;//true or false to read voltage in serial monitor
Wie die Umwandlung funktioniert. Der Analog-Digital-Wandler des Arduino liefert eine Zahl von 0 bis 1023, da es sich um einen 10-Bit-Wandler handelt (210 = 1024 Schritte). Der Code skaliert diese Rohzahl mithilfe der Board-Spannung als Referenz in eine reale Spannung. Dies ist die Zeile, die Sie sich merken sollten, falls Sie jemals auf ein 12-Bit-Board wie das Due umsteigen, bei dem Sie stattdessen durch 4095 teilen würden.
int sensorValue = analogRead(A0);
float voltage = sensorValue * (boardVoltage / 1023.0);
Die Schwellenwertlogik. Anstatt Spannungen fest zu codieren, wird jeder Schritt als Prozentsatz der Board-Spannung ausgedrückt. Bei 95 % oder mehr leuchten alle fünf LEDs; über 80 % nur vier; und so weiter bis hinunter zu 20 %, wo eine einzelne LED leuchtet. Dieser prozentuale Ansatz macht den Sketch ohne Umschreiben der Vergleiche zwischen 5-V- und 3,3-V-Boards portabel.
if (voltage >= boardVoltage*0.95)
{
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
}
Da der Code else if verwendet, wird pro Durchlauf der Schleife genau ein Zweig ausgeführt, sodass immer nur die richtige Anzahl von LEDs gleichzeitig an ist. Die Verzögerung von 50 ms am Ende jeder Schleife verhindert ein Flackern der Anzeige.
Live-Projekt und Demonstration
Öffnen Sie nach dem Hochladen des Sketches den Serial Monitor mit 9600 Baud und drehen Sie den Knopf langsam. Die ausgegebene Spannung und der LED-Balken folgen einander eng: Bei etwa 1 V leuchtet eine LED, bei 2 V leuchten zwei und so weiter bis etwa 4,8 V, wo alle fünf an sind (im Video bei 47:37). Die Messwerte liegen innerhalb weniger Hundertstel Volt vom erwarteten Wert, was für einen 10-Bit-Wandler ausgezeichnet ist.
Wenn die Stufen leicht ungleichmäßig aussehen, liegt das normalerweise an den Widerständen und nicht am Code. Das Tutorial weist darauf hin, dass Standard-Kohleschichtwiderstände eine Toleranz von 10 % haben, während blaue Metallschichttypen typischerweise 1 % haben und deutlich engere, genauere Stufen liefern (im Video bei 48:18).
Sie können das Drehpotentiometer auch durch ein Schiebepotentiometer ersetzen und erhalten dasselbe Verhalten mit einem linearen Gefühl, was eine schöne Option ist, wenn Sie das Messgerät in eine Platte einbauen möchten (im Video bei 49:07).
Wenn Sie das Licht manuell statt mit einem Knopf bewegen möchten, wird das in Lektion 98-8: Lauflicht mit Drucktaster und LEDs mit Arduino behandelt. Und wenn Sie einfach möchten, dass die LEDs nach ihrem eigenen Timer laufen, sehen Sie sich Lektion 98-7: Lauflicht mit Arduino und 5 LEDs an.
Verwandte Projekte aus diesem Video
- Lektion 98-1: Wie man eine LED mit Arduino ein- und ausschaltet
- Lektion 98-2: Wie man eine LED mit einem Drucktaster und Arduino ein- und ausschaltet
- Lektion 98-3: Wie man eine Toggle-LED mit einem Drucktaster und Arduino ein-/ausschaltet
- Lektion 98-4: Dimmen einer LED mit Arduino: Helligkeitssteuerung
- Lektion 98-5: Licht dimmen, wenn ein Taster gedrückt wird, mit Arduino
- Lektion 98-6: Wipp-LED-Spiel mit Arduino
- Lektion 98-7: Lauflicht mit Arduino und 5 LEDs
- Lektion 98-8: Lauflicht mit Drucktaster und LEDs mit Arduino
- Lektion 98-10: Arduino-Ampel
Kapitel
- [00:00] Überblick über die 10 LED-Projekte
- [02:29] LED-Grundlagen, Symbole und Widerstandsberechnung
- [42:25] Einführung in den LED-Spannungspegelmesser
- [43:04] Verdrahtung der LEDs und des Potentiometers
- [43:54] Erklärung des Spannungsbalken-Codes
- [44:19] Einstellen der Board-Spannungsreferenz
- [46:00] Schwellenwertlogik und prozentuale Stufen
- [47:14] Demonstration: Spannung mit dem LED-Balken ablesen
- [48:18] Widerstandstoleranz und Genauigkeit
- [49:07] Verwendung eines Schiebepotentiometers
This code has not been parsed yet. Please return to the admin panel to parse it.
Dinge, die Sie vielleicht brauchen
-
AmazonSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amazon
-
Amazon
-
Amazon
Ressourcen & Referenzen
-
DokumentationDokumentation für das SunFounder 3 in 1 IoT/Smarte Auto/Lernkitdocs.sunfounder.com
-
Extern
-
Extern
-
Extern
Dateien📁
Arduino-Bibliotheken (zip)
-
SunFounder 3-in-1 Smart Car Lernkit Quellcode
3in1-kit-main-v2.zip12.80 MB
|||Benutzerhandbuch
-
SunFounder 3-in-1 Arduino Smart Car MontageanleitungDieses Dokument zeigt die Schritt-für-Schritt-Montage des SunFounder 3-in-1 Arduino Smart Car
SunFounder_car_assembly_manual.pdf1.20 MB