Prosty obwód cyfrowego omomierza Arduino

Wypróbuj Nasz Instrument Do Eliminowania Problemów





W tym poście zamierzamy zbudować prosty obwód cyfrowy omomierza wykorzystujący Arduino i wyświetlacz LCD 16x2. Będziemy również badać inne możliwe pomysły na obwody, używając tej samej koncepcji.

Cel obwodu

Mottem tego artykułu jest nie tylko zrobienie omomierza do pomiaru rezystancji, którą Twój multimetr może lepiej zrobić to samo.



Głównym celem tego projektu jest wykorzystanie wartości rezystancji odczytanej przez arduino do wykonania kilku przydatnych projektów, na przykład alarmu pożarowego, w którym można łatwo wykryć zmianę wartości rezystancji termistora lub automatycznego systemu nawadniania, w którym, jeśli opór gleby idzie wysoko, mikrokontroler może uruchomić pompę wodną. Możliwość realizacji projektów zależy od Twojej wyobraźni.

Zobaczmy, jak najpierw zrobić omomierz, a następnie przejdźmy do innych pomysłów na obwód.



Jak to działa

Obwód omomierza Arduino

Obwód składa się z Arduino, możesz użyć swojej ulubionej płytki Arduino, wyświetlacza LCD 16x2 do pokazania nieznanej wartości rezystora, potencjometru do regulacji poziomu kontrastu wyświetlacza LCD. Stosowane są dwa rezystory, z których jeden to znana wartość rezystora, a drugi to nieznana wartość rezystora.

Rezystancja jest funkcją analogową, ale wartość wyświetlana na wyświetlaczu LCD jest funkcją cyfrową. Musimy więc przeprowadzić konwersję sygnału analogowego na cyfrowy, na szczęście Arduino ma wbudowany 10-bitowy przetwornik analogowo-cyfrowy.

10-bitowy przetwornik ADC może rozróżniać 1024 dyskretne poziomy napięcia, 5 woltów jest przykładanych do 2 rezystorów, a próbka napięcia jest pobierana między rezystorami.

Korzystając z pewnych obliczeń matematycznych, można zinterpretować spadek napięcia w węźle i znaną wartość rezystancji, aby znaleźć nieznaną wartość rezystancji.

Równania matematyczne są zapisywane w programie, więc nie ma potrzeby wykonywania ręcznych obliczeń, możemy odczytać wartość bezpośrednią z wyświetlacza LCD.

Prototyp autora:

Prototyp omomierza cyfrowego Arduino

Program dla omomierza:

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

UWAGA: float R = 10000 // Znana wartość rezystora w omach

Możesz zmienić znaną wartość rezystora w obwodzie, ale jeśli to zrobisz, zmień również wartość w programie.

Podobnie jak konwencjonalny multimetr, ten cyfrowy omomierz Arduino również ma pewne zakresy do pomiaru rezystancji. Jeśli spróbujesz zmierzyć rezystor o niskiej wartości w zakresie mega omów w swoim multimetrze, z pewnością otrzymasz wartości błędów.

Podobnie jest z tym omomierzem.

Jeśli chcesz zmierzyć rezystancję od 1 K do 50 K ohm, wystarczy znany rezystor 10 K ohm, ale jeśli zmierzysz zakres Mega omów lub zakres kilku omów, otrzymasz trochę śmieci. Konieczna jest więc zmiana wartości znanego rezystora na odpowiedni zakres.

W następnej części tego artykułu będziemy badać obwód wyświetlacza LCD omomierza i zobaczymy, jak odczytać wartość czujnika (nieznaną rezystancję) na monitorze szeregowym.

Wartość progową podamy również w programie, po przekroczeniu ustalonego progu Arduino uruchomi przekaźnik.

Schemat obwodu:

Kod programu:

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

UWAGA:

• float th = 7800 // Ustaw próg rezystancji w omach
Zastąp 7800 omów swoją wartością.
• float R = 10000 // Znana wartość Rezystor w omach
Zastąp wartość 10000 omów znaną wartością rezystora.
• jeśli (th> rezystor)

Ten wiersz programu stwierdza, że ​​jeśli rezystancja czujnika spadnie poniżej wartości progowej, wyjście włącza się i odwrotnie.

Jeśli chcesz włączyć przekaźnik, gdy odczyt czujnika przekroczy próg i odwrotnie, po prostu zastąp „if (thresistor)”

Mierząc bezpośrednio rezystancję czujnika (LDR lub termistor lub cokolwiek innego) i ustawiając próg, możemy uzyskać dużą dokładność sterowania przekaźnikiem, diodami LED, silnikiem i innymi urządzeniami peryferyjnymi.

Jest to lepsze niż komparatory, w których ustawiamy napięcie odniesienia i ustawiamy próg, obracając na ślepo rezystor zmienny, aby realizować podobne projekty.




Poprzedni: Obwód kontrolera poziomu magazynowania materiału Dalej: Obwód obrotomierza 10 LED