Circuit de mesure de capacité numérique utilisant Arduino

Essayez Notre Instrument Pour Éliminer Les Problèmes





Dans cet article, nous allons construire un circuit de mesure de capacité numérique utilisant Arduino qui peut mesurer la capacité de condensateurs allant de 1 microfarad à 4000 microfarad avec une précision raisonnable.



introduction

Nous mesurons la valeur des condensateurs lorsque les valeurs écrites sur le corps du condensateur ne sont pas lisibles, ou pour trouver la valeur du condensateur vieillissant dans notre circuit qui doit être remplacé tôt ou tard et il y a plusieurs autres raisons de mesurer la capacité.

Pour trouver la capacité, nous pouvons facilement mesurer à l'aide d'un multimètre numérique, mais tous les multimètres n'ont pas une fonction de mesure de capacité et seuls les multimètres coûteux ont cette fonctionnalité.



Voici donc un circuit qui peut être construit et utilisé avec facilité.

Nous nous concentrons sur des condensateurs de plus grande valeur de 1 microfarad à 4000 microfarad qui sont susceptibles de perdre leur capacité en raison du vieillissement, en particulier les condensateurs électrolytiques, qui sont constitués d'électrolyte liquide.

Avant d'entrer dans les détails du circuit, voyons comment nous pouvons mesurer la capacité avec Arduino.

La plupart des capacimètres Arduino reposent sur la propriété de constante de temps RC. Alors, quelle est la constante de temps RC?

La constante de temps du circuit RC peut être définie comme le temps nécessaire au condensateur pour atteindre 63,2% de la charge complète. Zéro volt correspond à une charge de 0% et 100% correspond à la pleine tension du condensateur.

Le produit de la valeur de la résistance en ohm et de la valeur du condensateur en farad donne la constante de temps.

T = R x C

T est la constante de temps

En réorganisant l'équation ci-dessus, nous obtenons:

C = T / R

C est la valeur de capacité inconnue.

T est la constante de temps du circuit RC qui est de 63,2% du condensateur de pleine charge.

R est une résistance connue.

L'Arduino peut détecter la tension via une broche analogique et la valeur de résistance connue peut être entrée manuellement dans le programme.

En appliquant l'équation C = T / R dans le programme, nous pouvons trouver la valeur de capacité inconnue.

À présent, vous auriez une idée de la façon dont nous pouvons trouver la valeur d'une capacité inconnue.

Dans cet article, j'ai proposé deux types de capacimètres, l'un avec écran LCD et l'autre utilisant un moniteur série.

Si vous êtes un utilisateur fréquent de ce capacimètre, il est préférable d'utiliser la conception de l'écran LCD et si vous n'êtes pas un utilisateur fréquent, optez pour la conception du moniteur série car cela vous permet d'économiser de l'argent sur l'écran LCD.

Passons maintenant au schéma de circuit.

Compteur de capacité basé sur un moniteur série:



Comme vous pouvez le voir, le circuit est très simple, il suffit de quelques résistances pour trouver la capacité inconnue.Le 1K ohm est la valeur de résistance connue et la résistance de 220 ohms utilisée pour décharger le condensateur pendant le processus de mesure. tension croissante et décroissante sur la broche A0 qui est connectée entre des résistances de 1K ohm et de 220 ohms.Veuillez faire attention à la polarité si vous utilisez des condensateurs polarisés tels que des électrolytiques. Programme:
//-----------------Program developed by R.Girish------------------//
const int analogPin = A0
const int chargePin = 7
const int dischargePin = 6
float resistorValue = 1000 // Value of known resistor in ohm
unsigned long startTime
unsigned long elapsedTime
float microFarads
void setup()
{
Serial.begin(9600)
pinMode(chargePin, OUTPUT)
digitalWrite(chargePin, LOW)
}
void loop()
{
digitalWrite(chargePin, HIGH)
startTime = millis()
while(analogRead(analogPin) <648){}
elapsedTime = millis() - startTime
microFarads = ((float)elapsedTime / resistorValue) * 1000
if (microFarads > 1)
{
Serial.print('Value = ')
Serial.print((long)microFarads)
Serial.println(' microFarads')
Serial.print('Elapsed Time = ')
Serial.print(elapsedTime)
Serial.println('mS')
Serial.println('--------------------------------')
}
else
{
Serial.println('Please connect Capacitor!')
delay(1000)
}
digitalWrite(chargePin, LOW)
pinMode(dischargePin, OUTPUT)
digitalWrite(dischargePin, LOW)
while(analogRead(analogPin) > 0) {}
pinMode(dischargePin, INPUT)
}
//-----------------Program developed by R.Girish------------------//

Téléchargez le code ci-dessus sur Arduino avec la configuration matérielle terminée, ne connectez pas initialement le condensateur. Ouvrez le moniteur série, il dit «Veuillez connecter le condensateur».

Connectez maintenant un condensateur, sa capacité sera affichée comme illustré ci-dessous.

Il montre également le temps nécessaire pour atteindre 63,2% de la tension de charge complète du condensateur, qui est indiqué comme temps écoulé.

Compteur de capacité numérique utilisant Arduino

Schéma de principe pour le capacimètre à base LCD:

Le schéma ci-dessus est la connexion entre l'écran LCD et Arduino. Le potentiomètre 10K est fourni pour régler le contraste de l'écran. Les autres connexions sont explicites.

Le circuit ci-dessus est exactement le même que la conception basée sur un moniteur série, il vous suffit de connecter un écran LCD.

Programme pour le capacimètre basé sur LCD:

//-----------------Program developed by R.Girish------------------//
#include
LiquidCrystal lcd(12,11,5,4,3,2)
const int analogPin = A0
const int chargePin = 7
const int dischargePin = 6
float resistorValue = 1000 // Value of known resistor in ohm
unsigned long startTime
unsigned long elapsedTime
float microFarads
void setup()
{
Serial.begin(9600)
lcd.begin(16,2)
pinMode(chargePin, OUTPUT)
digitalWrite(chargePin, LOW)
lcd.clear()
lcd.setCursor(0,0)
lcd.print(' CAPACITANCE')
lcd.setCursor(0,1)
lcd.print(' METER')
delay(1000)
}
void loop()
{
digitalWrite(chargePin, HIGH)
startTime = millis()
while(analogRead(analogPin) <648){}
elapsedTime = millis() - startTime
microFarads = ((float)elapsedTime / resistorValue) * 1000
if (microFarads > 1)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Value = ')
lcd.print((long)microFarads)
lcd.print(' uF')
lcd.setCursor(0,1)
lcd.print('Elapsed:')
lcd.print(elapsedTime)
lcd.print(' mS')
delay(100)
}
else
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Please connect')
lcd.setCursor(0,1)
lcd.print('capacitor !!!')
delay(500)
}
digitalWrite(chargePin, LOW)
pinMode(dischargePin, OUTPUT)
digitalWrite(dischargePin, LOW)
while(analogRead(analogPin) > 0) {}
pinMode(dischargePin, INPUT)
}
//-----------------Program developed by R.Girish------------------//

Une fois la configuration matérielle terminée, téléchargez le code ci-dessus. Au départ, ne connectez pas le condensateur. L'écran affiche «Veuillez connecter le condensateur !!!» maintenant vous connectez le condensateur. L'écran affichera la valeur du condensateur et le temps écoulé pour atteindre 63,2% du condensateur de pleine charge.

Prototype de l’auteur:




Une paire de: Circuit de tachymètre Arduino pour des lectures précises Un article: Comment contrôler le moteur servo à l'aide du joystick