Voltmètre DIY utilisant Arduino et Smartphone
Composants et fournitures
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
| × | 1 |
À propos de ce projet
Démonstration
Si vous êtes nouveau sur Arduino, vous pouvez commencer avec les didacticiels Arduino pour les débutants.
Comment ça marche
Nous pouvons utiliser la broche d'entrée analogique Arduino pour mesurer la tension. Cependant, la tension maximale mesurable est de 5V.
Pour augmenter la tension mesurable, nous devons utiliser un diviseur de tension
En Théorie

Nous avons :
V_mesure =(R1 + R2) / R2 * V_in
rapport =(R1 + R2) / R2
=> V_measure =ratio * V_in
Si on choisit R1 =10 * R2, on a :
V_mesure =11 * V_in
Puisque le maximum du V_in admissible est de 5V => Le maximum de la tension mesurable est de 55V
Pour limiter le courant à travers la broche d'Arduino, ce qui peut endommager Arduino, nous devons choisir une valeur de résistance aussi grande que possible.
Je choisis R1 =1 Mohm, R2 =100Kohm
En pratique
Là est quelques problèmes dans la pratique
- La valeur de R1 et R2 comporte des erreurs. Les erreurs provoquent l'erreur de V_measure
- La source d'alimentation d'Arduino peut être instable. Cela rend le V_REF de l'entrée analogique instable. Par conséquent, cela provoque l'erreur de calcul de V_in. => cela provoque une erreur dans le calcul de V_measure
Ces problèmes sont résolus sur la partie Calibration
Étalonnage
1. Mesurer la valeur réelle de (R1 + R2) / R2
Cela ne doit être fait qu'une seule fois pour obtenir le ratio
Câblage comme l'image ci-dessous :

ratio =(R1 + R2) / R2 =V_measure / V_in =A1_read_value / A0_read_value
ratio =A1_read_value / A0_read_value
Code pour cet étalonnage => voir ResisterCalibration.ino dans la partie code
2. Instabilité de l'alimentation
L'instabilité de l'alimentation entraîne une instabilité de la référence de tension de la broche analogique. Cela provoque une mauvaise mesure dans le calcul de la tension.
Pour le résoudre, nous devons mesurer fréquemment la référence de tension.
Comment mesurer la référence de tension ?
Connectez 3.3V à la broche A1

La référence de tension est mesurée indirectement en fonction de la valeur dans A1 :
V_reference=1023 * 3.3 / A1_value
Comment calculer la V_mesure :
V_in =mapFloat(A0_value, 0, 1023, 0, V_reference);V_measure =ratio * V_in;
Câblage principal :

Comment faire
- Câblage en tant que circuit de "câblage d'étalonnage de résistance"
- Télécharger ResistorCalibration.ino
- Ouvrir le traceur série
- Copier la valeur du rapport
- Remplacez cette valeur à la ligne 5 de Voltmeter.ino
- Recâblage en tant que "câblage principal"
- Télécharger Voltmeter.ino
- Télécharger l'interface utilisateur Web (voltmeter.php et voltmeter_body.jpg ) vers PHPoC Shield
- Accédez à la page Web http://phpoc_shield_ip_address/voltmeter.php pour voir la tension.
Vous pouvez afficher la tension sur le téléphone intelligent comme suit :

Conseils de câblage :



Le meilleur kit de démarrage Arduino pour débutant
Voir le meilleur kit Arduino pour les débutants
Code
- ResistorCalibration.ino
- Voltmeter.ino
- voltmètre.php
ResistorCalibration.inoArduino
- Câblage comme décrit dans la partie Calibration- Exécutez ce code une fois
- Ouvrez le traceur série
- Copier la valeur du rapport
- Remplacez cette valeur à la ligne 5 de Voltmeter.ino
double ratio;int analogReadAverage(int pin, int read_time){ unsigned long read_value =0 ; // lit l'analogique dans la valeur read_time times:for(int i =0; iVoltmeter.inoArduino
C'est le code principal. Avant de télécharger ce code, nous devons :
- télécharger ResistorCalibration.ino
- ouvrir Serial Monitor
- copiez la valeur du ratio et remplacez la valeur à la ligne 5 de ce codedouble 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){ read_value long non signé =0 ; for(int i =0; ivoltmètre.phpPHP
Ce fichier est l'interface utilisateur Web. Il doit être téléchargé sur PHPoC Shield avec l'image d'arrière-plan voltmeter_body.jpgPHPoC Shield - VOLTMETER
Schémas
Il doit être téléchargé sur PHPoC Shield
Processus de fabrication
- Console d'édition Photoshop DIY utilisant Arduino Nano RP 2040
- Système de présence utilisant Arduino et RFID avec Python
- Télécommande universelle utilisant Arduino, 1Sheeld et Android
- Capteur de rythme cardiaque infrarouge DIY utilisant Arduino
- Mesure de la fréquence et du cycle de service à l'aide d'Arduino
- Voltmètre DIY avec Arduino et un écran Nokia 5110
- Sonar utilisant arduino et affichage lors du traitement de l'IDE
- MobBob :Robot Arduino DIY contrôlé par smartphone Android
- Contrôle de la luminosité des LED à l'aide de Bolt et Arduino