Jednoduchý obvod digitálneho ohmmetra Arduino

Vyskúšajte Náš Nástroj Na Odstránenie Problémov





V tomto príspevku zostrojíme jednoduchý obvod digitálneho ohmmetra pomocou Arduina a 16x2 LCD displeja. Budeme tiež skúmať ďalšie možné nápady na okruhy pomocou rovnakého konceptu.

Cieľ okruhu

Heslom tohto článku nie je iba výroba ohmmetra na meranie odporu, ktorý váš multimetr dokáže urobiť lepšie.



Hlavným cieľom tohto projektu je použiť hodnotu odporu načítanú arduinom na vykonanie niektorých užitočných projektov, napríklad požiarneho poplachu, kde je možné ľahko zistiť zmenu hodnoty odporu termistora, alebo automatického zavlažovacieho systému, kde, ak je odpor pôdy ide vysoko, mikrokontrolér môže spustiť vodné čerpadlo. Možnosť projektov je na vašej fantázii.

Pozrime sa, ako najskôr vyrobiť ohmmeter a potom prejdeme k ďalším obvodovým nápadom.



Ako to funguje

Obvod ohmmetra Arduino

Obvod sa skladá z Arduina, ktoré môžete použiť na svojej obľúbenej doske Arduino, 16x2 LCD displeja na predvedenie neznámej hodnoty odporu, potenciometra na nastavenie úrovne kontrastu LCD displeja. Používajú sa dva odpory, z ktorých jeden je známa hodnota rezistora a druhý neznáma hodnota rezistora.

Odpor je analógová funkcia, ale hodnota zobrazená na LCD je digitálna. Takže musíme urobiť analógovo-digitálny prevod, našťastie má Arduino zabudovaný 10-bitový analógovo-digitálny prevodník.

10-bitový ADC dokáže rozlíšiť 1024 diskrétnych úrovní napätia, na 2 rezistory sa použije 5 voltov a vzorka napätia sa odoberá medzi rezistory.

Pomocou niektorých matematických výpočtov možno pokles napätia v uzle a známu hodnotu odporu interpretovať tak, aby sa zistila neznáma hodnota odporu.

Matematické rovnice sú napísané v programe, takže nie je potrebné robiť žiadny manuálny výpočet, z LCD displeja môžeme čítať priame hodnoty.

Autorský prototyp:

Prototyp digitálneho ohmmetra Arduino

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

POZNÁMKA: float R = 10 000 // Známa hodnota odporu v Ohm

Môžete zmeniť známu hodnotu rezistora v obvode, ale ak tak urobíte, zmeňte hodnotu tiež v programe.

Rovnako ako bežný multimetr, aj tento obvod digitálneho ohmmetra Arduino má určité rozsahy na meranie odporu. Ak sa pokúsite vo svojom multimetri zmerať odpor s nízkou hodnotou v rozsahu mega ohmov, určite získate chybové hodnoty.

Rovnako to platí aj pre tento ohmmeter.

Ak chcete merať odpor od 1K do 50K ohmov, bude stačiť známy odpor 10K ohmov, ale ak zmeriate rozsah Mega ohmov alebo niekoľko ohmov, dostanete nejaké hodnoty odpadu. Je preto potrebné zmeniť hodnotu známeho rezistora na vhodný rozsah.

V ďalšej časti tohto článku sa chystáme študovať obvod LCD displeja pre ohmmeter a uvidíme, ako načítať hodnotu senzora (neznámy odpor) na sériovom monitore.

V programe tiež uvedieme prahovú hodnotu, akonáhle prekročí vopred stanovenú prahovú hodnotu, Arduino spustí relé.

Schéma zapojenia:

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í prah odporu v ohmoch
Nahraďte 7800 ohmov vašou hodnotou.
• float R = 10 000 // Známa hodnota Rezistor v ohmoch
Nahraďte 10 000 ohmov vašou známou hodnotou rezistora.
• if (th> rezistor)

Tento riadok v programe uvádza, že ak odpor snímača klesne pod prahovú hodnotu, výstup sa zapne a naopak.

Ak chcete relé zapnúť, keď čítanie senzora prekročí prahovú hodnotu a naopak, stačí vymeniť „if (thresistor)“

Priamym meraním odporu snímača (LDR alebo termistora alebo čohokoľvek iného) a nastavením prahovej hodnoty môžeme získať veľkú presnosť riadenia nad relé, LED diódami, motorom a inými perifériami.

Je to lepšie ako v komparátoroch, kde nastavujeme referenčné napätie a nastavujeme prahovú hodnotu slepým otáčaním variabilného rezistora, aby sa dosiahli podobné projekty.




Dvojica: Obvod radiča úrovne skladovania materiálu Ďalej: Obvod 10 LED otáčkomeru