- Componenti richiesti
- Calcolo della frequenza e dell'induttanza
- Schema del circuito e spiegazione
- Spiegazione della programmazione
Tutti gli amanti del embedded hanno familiarità con il multimetro che è un ottimo strumento per misurare tensione, corrente, resistenza, ecc. Un multimetro può misurarli facilmente. Ma a volte abbiamo bisogno di misurare induttanza e capacità che non è possibile con un normale multimetro. Ci sono alcuni multimetri speciali che possono misurare induttanza e capacità ma sono costosi. Abbiamo già costruito misuratore di frequenza, misuratore di capacità e misuratore di resistenza utilizzando Arduino. Quindi oggi realizzeremo un misuratore di induttanza LC usando Arduino. In questo progetto, mostreremo i valori di induttanza e capacità insieme alla frequenza sul display LCD 16x2. Nel circuito è presente un pulsante per passare dalla visualizzazione della capacità a quella dell'induttanza.
Componenti richiesti
- Arduino Uno
- 741 opamp IC
- Batteria 3v
- Resistenza da 100 ohm
- Condensatori
- Induttori
- Diodo 1n4007
- Resistenza da 10k
- Pentola da 10k
- Alimentazione elettrica
- Premi il bottone
- Breadboard o PCB
- Cavi di collegamento
Calcolo della frequenza e dell'induttanza
In questo progetto misureremo induttanza e capacità utilizzando un circuito LC in parallelo. Questo circuito è come un anello o una campana che inizia a risuonare a una certa frequenza. Ogni volta che applichiamo un impulso, questo circuito LC inizierà a risuonare e questa frequenza di risonanza è in forma analogica (onda sinusoidale), quindi dobbiamo convertirla in onda di scudiero. Per fare ciò, applichiamo questa frequenza di risonanza analogica all'opamp (741 nel nostro caso) che la convertirà in onda squire (frequenza) al 50% del ciclo di lavoro. Ora misuriamo la frequenza usando Arduino e usando qualche calcolo matematico possiamo trovare l'induttanza o la capacità. Abbiamo utilizzato la formula di risposta in frequenza del circuito LC fornita.
f = 1 / (2 * tempo)
dove time è l'output della funzione pulseIn ()
ora abbiamo la frequenza del circuito LC:
f = 1/2 * Pi * radice quadrata di (LC)
possiamo risolverlo per ottenere l'induttanza:
f 2 = 1 / (4Pi 2 LC) L = 1 / (4Pi 2 f 2 C) L = 1 / (4 * Pi * Pi * f * f * C)
Come abbiamo già detto, la nostra onda è sinusoidale quindi ha lo stesso periodo di tempo sia in ampiezza positiva che negativa. Significa che il comparatore lo convertirà in onda quadra con un ciclo di lavoro del 50%. In modo che possiamo misurarlo utilizzando la funzione pulseIn () di Arduino. Questa funzione ci darà un periodo di tempo che può essere facilmente convertito in una frequenza invertendo il periodo di tempo. Poiché la funzione pulseIn misura solo un impulso, ora per ottenere la frequenza corretta dobbiamo moltiplicarlo per 2. Ora abbiamo una frequenza che può essere convertita in induttanza usando la formula sopra.
Nota: durante la misurazione dell'induttanza (L1), il valore del condensatore (C1) dovrebbe essere 0,1uF e durante la misurazione della capacità (C1), il valore dell'induttore (L1) dovrebbe essere 10mH.
Schema del circuito e spiegazione
In questo diagramma del circuito LC Meter, abbiamo utilizzato Arduino per controllare l'operazione del progetto. In questo abbiamo utilizzato un circuito LC. Questo circuito LC è costituito da un induttore e un condensatore. Per convertire la frequenza di risonanza sinusoidale in digitale o onda quadra abbiamo utilizzato l'amplificatore operazionale 741. Qui abbiamo bisogno di applicare un'alimentazione negativa all'amplificatore operazionale per ottenere una frequenza di uscita precisa. Quindi abbiamo usato una batteria 3v collegata in polarità inversa, significa che il pin negativo 741 è collegato al terminale negativo della batteria e il pin positivo della batteria è collegato alla massa del circuito rimanente. Per ulteriori chiarimenti vedere lo schema del circuito di seguito.
Qui abbiamo un pulsante per cambiare la modalità di funzionamento se stiamo misurando l'induttanza o la capacità. Un LCD 16x2 viene utilizzato per mostrare l'induttanza o la capacità con la frequenza del circuito LC. Un potenziometro da 10k viene utilizzato per controllare la luminosità dell'LCD. Il circuito è alimentato con l'aiuto dell'alimentazione Arduino 5v e possiamo alimentare Arduino da 5v utilizzando l'adattatore USB o 12v.
Spiegazione della programmazione
La parte di programmazione di questo progetto LC Meter è molto semplice. Il codice Arduino completo è fornito alla fine di questo articolo.
Per prima cosa dobbiamo includere la libreria per LCD e dichiarare alcuni pin e macro.
#includere
Dopo di ciò, nella funzione di configurazione abbiamo inizializzato la comunicazione LCD e seriale per mostrare i valori misurati sul monitor LCD e seriale.
void setup () { #ifdef serial Serial.begin (9600); #endif lcd.begin (16, 2); pinMode (freqIn, INPUT); pinMode (carica, USCITA); pinMode (mode, INPUT_PULLUP); lcd.print ("LC Meter Using"); lcd.setCursor (0, 1); lcd.print ("Arduino"); ritardo (2000); lcd.clear (); lcd.print ("Circuit Digest"); ritardo (2000); }
Quindi, nella funzione loop , applicare un impulso di un periodo di tempo fisso al circuito LC che caricherà il circuito LC. Dopo aver rimosso il circuito LC a impulsi inizia a risuonare. Quindi leggiamo la sua conversione ad onda quadra, proveniente dall'amplificatore operazionale , utilizzando la funzione pulseIn () e la convertiamo moltiplicando per 2. Qui abbiamo preso alcuni campioni anche di questo. Ecco come viene calcolata la frequenza:
void loop () { for (int i = 0; i
Dopo aver ottenuto il valore della frequenza, li abbiamo convertiti in induttanza utilizzando un dato pezzo di codice
capacità = 0,1E-6; induttanza = (1. / (capacità * frequenza * frequenza * 4. * 3.14159 * 3.14159)) * 1.E6; #ifdef serial Serial.print ("Ind:"); if (induttanza> = 1000) { Serial.print (induttanza / 1000); Serial.println ("mH"); } altro { Serial.print (inductance); Serial.println ("uH"); } #endif lcd.setCursor (0, 1); lcd.print ("Ind:"); if (induttanza> = 1000) { lcd.print (induttanza / 1000); lcd.print ("mH"); } else { lcd.print (inductance); lcd.print ("uH"); } }
E usando il codice dato abbiamo calcolato la capacità.
if (Bit.flag) { induttanza = 1.E-3; capacità = ((1. / (induttanza * frequenza * frequenza * 4. * 3.14159 * 3.14159)) * 1.E9); if ((int) capacitance <0) capacitance = 0; #ifdef serial Serial.print ("Capacità:"); Serial.print (capacità, 6); Serial.println ("uF"); #endif lcd.setCursor (0, 1); lcd.print ("Cap:"); if (capacitance> 47) { lcd.print ((capacitance / 1000)); lcd.print ("uF"); } altro { lcd.print (capacitance); lcd.print ("nF"); } }
Quindi è così che abbiamo calcolato frequenza, capacità e induttanza usando Arduino e lo abbiamo visualizzato su LCD 16x2.