Voltímetro de bricolaje con Arduino y un teléfono inteligente
Componentes y suministros
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Acerca de este proyecto
Demostración
Si es nuevo en Arduino, puede comenzar con los Tutoriales de Arduino para principiantes.
Cómo funciona
Podemos usar el pin de entrada analógica Arduino para medir el voltaje. Sin embargo, el voltaje máximo medible es 5V.
Para aumentar el voltaje medible, necesitamos usar un divisor de voltaje
InTheory
Tenemos:
V_measure =(R1 + R2) / R2 * V_in
proporción = (R1 + R2) / R2
=> V_measure =ratio * V_in
Si elegimos R1 =10 * R2, tenemos:
V_measure =11 * V_in
Dado que el máximo de V_in permitido es 5V => El máximo de voltaje medible es 55V
Para limitar la ejecución actual a través del pin de Arduino, que puede causar daño a Arduino, debemos elegir el valor de la resistencia lo más grande posible.
Elijo R1 =1 Mohm, R2 =100Kohm
En la práctica
Allí hay algunos problemas en la práctica
- El valor de R1 y R2 tiene errores. Los errores provocan el error de V_measure
- La fuente de energía de Arduino puede ser inestable. Hace que el V_REF de la entrada analógica sea inestable. Por tanto, provoca el error en el cálculo de V_in. => causa error en el cálculo de V_measure
Estos problemas se resuelven en la parte de Calibración
Calibración
1. Mide el valor real de (R1 + R2) / R2
Esto debe hacerse solo una vez para obtener la proporción
Cableado como se muestra a continuación:
ratio =(R1 + R2) / R2 =V_measure / V_in =A1_read_value / A0_read_value
ratio =A1_read_value / A0_read_value
Código para esta calibración => consulte ResisterCalibration.ino en la parte del código
2. Inestabilidad de la fuente de alimentación
La inestabilidad de la fuente de alimentación provoca inestabilidad en la referencia de voltaje del pin analógico. Provoca una medida incorrecta en el cálculo de voltaje.
Para resolverlo, necesitamos medir la referencia de voltaje con frecuencia.
¿Cómo medir la referencia de voltaje?
Conecte 3.3V al pin A1
La referencia de voltaje se mide indirectamente según el valor en A1:
V_reference =1023 * 3.3 / A1_value
Cómo calcular la V_medida:
V_in =mapFloat (A0_value, 0, 1023, 0, V_reference); V_measure =ratio * V_in;
Cableado principal:
Cómo
- Cableado como circuito de "cableado de calibración de resistencia"
- Cargar ResistorCalibration.ino
- Trazador serial abierto
- Copie el valor de la proporción
- Reemplace este valor en la línea 5 de Voltmeter.ino
- Recableado como "cableado principal"
- Cargar Voltmeter.ino
- Cargue la interfaz de usuario web ( voltmeter.php y voltmeter_body.jpg ) a PHPoC Shield
- Acceda a la página web http://phpoc_shield_ip_address/voltmeter.php para ver el voltaje.
Puede ver el voltaje en el teléfono inteligente de la siguiente manera:
Consejos de cableado:
El mejor kit de inicio de Arduino para principiantes
Vea el mejor kit de Arduino para principiantes
Código
- ResistorCalibration.ino
- Voltímetro.ino
- voltímetro.php
ResistorCalibration.ino Arduino
- Cableado como se describe en la parte de Calibración- Ejecute este código una vez
- Trazador serial abierto
- Copiar el valor de la relación
- Reemplace este valor en la línea 5 de Voltmeter.ino
double ratio; int analogReadAverage (int pin, int read_time) {unsigned long read_value =0; // lee el valor analógico en el valor read_time times:for (int i =0; iVoltímetro.ino Arduino
Este es el código principal. Antes de cargar este código, necesitamos:
- subir ResistorCalibration.ino
- Monitor serial abierto
- copie el valor de la relación y reemplace el valor en la línea 5 de este códigodouble V_measure; double V_in; double V_reference; double ratio =11.59; double mapFloat (doble x, doble in_min, doble in_max, doble 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; ivoltímetro.php PHP
Este archivo es la interfaz de usuario web. Debe cargarse en PHPoC Shield junto con la imagen de fondo voltmeter_body.jpgPHPoC Shield - VOLTMETER html {altura:100%;} cuerpo {ancho:100%; altura:100%;; text-align:center;}. contenedor {ancho:100%; altura mínima:99%; altura máxima:100%;} lienzo {fondo:url (cuerpo_voltímetro.jpg); background-size:contener; familia de fuentes:'Segment7Standard'; font-weight:negrita; font-style:italic;} Esquemas
Debe cargarse en PHPoC Shield
Proceso de manufactura
- Consola de edición de Photoshop DIY con Arduino Nano RP 2040
- Sistema de asistencia que usa Arduino y RFID con Python
- Control remoto universal usando Arduino, 1Sheeld y Android
- DIY Sensor infrarrojo de latidos del corazón con Arduino
- Medición de frecuencia y ciclo de trabajo con Arduino
- Voltímetro de bricolaje con Arduino y una pantalla Nokia 5110
- Sonda usando arduino y visualización en procesamiento IDE
- MobBob:Robot Arduino DIY controlado por un teléfono inteligente Android
- Control del brillo del LED usando Bolt y Arduino
- Brazo robótico simple e inteligente con Arduino
- Radio FM usando Arduino y RDA8057M