DIY-Voltmeter mit Arduino und Nokia 5110 Display – Schritt-für-Schritt-Anleitung
Komponenten und Zubehör
| Komponente | Menge |
|---|---|
| Arduino UNO | 1 |
| Spannungssensor (0–25 V DC) | 1 |
| Nokia 5110 LCD-Display | 1 |
| Steckbrett (klein) | 1 |
| Jumper-Kabel | 1 Set |
Gesamtkosten: ca. 10 €
Apps und Onlinedienste
- Arduino IDE
Über dieses Projekt
In diesem Tutorial zeige ich, wie man ein Voltmeter mit großem Nokia 5110 LCD-Display und Arduino baut.
Der Bau eines Voltmeters ist eine hervorragende Lernübung. Am Ende verstehen Sie, wie Voltmetern funktionieren, frischen Ihr Ohmsches-Gesetz-Wissen auf und sehen, wie leistungsfähig die Arduino-Plattform ist. Mit diesem Projekt als Basis können Sie später komplexere Projekte realisieren.
Das Voltmeter eignet sich zum Messen von Gleichspannung in elektronischen Schaltungen oder zur Überwachung des Batteriestands Ihrer Arduino-Projekte. Mit dem erworbenen Wissen können Sie auch eigene Spannungssensoren für maßgeschneiderte Voltmetern bauen.
Schritt 1: Alle Teile besorgen
- Arduino Uno
- Spannungssensor
- Nokia 5110 LCD-Display
- Kleines Steckbrett
- Einige Kabel
Schritt 2: Der Spannungssensor
Dieser Sensor misst 0–25 V DC und besteht lediglich aus zwei Widerständen – ein klassischer Spannungsteiler. Sie können ihn selbst bauen oder für unter 1 € fertig kaufen.
Funktionsweise: Der Spannungsteiler wandelt eine höhere Eingangsspannung in eine niedrigere Ausgangsspannung um. Die Formel basiert auf dem Ohmschen Gesetz.
In diesem Modul: R1 = 30.000 Ω, R2 = 7.500 Ω. Bei 25 V Eingang erhalten wir 5 V Ausgang – genau das Maximum, das ein Arduino-Analogpin verträgt. Überschreitet man 25 V, wird der Analogpin zerstört.
Der Arduino Uno hat einen 10-Bit-ADC → Auflösung: 25 mV. Ein Arduino Due (12-Bit-ADC, 3,3 V Logik) liefert bessere Auflösung, erfordert aber einen selbstgebauten Sensor mit angepassten Widerständen.
Schritt 3: Nokia 5110 LCD
Mein Lieblingsdisplay für Arduino-Projekte. Ursprünglich für Handys entwickelt, nutzt es den PCD8544-Controller (low-power CMOS). Stromverbrauch: nur 0,4 mA (ohne Hintergrundbeleuchtung), < 0,06 mA im Sleep-Modus.
Schnittstelle: Serieller Bus – nur 8 Kabel nötig. Bibliothek: LCD5110_Graph von Henning Karlsen.
Schritt 4: Voltmeter aufbauen
Spannungssensor anschließen
- – Pin → Arduino GND
- + Pin → nicht anschließen
- S Pin → Analog Pin A0
Nokia 5110 LCD anschließen
- RST → Digital Pin 12
- CE → Digital Pin 11
- DC → Digital Pin 10
- DIN → Digital Pin 9
- CLK → Digital Pin 8
- VCC → Arduino 3,3 V
- LIGHT → Arduino GND (Hintergrundbeleuchtung an)
- GND → Arduino GND
Nach dem Verdrahten nur noch den Code hochladen. Ein Splash-Screen erscheint für 3 Sekunden, dann beginnt die Messung.
Schritt 5: Der Code
Das Projekt besteht aus zwei Dateien: ui.c (Grafiken) und VoltMeter.ino (Hauptprogramm).
VoltMeter.ino – Hauptprogramm
#include
LCD5110 lcd(8, 9, 10, 12, 11);
extern unsigned char BigNumbers[];
extern uint8_t ui[];
extern uint8_t startScreen[];
float voltage = 0.0;
int sensorPin = A0;
float sensorValue = 0.0f;
String voltageString = "0.0";
int stringLength = 0;
float vout = 0.0, vin = 0.0;
float R1 = 30000.0, R2 = 7500.0;
void setup() {
Serial.begin(9600);
lcd.InitLCD();
lcd.drawBitmap(0, 0, startScreen, 84, 48);
lcd.update();
delay(3000);
lcd.setFont(BigNumbers);
delay(1000);
}
void loop() {
lcd.clrScr();
lcd.drawBitmap(0, 0, ui, 84, 48);
voltage = readVoltage();
Serial.println(voltage);
voltageString = String(voltage, 1);
stringLength = voltageString.length();
displayVoltage(stringLength);
lcd.update();
delay(1000);
}
float readVoltage() {
sensorValue = analogRead(sensorPin);
vout = (sensorValue * 5.0) / 1024.0;
vin = vout / (R2 / (R1 + R2));
return vin;
}
void displayVoltage(int length) {
switch (length) {
case 3: lcd.print(voltageString, 14, 19); break;
case 4: lcd.print(voltageString, 2, 19); break;
default: lcd.print(voltageString, 2, 19); break;
}
}
ui.c – Grafikdaten (Ausschnitt)
#include
const unsigned char ui[] PROGMEM = {
0xFF, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x11, 0x31, 0xF1, 0xD1, 0x01, 0x01,
0x81, 0xF1, 0x11, 0x11, 0xC1, 0xE1, 0x11, 0x11, 0x11, 0x31, 0xE1, 0xC1, 0x01, 0x01, 0x11, 0xF1,
// ... (weitere Bitmap-Daten für UI und Splash-Screen)
};
Schritt 6: Testen
Getestet mit AA-Akku, 18650-Zelle und 12-V-Alarmanlagenbatterie. Die Messwerte stimmen sehr gut mit einem professionellen Multimeter überein.
Ein tolles Beispiel für Open-Source-Hardware/-Software: In wenigen Minuten ein funktionsfähiges Messgerät bauen! Ideal für Einsteiger und als Lernprojekt.
Feedback und Verbesserungsvorschläge willkommen – bitte in den Kommentaren posten!
Herstellungsprozess
- Raspberry Pi Luftqualitäts- & Wetterstation mit InfluxDB & Grafana bauen
- Klassisches Pong-Spiel auf Arduino UNO mit OLED-Display bauen – Schritt-für-Schritt-Tutorial
- 20-kHz-Arduino-Oszilloskop mit Nokia 5110 LCD – Einfacher DIY-Bau
- Intelligentes Voltmeter mit Arduino & Smartphone bauen – Einfaches DIY-Projekt
- Arduino Temperaturoverwachung & Echtzeituhr mit 3,2″ TFT-Display
- Interaktives Nextion HMI Projekt mit Arduino Mega und Sensoren
- DIY-Voltmeter mit Arduino und Nokia 5110 Display – Schritt-für-Schritt-Anleitung
- Fridgeye-App mit Nextion-Display bauen: Schritt-für-Schritt-Anleitung
- Musikalische Töne mit Arduino erzeugen: Schritt-für-Schritt-Anleitung
- Arduino GPS & TFT Touchscreen Shield: Echtzeit-Positionsanzeige