Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

DIY-Voltmeter mit Arduino und Smartphone

Komponenten und Verbrauchsmaterialien

Arduino UNO
× 1
PHPoC WiFi Shield für Arduino
× 1
Widerstand 100k Ohm
× 1
Widerstand 1 M Ohm
× 1
Überbrückungskabel
× 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; i  
Voltmeter.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 Codes
double 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; i  
voltmeter.phpPHP
Diese Datei ist die Webbenutzeroberfläche. Es muss zusammen mit dem Hintergrundbild voltmeter_body.jpg
PHPoC Shield - VOLTMETER 

Schaltpläne

Es muss auf PHPoC Shield hochgeladen werden

Herstellungsprozess

  1. DIY Photoshop-Bearbeitungskonsole mit Arduino Nano RP 2040
  2. Anwesenheitssystem mit Arduino und RFID mit Python
  3. Universelle Fernbedienung mit Arduino, 1Sheeld und Android
  4. DIY Infrarot-Herzschlagsensor mit Arduino
  5. Frequenz- und Duty-Cycle-Messung mit Arduino
  6. DIY Voltmeter mit Arduino und einem Nokia 5110 Display
  7. Sonar mit Arduino und Anzeige bei der Verarbeitung von IDE
  8. MobBob:DIY-Arduino-Roboter, der von einem Android-Smartphone gesteuert wird
  9. Steuerung der LED-Helligkeit mit Bolt und Arduino
  10. Einfacher und intelligenter Roboterarm mit Arduino