Circuito misuratore di capacità digitale che utilizza Arduino

Prova Il Nostro Strumento Per Eliminare I Problemi





In questo post costruiremo un circuito misuratore di capacità digitale utilizzando Arduino in grado di misurare la capacità di condensatori che vanno da 1 microfarad a 4000 microfarad con ragionevole precisione.



introduzione

Misuriamo il valore dei condensatori quando i valori scritti sul corpo del condensatore non sono leggibili, o per trovare il valore del condensatore invecchiato nel nostro circuito che deve essere sostituito presto o tardi e ci sono molti altri motivi per misurare la capacità.

Per trovare la capacità possiamo facilmente misurare usando un multimetro digitale, ma non tutti i multimetri hanno la funzione di misura della capacità e solo i multimetri costosi hanno questa funzionalità.



Quindi ecco un circuito che può essere costruito e utilizzato con facilità.

Ci stiamo concentrando su condensatori con valore maggiore da 1 microfarad a 4000 microfarad che tendono a perdere la sua capacità a causa dell'invecchiamento, in particolare i condensatori elettrolitici, che sono costituiti da elettrolita liquido.

Prima di entrare nei dettagli del circuito, vediamo come possiamo misurare la capacità con Arduino.

La maggior parte dei misuratori di capacità Arduino si basa sulla proprietà della costante di tempo RC. Allora qual è la costante di tempo RC?

La costante di tempo del circuito RC può essere definita come il tempo impiegato dal condensatore per raggiungere il 63,2% della carica completa. Zero volt è lo 0% di carica e il 100% è la carica a piena tensione del condensatore.

Il prodotto del valore del resistore in ohm e del valore del condensatore in farad fornisce la costante di tempo.

T = R x C

T è la costante di tempo

Riorganizzando l'equazione di cui sopra otteniamo:

C = T / R

C è il valore di capacità sconosciuto.

T è la costante di tempo del circuito RC che è il 63,2% del condensatore di carica completa.

R è una resistenza nota.

L'Arduino può rilevare la tensione tramite pin analogico e il valore noto del resistore può essere inserito manualmente nel programma.

Applicando l'equazione C = T / R nel programma possiamo trovare il valore di capacità sconosciuto.

A questo punto avresti un'idea di come possiamo trovare il valore della capacità sconosciuta.

In questo post ho proposto due tipi di misuratori di capacità, uno con display LCD e un altro con monitor seriale.

Se sei un utente frequente di questo misuratore di capacità è meglio andare con il design del display LCD e se non sei un utente frequente è meglio andare con il design del monitor seriale perché ti fa risparmiare un po 'di soldi sul display LCD.

Ora passiamo allo schema del circuito.

Misuratore di capacità basato su monitor seriale:



Come puoi vedere il circuito è molto semplice, bastano un paio di resistori per trovare la capacità sconosciuta: 1K ohm è il valore noto del resistore e il resistore da 220 ohm utilizzato per scaricare il condensatore durante il processo di misurazione. tensione crescente e decrescente sul pin A0 che è collegato tra resistenze da 1K ohm e 220 ohm. Fare attenzione alla polarità se si utilizzano condensatori polarizzati come elettrolitici. Programma:
//-----------------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------------------//

Carica il codice sopra su Arduino con la configurazione hardware completata, inizialmente non collegare il condensatore. Aprire il monitor seriale che dice 'Please connect capacitor'.

Ora collega un condensatore, la sua capacità verrà visualizzata come illustrato di seguito.

Mostra anche il tempo necessario per raggiungere il 63,2% della tensione di carica completa del condensatore, che viene mostrato come tempo trascorso.

Misuratore di capacità digitale utilizzando Arduino

Schema del circuito per misuratore di capacità basato su LCD:

Lo schema sopra è la connessione tra il display LCD e Arduino. Il potenziometro 10K è previsto per la regolazione del contrasto del display. Il resto delle connessioni si spiega da sé.

Il circuito sopra è esattamente lo stesso del design basato sul monitor seriale, è sufficiente collegare il display LCD.

Programma per misuratore di capacità basato su 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------------------//

Dopo aver completato la configurazione hardware, caricare il codice sopra. Inizialmente non collegare il condensatore. Il display mostra 'Collegare il condensatore !!!' ora colleghi il condensatore. Il display mostrerà il valore del condensatore e il tempo impiegato per raggiungere il 63,2% del condensatore a piena carica.

Prototipo dell'autore:




Precedente: Circuito contagiri Arduino per letture precise Avanti: Come controllare il servomotore usando il joystick