Faites cet ampèremètre numérique avancé en utilisant Arduino

Essayez Notre Instrument Pour Éliminer Les Problèmes





Dans cet article, nous allons construire un ampèremètre numérique utilisant un écran LCD 16 x 2 et Arduino. Nous comprendrons la méthodologie de mesure du courant à l'aide d'une résistance shunt et implémenterons une conception basée sur Arduino. L'ampèremètre numérique proposé peut mesurer un courant allant de 0 à 2 ampères (maximum absolu) avec une précision raisonnable.

Comment fonctionnent les ampèremètres

Il existe deux types d'ampèremètres: analogiques et numériques, leur fonctionnement est très différent l'un de l'autre. Mais, ils ont tous deux un concept en commun: une résistance shunt.



Une résistance shunt est une résistance avec une très petite résistance placée entre la source et la charge tout en mesurant le courant.

Voyons comment fonctionne un ampèremètre analogique et il sera alors plus facile de comprendre le numérique.



comment fonctionne un ampèremètre analogique

Une résistance shunt avec une résistance très faible R et supposons qu'un compteur analogique type est connecté à travers la résistance dont la déviation est directement proportionnelle à la tension à travers le compteur analogique.

Passons maintenant une certaine quantité de courant du côté gauche. i1 est le courant avant d'entrer dans la résistance shunt R et i2 sera le courant après avoir traversé la résistance shunt.

Le courant i1 sera supérieur à i2 car il a laissé tomber une fraction de courant à travers la résistance shunt. La différence de courant entre la résistance shunt développe une très petite quantité de tension à V1 et V2.
La quantité de tension sera mesurée par ce compteur analogique.

La tension développée aux bornes de la résistance shunt dépend de deux facteurs: le courant circulant à travers la résistance shunt et la valeur de la résistance shunt.

Si le flux de courant est plus grand à travers le shunt, la tension développée est plus élevée. Si la valeur du shunt est élevée, la tension développée aux bornes du shunt est plus élevée.

La résistance shunt doit avoir une valeur très petite et doit posséder une puissance nominale plus élevée.

Une résistance de faible valeur garantit que la charge reçoit une quantité adéquate de courant et de tension pour un fonctionnement normal.

De plus, la résistance shunt doit avoir une puissance nominale plus élevée afin de pouvoir tolérer la température plus élevée tout en mesurant le courant. Plus le courant traversant le shunt est élevé, plus la chaleur est générée.

À présent, vous auriez eu l'idée de base, comment fonctionne un compteur analogique. Passons maintenant à la conception numérique.

À présent, nous savons qu'une résistance produira une tension s'il y a un flux de courant. Du diagramme V1 et V2 sont les points, où nous prenons les échantillons de tension vers le microcontrôleur.

Calcul de la conversion de tension en courant

Voyons maintenant les calculs simples, comment pouvons-nous convertir la tension produite en courant.

La loi d'Ohm: I = V / R

Nous connaissons la valeur de la résistance shunt R et elle sera entrée dans le programme.

La tension produite aux bornes de la résistance shunt est:

V = V1 - V2

Ou

V = V2 - V1 (pour éviter le symbole négatif pendant la mesure et également le symbole négatif dépendent du sens du flux de courant)

Nous pouvons donc simplifier l'équation,

I = (V1 - V2) / R
Ou
I = (V2 - V1) / R

L'une des équations ci-dessus sera entrée dans le code et nous pouvons trouver le débit actuel et s'affichera sur l'écran LCD.

Voyons maintenant comment choisir la valeur de la résistance shunt.

L'Arduino a intégré un convertisseur analogique-numérique (ADC) 10 bits. Il peut détecter de 0 à 5V par pas de 0 à 1024 ou niveaux de tension.

La résolution de cet ADC sera donc de 5/1024 = 0,00488 volts ou 4,88 millivolts par étape.

Donc 4,88 millivolts / 2 mA (résolution minimale de l'ampèremètre) = résistance de 2,44 ou 2,5 ohms.

Nous pouvons utiliser quatre résistances de 10 ohms et 2 watts en parallèle pour obtenir 2,5 ohms qui ont été testés dans le prototype.

Alors, comment pouvons-nous dire la plage mesurable maximale de l'ampèremètre proposé qui est de 2 ampères.

L'ADC peut mesurer de 0 à 5 V uniquement, c'est-à-dire. Tout ce qui précède endommagera l'ADC du microcontrôleur.

D'après le prototype testé, nous avons observé que, aux deux entrées analogiques du point V1 et V2 lorsque la valeur mesurée actuelle X mA, la tension analogique lit X / 2 (dans le moniteur série).

Disons par exemple, si l'ampèremètre lit 500 mA, les valeurs analogiques sur le moniteur série lit 250 pas ou niveaux de tension. L'ADC peut tolérer jusqu'à 1024 pas ou 5 V maximum. Ainsi, lorsque l'ampèremètre lit 2000 mA, le moniteur série lit 1000 pas environ. qui est proche de 1024.

Tout ce qui dépasse le niveau de tension de 1024 endommagera l'ADC dans Arduino. Pour éviter cela juste avant 2000 mA, un message d'avertissement s'affiche sur l'écran LCD disant de déconnecter le circuit.

A présent, vous auriez compris comment fonctionne l'ampèremètre proposé.

Passons maintenant aux détails de construction.

Diagramme schématique:

Ampèremètre numérique Arduino DC

Le circuit proposé est très simple et convivial pour les débutants. Construisez selon le schéma de circuit. Ajustez le potentiomètre 10K pour régler le contraste de l'écran.

Vous pouvez alimenter l'Arduino depuis USB ou via une prise CC avec des piles 9 V. Quatre résistances de 2 watts dissiperont la chaleur uniformément que d'utiliser une résistance de 2,5 ohms avec une résistance de 8 à 10 watts.

Lorsqu'aucun courant ne passe, l'écran peut lire une petite valeur aléatoire que vous pouvez ignorer, cela peut être dû à une tension parasite aux bornes de mesure.

REMARQUE: N'inversez pas la polarité d'alimentation de la charge d'entrée.

Code de programme:

//------------------Program Developed by R.GIRISH------------------//
#include
#define input_1 A0
#define input_2 A1
LiquidCrystal lcd(12, 11, 5, 4, 3, 2)
int AnalogValue = 0
int PeakVoltage = 0
float AverageVoltage = 0
float input_A0 = 0
float input_A1 = 0
float output = 0
float Resolution = 0.00488
unsigned long sample = 0
int threshold = 1000
void setup()
{
lcd.begin(16,2)
Serial.begin(9600)
}
void loop()
{
PeakVoltage = 0
for(sample = 0 sample <5000 sample ++)
{
AnalogValue = analogRead(input_1)
if(PeakVoltage {
PeakVoltage = AnalogValue
}
else
{
delayMicroseconds(10)
}
}
input_A0 = PeakVoltage * Resolution
PeakVoltage = 0
for(sample = 0 sample <5000 sample ++)
{
AnalogValue = analogRead(input_2)
if(PeakVoltage {
PeakVoltage = AnalogValue
}
else
{
delayMicroseconds(10)
}
}
input_A1 = PeakVoltage * Resolution
output = (input_A0 - input_A1) * 100
output = output * 4
while(analogRead(input_A0) >= threshold)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Reached Maximum')
lcd.setCursor(0,1)
lcd.print('Limit!!!')
delay(1000)
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Disconnect now!!')
delay(1000)
}
while(analogRead(input_A0) >= threshold)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Reached Maximum')
lcd.setCursor(0,1)
lcd.print('Limit!!!')
delay(1000)
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Disconnect now!!')
delay(1000)
}
lcd.clear()
lcd.setCursor(0,0)
lcd.print('DIGITAL AMMETER')
lcd.setCursor(0,1)
lcd.print(output)
lcd.print(' mA')
Serial.print('Volatge Level at A0 = ')
Serial.println(analogRead(input_A0))
Serial.print('Volatge Level at A1 = ')
Serial.println(analogRead(input_A1))
Serial.println('------------------------------')
delay(1000)
}
//------------------Program Developed by R.GIRISH------------------//

Si vous avez des questions spécifiques concernant ce projet de circuit d'ampèremètre numérique basé sur Arduino, veuillez l'exprimer dans la section des commentaires, vous pouvez recevoir une réponse rapide.




Précédent: Utilisation du potentiomètre numérique MCP41xx avec Arduino Un article: Alimentation par coupure de courant à l'aide d'Arduino