Jednoduchý obvod digitálního ohmmetru Arduino

Vyzkoušejte Náš Nástroj Pro Odstranění Problémů





V tomto příspěvku postavíme jednoduchý obvod digitálního ohmmetru pomocí Arduina a 16x2 LCD displeje. Budeme také zkoumat další možné nápady obvodů pomocí stejného konceptu.

Cíl okruhu

Mottem tohoto článku není jen výroba ohmmetru k měření odporu, který může váš multimetr lépe udělat totéž.



Hlavním cílem tohoto projektu je použít hodnotu odporu čtenou arduino k provedení některých užitečných projektů, například požární poplach, kde lze snadno detekovat změnu hodnoty odporu termistoru nebo automatický zavlažovací systém, kde, pokud je odpor půdy jde vysoko, mikrokontrolér může spustit vodní čerpadlo. Možnost projektů je na vaší fantazii.

Podívejme se, jak nejprve vyrobit ohmmetr a poté přejdeme k dalším obvodovým nápadům.



Jak to funguje

Obvod Arduino ohmmetru

Obvod se skládá z Arduina, můžete použít vaši oblíbenou desku Arduino, 16x2 LCD displeje k předvedení neznámé hodnoty odporu, potenciometru pro nastavení úrovně kontrastu LCD displeje. Používají se dva odpory, z nichž jeden je známá hodnota odporu a druhý neznámá hodnota odporu.

Odpor je analogová funkce, ale hodnota zobrazená na LCD je digitální funkce. Musíme tedy provést analogově-digitální převod, naštěstí má Arduino zabudovaný 10bitový analogově-digitální převodník.

10bitový ADC může rozlišovat 1024 diskrétních úrovní napětí, na 2 odpory se aplikuje 5 voltů a vzorek napětí se odebírá mezi rezistory.

Pomocí některých matematických výpočtů lze pokles napětí v uzlu a známou hodnotu odporu interpretovat tak, aby se zjistila neznámá hodnota odporu.

Matematické rovnice jsou psány v programu, takže není třeba provádět ruční výpočet, můžeme načíst přímou hodnotu z LCD displeje.

Autorův prototyp:

Prototyp digitálního ohmmetru Arduino

Program pro měřič Ohm:

//-------------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--------//

POZNÁMKA: float R = 10 000 // Známá hodnota rezistoru v ohmech

Můžete změnit známou hodnotu rezistoru v obvodu, ale pokud tak učiníte, změňte hodnotu také v programu.

Stejně jako konvenční multimetr má i tento obvod digitálního ohmmetru Arduino určité rozsahy pro měření odporu. Pokud se pokusíte na multimetru měřit odpor s nízkou hodnotou v rozsahu mega ohmů, určitě získáte chybové hodnoty.

Stejně tak to platí i pro tento ohmmetr.

Pokud chcete měřit odpor od 1K do 50K ohmů, bude stačit známý rezistor 10K ohmů, ale pokud změříte rozsah Mega ohmů nebo několik ohmů, dostanete nějaké hodnoty odpadků. Je tedy nutné změnit hodnotu známého rezistoru na vhodný rozsah.

V další části tohoto článku budeme studovat obvod displeje LCD pro ohmmetr a uvidíme, jak načíst hodnotu senzoru (neznámý odpor) na sériovém monitoru.

Rovněž uvedeme prahovou hodnotu v programu, jakmile překročí předem stanovenou prahovou hodnotu, Arduino spustí relé.

Kruhový diagram:

Programový kód:

//-------------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--------//

POZNÁMKA:

• float th = 7800 // Nastaví prahovou hodnotu odporu v Ohmech
Nahraďte 7800 ohmů svou hodnotou.
• float R = 10 000 // Známá hodnota Rezistor v ohmech
Nahraďte 10 000 ohmů známou hodnotou rezistoru.
• if (th> rezistor)

Tento řádek v programu uvádí, že pokud odpor snímače poklesne pod prahovou hodnotu, výstup se zapne a naopak.

Pokud chcete relé zapnout, když čtení senzoru překročí prahovou hodnotu a naopak, stačí vyměnit „if (thresistor)“

Přímým měřením odporu senzoru (LDR nebo termistoru nebo čehokoli jiného) a nastavením prahové hodnoty můžeme získat velkou přesnost ovládání přes relé, LED, motor a další periferie.

Je to lepší než u komparátorů, kde nastavujeme referenční napětí a nastavujeme prahovou hodnotu otáčením variabilního odporu naslepo, abychom dosáhli podobného druhu projektů.




Předchozí: Obvod regulátoru úrovně skladování materiálu Další: 10 LED obvod tachometru