DIY-Voltmeter mit Arduino und Smartphone
Komponenten und Verbrauchsmaterialien
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Über dieses Projekt
Vorführung
Wenn Sie neu bei Arduino sind, können Sie mit Arduino-Tutorials für Neulinge beginnen.
So funktioniert's
Wir können den analogen Eingangspin von Arduino verwenden, um die Spannung zu messen. Die maximal messbare Spannung beträgt jedoch 5 V.
Um die messbare Spannung zu erhöhen, müssen wir einen Spannungsteiler verwenden
InTheory
Wir haben:
V_Maß =(R1 + R2) / R2 * V_in
Verhältnis =(R1 + R2) / R2
=> V_Maß =Verhältnis * V_in
Wenn wir R1 =10 * R2 wählen, haben wir:
V_Maß =11 * V_in
Da das Maximum der zulässigen V_in 5V beträgt => Das Maximum der messbaren Spannung beträgt 55V
Um den Strom durch den Arduino-Pin zu begrenzen, der Arduino beschädigen kann, müssen wir den Widerstandswert so groß wie möglich wählen.
Ich wähle R1 =1 MOhm, R2 =100Kohm
In der Praxis
Da gibt es einige Probleme in der Praxis
- Wert von R1 und R2 weist Fehler auf. Die Fehler verursachen den Fehler von V_measure
- Die Stromquelle von Arduino kann instabil sein. Dadurch ist V_REF des Analogeingangs instabil. Daher verursacht es den Fehler bei der Berechnung von V_in. => es verursacht Fehler bei der Berechnung von V_measure
Diese Probleme werden im Kalibrierungsteil gelöst
Kalibrierung
1. Messen Sie den tatsächlichen Wert von (R1 + R2) / R2
Dies muss nur einmal durchgeführt werden, um das Verhältnis zu erhalten
Verdrahtung als untenstehendes Bild:
Verhältnis =(R1 + R2) / R2 =V_Measure / V_in =A1_read_value / A0_read_value
Verhältnis =A1_read_value / A0_read_value
Code für diese Kalibrierung => siehe ResisterCalibration.ino im Codeteil
2. Instabilität der Stromversorgung
Eine Instabilität der Stromversorgung verursacht eine Instabilität der Spannungsreferenz des analogen Pins. Dies führt zu einer falschen Messung bei der Spannungsberechnung.
Um das Problem zu lösen, müssen wir die Spannungsreferenz häufig messen.
Wie misst man die Spannungsreferenz?
3.3V an Pin A1 anschließen
Die Spannungsreferenz wird indirekt basierend auf dem Wert in A1 gemessen:
V_Referenz=1023 * 3,3 / A1_Wert
So berechnen Sie das V_Maß:
V_in =mapFloat(A0_value, 0, 1023, 0, V_reference);V_measure =ratio * V_in;
Hauptverkabelung:
So geht's
- Verdrahtung als "Widerstandskalibrierverdrahtung"-Schaltung
- Widerstandskalibrierung.ino hochladen
- Serienplotter öffnen
- Kopieren Sie den Verhältniswert
- Ersetzen Sie diesen Wert in Zeile 5 von Voltmeter.ino
- Umverdrahtung als "Hauptverkabelung"
- Voltmeter.ino hochladen
- Web-Benutzeroberfläche hochladen (voltmeter.php und voltmeter_body.jpg ) zu PHPoC Shield
- Auf die Webseite http://phpoc_shield_ip_address/voltmeter.php zugreifen, um die Spannung anzuzeigen.
Sie können die Spannung auf dem Smartphone wie folgt anzeigen:
Verdrahtungstipps:
Das beste Arduino Starter Kit für Anfänger
Siehe Das beste Arduino-Kit für Anfänger
Code
- Widerstandskalibrierung.ino
- Voltmeter.ino
- voltmeter.php
ResistorCalibration.inoArduino
- Verkabelung wie im Kalibrierungsteil beschrieben- Führen Sie diesen Code einmal aus
- Öffnen Sie den seriellen Plotter
- Kopieren Sie den Verhältniswert
- Ersetzen Sie diesen Wert in Zeile 5 von Voltmeter.ino
double ratio;int analogReadAverage(int pin, int read_time){ unsigned long read_value =0; // Lesen Sie den analogen Wert read_time mal:for (int i =0; iVoltmeter.inoArduino
Dies ist der Hauptcode. Vor dem Hochladen dieses Codes müssen wir:
- ResistorCalibration.ino hochladen
- Serial Monitor öffnen
- Kopieren Sie den Verhältniswert und ersetzen Sie den Wert in Zeile 5 dieses Codesdouble V_measure;double V_in; double V_reference;double ratio =11,59;double mapFloat(double x, double in_min, double in_max, double out_min, double out_max) { return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;}int analogReadAverage (int pin, int read_time) { unsigned long read_value =0; for (int i =0; ivoltmeter.phpPHP
Diese Datei ist die Webbenutzeroberfläche. Es muss zusammen mit dem Hintergrundbild voltmeter_body.jpgPHPoC Shield - VOLTMETER
Schaltpläne
Es muss auf PHPoC Shield hochgeladen werdenHerstellungsprozess
- DIY Photoshop-Bearbeitungskonsole mit Arduino Nano RP 2040
- Anwesenheitssystem mit Arduino und RFID mit Python
- Universelle Fernbedienung mit Arduino, 1Sheeld und Android
- DIY Infrarot-Herzschlagsensor mit Arduino
- Frequenz- und Duty-Cycle-Messung mit Arduino
- DIY Voltmeter mit Arduino und einem Nokia 5110 Display
- Sonar mit Arduino und Anzeige bei der Verarbeitung von IDE
- MobBob:DIY-Arduino-Roboter, der von einem Android-Smartphone gesteuert wird
- Steuerung der LED-Helligkeit mit Bolt und Arduino
- Einfacher und intelligenter Roboterarm mit Arduino