Semplice circuito Ohmmetro digitale Arduino

Semplice circuito Ohmmetro digitale Arduino

In questo post costruiremo un semplice circuito ohmmetro digitale utilizzando Arduino e display LCD 16x2. Esploreremo anche le altre possibili idee di circuiti usando lo stesso concetto.



Obiettivo del circuito

Il motto di questo articolo non è solo creare un ohmetro per misurare la resistenza che il tuo multimetro può fare meglio lo stesso.

L'obiettivo principale di questo progetto è quello di utilizzare il valore di resistenza letto da arduino per fare alcuni progetti utili, ad esempio l'allarme antincendio, dove la variazione del valore di resistenza del termistore può essere facilmente rilevata o il sistema di irrigazione automatico dove, se la resistenza del suolo va alto il microcontrollore può attivare la pompa dell'acqua. La possibilità di progetti dipende dalla tua immaginazione.





Vediamo prima come realizzare un ohm meter e poi passiamo ad altre idee di circuiti.

Come funziona

Circuito Ohmmetro Arduino



Il circuito è costituito da Arduino, puoi utilizzare la tua scheda Arduino preferita, un display LCD 16x2 per mostrare il valore della resistenza sconosciuto, un potenziometro per regolare il livello di contrasto del display LCD. Vengono utilizzati due resistori, uno dei quali è un valore di resistenza noto e l'altro è un valore di resistenza sconosciuto.

La resistenza è una funzione analogica, ma il valore visualizzato sull'LCD è una funzione digitale. Quindi, dobbiamo fare la conversione da analogico a digitale, fortunatamente Arduino ha un convertitore da analogico a digitale a 10 bit integrato.

L'ADC a 10 bit può differenziare 1024 livelli di tensione discreti, 5 volt vengono applicati a 2 resistori e il campione di tensione viene prelevato tra i resistori.

Utilizzando alcuni calcoli matematici, la caduta di tensione sul nodo e il valore di resistenza noto possono essere interpretati per trovare il valore di resistenza sconosciuto.

Le equazioni matematiche sono scritte nel programma, quindi non è necessario eseguire alcun calcolo manuale, possiamo leggere il valore direttamente dal display LCD.

Prototipo dell'autore:

Prototipo di ohmetro digitale Arduino

Programma per Ohm meter:

//-------------Program developed by R.Girish--------//
#include
LiquidCrystal lcd(12,11,5,4,3,2)
int analogPin=0
int x=0
float Vout=0
float R=10000 //Known Resistor value in Ohm
float resistor=0
float buffer=0
void setup()
{
lcd.begin(16,2)
lcd.setCursor(0,0)
lcd.print('----OHM METER---')
}
void loop()
{
x=analogRead(analogPin)
buffer=x*5
Vout=(buffer)/1024.0
buffer=(5/Vout)-1
resistor=R*buffer
lcd.setCursor(0,1)
lcd.print('R = ')
lcd.print(resistor)
lcd.print(' Ohm')
delay(3000)
}
//-------------Program developed by R.Girish--------//

NOTA: float R = 10000 // Valore del resistore noto in Ohm

È possibile modificare il valore noto del resistore nel circuito, ma in tal caso modificare anche il valore nel programma.

Come un multimetro convenzionale, anche questo circuito ohmmetro digitale Arduino ha alcune gamme per misurare la resistenza. Se provi a misurare un resistore di basso valore in un intervallo di mega ohm nel tuo multimetro, sicuramente otterrai valori di errore.

Allo stesso modo, vale anche per questo ohmmetro.

Se si desidera misurare la resistenza da 1K a 50K ohm, sarà sufficiente un resistore noto da 10K ohm, ma se si misura un intervallo di Mega ohm o un intervallo di pochi ohm, si otterranno letture inutili. Quindi è necessario modificare il valore del resistore noto in un intervallo appropriato.

Nella prossima sezione di questo articolo, studieremo il circuito del display LCD per l'ohmmetro e vedremo come leggere il valore del sensore (resistenza sconosciuta) nel monitor seriale.

Indicheremo anche il valore di soglia nel programma, una volta superata la soglia predeterminata, Arduino attiverà il relè.

Schema elettrico:

Codice del programma:

//-------------Program developed by R.Girish--------//
float th=7800 // Set resistance threshold in Ohms
int analogPin=0
int x=0
float Vout=0
float R=10000 //Known value Resistor in Ohm
float resistor=0
float buffer=0
int op=7
void setup()
{
Serial.begin(9600)
pinMode(op,OUTPUT)
digitalWrite(op,LOW)
}
void loop()
{
x=analogRead(analogPin)
buffer=x*5
Vout=(buffer)/1024.0
buffer=(5/Vout)-1
resistor=R*buffer
Serial.print('R = ')
Serial.print(resistor)
Serial.println(' Ohm')
if(th>resistor) // if resistance cross below threshold value, output is on, if you want opposite result use '<' //
{
digitalWrite(op,HIGH)
Serial.println('Output is ON')
delay(3000)
}
else
{
digitalWrite(op,LOW)
Serial.println('Output is OFF')
delay(3000)
}
}
//-------------Program developed by R.Girish--------//

NOTA:

• float th = 7800 // Imposta la soglia di resistenza in Ohm
Sostituisci 7800 ohm con il tuo valore.
• float R = 10000 // Resistore di valore noto in Ohm
Sostituisci 10000 ohm con il tuo valore di resistenza noto.
• if (th> resistore)

Questa riga nel programma indica che, se la resistenza del sensore scende al di sotto del valore di soglia, l'uscita si attiva e viceversa.

Se si desidera attivare il relè quando la lettura del sensore supera la soglia e viceversa, è sufficiente sostituire 'if (thresistor)'

Misurando direttamente la resistenza del sensore (LDR o termistore o altro) e impostando una soglia, possiamo acquisire una grande precisione di controllo su relè, LED, motore e altre periferiche.

È meglio dei comparatori, dove impostiamo una tensione di riferimento e impostiamo la soglia ruotando ciecamente un resistore variabile per realizzare progetti simili.




Precedente: Circuito del controller del livello di stoccaggio del materiale Avanti: Circuito contagiri a 10 LED