- Matériaux nécessaires
- Schéma
- Unité de mesure
- Unité de calcul et d'affichage
- Programmation de l'Arduino
- Comment mesurer avec plus de précision?
- Travail et test
En tant qu'ingénieurs électroniciens, nous dépendons toujours de compteurs / instruments pour mesurer et analyser le fonctionnement d'un circuit. Du simple multimètre aux analyseurs complexes de la qualité de l'énergie ou aux DSO, tout a ses propres applications. La plupart de ces compteurs sont facilement disponibles et peuvent être achetés en fonction des paramètres à mesurer et de leur précision. Mais parfois, nous pouvons nous retrouver dans une situation où nous devons construire nos propres compteurs. Supposons, par exemple, que vous travaillez sur un projet solaire photovoltaïque et que vous souhaitez calculer la consommation d'énergie de votre charge.Dans de tels scénarios, nous pouvons construire notre propre wattmètre à l'aide d'une simple plate-forme de microcontrôleur comme Arduino.
Construire vos propres compteurs non seulement réduit le coût des tests, mais nous permet également de faciliter le processus de test. Comme, un wattmètre construit à l'aide d'Arduino peut facilement être modifié pour surveiller les résultats sur le moniteur série et tracer un graphique sur le traceur série ou ajouter une carte SD pour enregistrer automatiquement les valeurs de tension, de courant et de puissance à des intervalles prédéfinis. Cela semble intéressant, non !? Alors, commençons…
Matériaux nécessaires
- Arduino Nano
- Amplificateur opérationnel LM358
- 7805 Régulateur de tension
- Écran LCD 16 * 2
- Résistance shunt 0,22 ohm 2Watt
- Pot de coupe 10k
- Résistances 10k, 20k, 2,2k, 1k
- Condensateurs 0.1uF
- Charge d'essai
- Planche ou planche à pain Perf
- Kit de soudure (en option)
Schéma
Le schéma de circuit complet du projet de wattmètre arduino est donné ci-dessous.
Pour faciliter la compréhension, le circuit du wattmètre Arduino est divisé en deux unités. La partie supérieure du circuit est l'unité de mesure et la partie inférieure du circuit est l'unité de calcul et d'affichage. Pour les personnes novices dans ce type de circuits, suivez les étiquettes. Exemple + 5V est étiquette, ce qui signifie que toutes les broches auxquelles l'étiquette est connectée doivent être considérées comme elles sont connectées ensemble. Les étiquettes sont normalement utilisées pour donner un aspect soigné au schéma de circuit.
Le circuit est conçu pour s'intégrer dans des systèmes fonctionnant entre 0-24V avec une plage de courant de 0-1A en gardant à l'esprit les spécifications d'un solaire PV. Mais vous pouvez facilement étendre la portée une fois que vous comprenez le fonctionnement du circuit. Le principe sous-jacent derrière le circuit est de mesurer la tension aux bornes de la charge et le courant qui le traverse pour calculer la puissance consommée par celui-ci. Toutes les valeurs mesurées seront affichées sur un écran LCD alphanumérique 16 * 2.
Plus loin, divisons le circuit en petits segments afin que nous puissions avoir une image claire de la façon dont le circuit est en retrait pour fonctionner.
Unité de mesure
L'unité de mesure se compose d'un diviseur de potentiel pour nous aider à mesurer la tension et une résistance de fermeture avec un amplificateur opérationnel non inverseur est utilisée pour nous aider à mesurer le courant à travers le circuit. La partie diviseur de potentiel du circuit ci-dessus est indiquée ci-dessous
Ici, la tension d'entrée est représentée par Vcc, comme indiqué précédemment, nous concevons le circuit pour une plage de tension de 0V à 24V. Mais un microcontrôleur comme Arduino ne peut pas mesurer des valeurs de tension aussi élevées; il ne peut mesurer que la tension de 0 à 5 V. Nous devons donc mapper (convertir) la plage de tension de 0-24V à 0-5V. Cela peut être facilement réalisé en utilisant un circuit diviseur de potentiel comme indiqué ci-dessous. Les résistances 10k et 2,2k forment ensemble le circuit diviseur de potentiel. La tension de sortie d'un diviseur de potentiel peut être calculée à l'aide des formules ci-dessous. Il en va de même pour décider de la valeur de vos résistances, vous pouvez utiliser notre calculateur en ligne pour calculer la valeur de la résistance si vous reconcevez le circuit.
Vout = (Vin × R2) / (R1 + R2)
Le 0-5V mappé peut être obtenu à partir de la partie centrale qui est étiquetée comme tension. Cette tension mappée peut ensuite être fournie à la broche analogique Arduino plus tard.
Ensuite, nous devons mesurer le courant à travers la CHARGE. Comme nous le savons, les microcontrôleurs ne peuvent lire que la tension analogique, nous devons donc d'une manière ou d'une autre convertir la valeur du courant en tension. Cela peut être fait en ajoutant simplement une résistance (résistance shunt) dans le chemin qui, selon la loi d'Ohm, fera chuter une valeur de tension à travers celui-ci qui est proportionnelle au courant qui le traverse. La valeur de cette chute de tension sera très inférieure, nous utilisons donc un ampli-op pour l'amplifier. Le circuit pour le même est montré ci-dessous
Ici, la valeur de la résistance shunt (SR1) est de 0,22 Ohms. Comme dit précédemment, nous concevons le circuit pour 0-1A, donc sur la base de la loi d'Ohm, nous pouvons calculer la chute de tension à travers cette résistance qui sera d'environ 0,2 V lorsqu'un courant maximum de 1 A traverse la charge. Cette tension est très faible pour un microcontrôleur à lire, nous utilisons un amplificateur opérationnel en mode amplificateur non inverseur pour augmenter la tension de 0,2 V à un niveau plus élevé pour que l'Arduino puisse la lire.
L'amplificateur opérationnel en mode non inverseur est illustré ci-dessus. L'amplificateur est conçu pour avoir un gain de 21, de sorte que 0,2 * 21 = 4,2V. Les formules pour calculer le gain de l'ampli-op sont données ci-dessous, vous pouvez également utiliser ce calculateur de gain en ligne pour obtenir la valeur de votre résistance si vous reconcevez le circuit.
Gain = Vout / Vin = 1 + (Rf / Rin)
Ici, dans notre cas, la valeur de Rf est 20k et la valeur de Rin est 1k ce qui nous donne une valeur gian de 21. La tension amplifiée de l'ampli-op est alors donnée à un filtre RC avec une résistance 1k et un condensateur 0,1uF à filtre tout bruit couplé. Enfin, la tension est ensuite fournie à la broche analogique Arduino.
La dernière partie qui reste dans l'unité de mesure est la partie régulateur de tension. Puisque nous allons donner une tension d'entrée variable, nous avons besoin d'un volt régulé + 5V pour que l'Arduino et l'ampli-op fonctionnent. Cette tension régulée sera fournie par le régulateur de tension 7805. Un condensateur est ajouté en sortie pour filtrer le bruit.
Unité de calcul et d'affichage
Dans l'unité de mesure, nous avons conçu le circuit pour convertir les paramètres de tension et de courant en 0-5V qui peuvent être alimentés aux broches analogiques Arduino. Maintenant, dans cette partie du circuit, nous allons connecter ces signaux de tension à Arduino et également interfacer un écran alphanumérique 16 × 2 avec l'Arduino afin que nous puissions voir les résultats. Le circuit pour le même est montré ci-dessous
Comme vous pouvez le voir, la broche de tension est connectée à la broche analogique A3 et la broche actuelle est connectée à la broche analogique A4. L'écran LCD est alimenté par le + 5V du 7805 et est connecté aux broches numériques d'Arduino pour fonctionner en mode 4 bits. Nous avons également utilisé un potentiomètre (10k) connecté à la broche Con pour faire varier le contraste de l'écran LCD.
Programmation de l'Arduino
Maintenant que nous avons une bonne compréhension du matériel, ouvrons l'Arduino et commençons la programmation. Le but du code est de lire la tension analogique sur les broches A3 et A4 et de calculer la valeur de tension, de courant et de puissance et enfin de l'afficher sur l'écran LCD. Le programme complet pour faire de même est donné à la fin de la page qui peut être utilisé comme tel pour le matériel décrit ci-dessus. De plus, le code est divisé en petits extraits et expliqué.
Comme tous les programmes, nous commençons par définir les broches que nous avons utilisées. Dans le projet, les broches A3 et A4 sont utilisées pour mesurer respectivement la tension et le courant et les broches numériques 3,4,8,9,10 et 11 sont utilisées pour interfacer l'écran LCD avec Arduino
int Read_Voltage = A3; int Read_Current = A4; const int rs = 3, en = 4, d4 = 8, d5 = 9, d6 = 10, d7 = 11; // Mentionnez le numéro de broche pour la connexion LCD LiquidCrystal lcd (rs, en, d4, d5, d6, d7);
Nous avons également inclus un fichier d'en-tête appelé cristal liquide pour interfacer l'écran LCD avec Arduino. Ensuite, à l'intérieur de la fonction de configuration, nous initialisons l'écran LCD et affichons un texte d'introduction en tant que «Wattmètre Arduino» et attendons deux secondes avant de l'effacer. Le code correspondant est indiqué ci-dessous.
void setup () { lcd.begin (16, 2); // Initialise 16 * 2 LCD lcd.print ("Arduino Wattmeter"); // Ligne de message d'introduction 1 lcd.setCursor (0, 1); lcd.print ("- Circuitdigest"); // Retard de la ligne 2 du message d'introduction (2000); lcd.clear (); }
À l'intérieur de la fonction de boucle principale, nous utilisons la fonction de lecture analogique pour lire la valeur de tension à partir des broches A3 et A4. Comme nous le savons, la valeur de sortie Arduino ADC de 0 à 1203 car elle dispose d'un ADC 10 bits. Cette valeur doit ensuite être convertie en 0-5V, ce qui peut être fait en multipliant par (5/1023). Ensuite, plus tôt dans le matériel, nous avons mappé la valeur réelle de la tension de 0-24V à 0-5V et la valeur réelle du courant de 0-1A à 0-5V. Nous devons donc maintenant utiliser un multiplicateur pour ramener ces valeurs à leur valeur réelle. Cela peut être fait en le multipliant par une valeur multiplicatrice. La valeur du multiplicateur peut être calculée théoriquement en utilisant les formules fournies dans la section matériel ou si vous avez un ensemble connu de valeurs de tension et de courant, vous pouvez le calculer pratiquement.J'ai suivi cette dernière option car elle a tendance à être plus précise en temps réel. Donc, ici, la valeur des multiplicateurs est de 6,46 et 0,239. Par conséquent, le code ressemble à ci-dessous
float Voltage_Value = analogRead (Read_Voltage); float Current_Value = analogRead (Read_Current); Voltage_Value = Voltage_Value * (5,0 / 1023,0) * 6,46; Current_Value = Current_Value * (5,0 / 1023,0) * 0,239;
Comment mesurer avec plus de précision?
La méthode ci-dessus pour calculer la valeur de la tension et du courant réels fonctionnera parfaitement. Mais souffre d'un inconvénient, c'est-à-dire que la relation entre la tension ADC mesurée et la tension réelle ne sera pas linéaire, par conséquent un seul multiplicateur ne donnera pas des résultats très précis, le même s'applique également pour le courant.
Ainsi, pour améliorer la précision, nous pouvons tracer un ensemble de valeurs ADC mesurées avec des valeurs réelles en utilisant un ensemble connu de valeurs, puis utiliser ces données pour tracer un graphique et dériver l'équation du multiplicateur à l'aide de la méthode de régression linéaire. Vous pouvez vous référer au compteur Arduino dB dans lequel j'ai utilisé une méthode similaire.
Enfin, une fois que nous avons calculé la valeur de la tension réelle et du courant réel à travers la charge, nous pouvons calculer la puissance en utilisant les formules (P = V * I). Ensuite, nous affichons les trois valeurs sur l'écran LCD en utilisant le code ci-dessous.
lcd.setCursor (0, 0); lcd.print ("V ="); lcd.print (Voltage_Value); lcd.print (""); lcd.print ("I ="); lcd.print (Current_Value); float Power_Value = Voltage_Value * Current_Value; lcd.setCursor (0, 1); lcd.print ("Puissance ="); lcd.print (Power_Value);
Travail et test
Dans un souci de tutoriel, j'ai utilisé une carte de performance pour souder tous les composants comme indiqué dans le circuit. J'ai utilisé une borne à vis Phoenix pour connecter la charge et une prise jack CC normale pour connecter ma source d'alimentation. La carte Arduino Nano et l'écran LCD sont montés sur un Bergstik femelle afin qu'ils puissent être réutilisés si nécessaire ultérieurement.
Après avoir préparé le matériel, téléchargez le code Arduino sur votre carte Nano. Ajustez le potentiomètre pour contrôler le niveau de contraste de l'écran LCD jusqu'à ce que vous voyiez un texte d'introduction clair. Pour tester la carte, connectez la charge au connecteur de borne à vis et la source à la prise Barrel. La tension source doit être supérieure à 6V pour que ce projet fonctionne, car l'Arduino a besoin de + 5V pour fonctionner. SI tout fonctionne correctement, vous devriez voir la valeur de la tension à travers la charge et le courant qui la traverse affiché sur la première ligne de l'écran LCD et la puissance calculée affichée sur la deuxième ligne de l'écran LCD comme indiqué ci-dessous.
La partie amusante de la construction de quelque chose consiste à le tester pour vérifier dans quelle mesure il fonctionnera correctement. Pour ce faire, j'ai utilisé des bulles d'indicateur automobile 12V comme charge et le RPS comme source. Étant donné que le RPS lui-même peut mesurer et afficher la valeur du courant et de la tension, il nous sera facile de vérifier la précision et les performances de notre circuit. Et oui, j'ai également utilisé mon RPS pour calibrer ma valeur de multiplicateur afin que je me rapproche de la valeur précise.
Le travail complet peut être trouvé à la vidéo donnée à la fin de cette page. J'espère que vous avez compris le circuit et le programme et appris quelque chose d'utile. Si vous rencontrez un problème pour que cela fonctionne, postez-le dans la section commentaires ci-dessous ou écrivez sur nos forums pour obtenir une aide plus technique.
Ce projet de wattmètre basé sur Arduino a beaucoup plus de mises à niveau qui peuvent être ajoutées pour augmenter les performances de l'enregistrement automatique des données, du graphique de traçage, de la notification des situations de surtension ou de surintensité, etc.