Paprasta „Arduino“ skaitmeninio omometro grandinė

Išbandykite Mūsų Instrumentą, Kaip Pašalinti Problemas





Šiame įraše mes sukursime paprastą skaitmeninio omometro grandinę naudodami „Arduino“ ir 16x2 LCD ekraną. Mes taip pat išnagrinėsime kitas galimas grandinės idėjas naudodami tą pačią koncepciją.

Grandinės tikslas

Šio straipsnio šūkis yra ne tik pagaminti omo matuoklį, kad būtų galima išmatuoti pasipriešinimą, kurį jūsų multimetras gali padaryti geriau.



Pagrindinis šio projekto tikslas yra panaudoti „arduino“ perskaitytą atsparumo vertę tam tikriems naudingiems projektams atlikti, pavyzdžiui, priešgaisrinė signalizacija, kai galima lengvai nustatyti termistoriaus atsparumo vertės pokytį, arba automatinė drėkinimo sistema, jei, jei dirvožemio atsparumas mikrokontroleris gali suveikti vandens siurbliu. Projektų galimybė priklauso nuo jūsų fantazijos.

Pažiūrėkime, kaip pirmiausia padaryti omo skaitiklį, o tada pereisime prie kitų grandinių idėjų.



Kaip tai veikia

„Arduino Ohmmeter“ grandinė

Grandinę sudaro „Arduino“, galite naudoti savo mėgstamą „Arduino“ plokštę, 16x2 LCD ekraną, kad parodytumėte nežinomą rezistoriaus vertę, potenciometrą, kad sureguliuotumėte LCD ekrano kontrasto lygį. Naudojami du rezistoriai, iš kurių viena yra žinoma rezistoriaus vertė, kita - nežinoma rezistoriaus vertė.

Varža yra analogiška funkcija, tačiau LCD ekrane rodoma vertė yra skaitmeninė funkcija. Taigi, turime atlikti analoginį skaitmeninį keitimą, laimei, „Arduino“ turi įmontuotą 10 bitų analoginį į skaitmeninį keitiklį.

10 bitų ADC gali diferencijuoti 1024 diskretiškus įtampos lygius, 5 voltai įjungiami į 2 rezistorius ir įtampos pavyzdys imamas tarp rezistorių.

Naudojant kai kuriuos matematinius skaičiavimus, galima interpretuoti įtampos kritimą mazge ir žinomą varžos vertę, kad būtų nustatyta nežinoma pasipriešinimo vertė.

Matematinės lygtys parašytos programoje, todėl nereikia atlikti rankinio skaičiavimo, mes galime nuskaityti tiesioginę vertę iš LCD ekrano.

Autoriaus prototipas:

„Arduino“ skaitmeninio omometro prototipas

Ohmo matuoklio programa:

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

PASTABA: plūdė R = 10000 // Žinoma rezistoriaus vertė omais

Galite pakeisti žinomą rezistoriaus vertę grandinėje, tačiau jei taip padarysite, pakeiskite vertę ir programoje.

Kaip ir įprastas multimetras, ši „Arduino“ skaitmeninio omometro grandinė taip pat turi tam tikrus diapazonus, kad būtų galima matuoti atsparumą. Jei bandysite išmatuoti mažos vertės rezistorių mega omų diapazone savo multimetre, tikrai gausite klaidų vertes.

Taip pat tai galioja ir šiam omometrui.

Jei norite išmatuoti atsparumą nuo 1K iki 50K omų, pakaks žinomo 10K omų rezistoriaus, tačiau jei išmatuosite „Mega“ omų diapazoną arba keletą omų diapazoną, gausite šiukšlių rodmenis. Taigi būtina pakeisti žinomo rezistoriaus vertę į tinkamą diapazoną.

Kitame šio straipsnio skyriuje mes tirsime omometro skystųjų kristalų ekrano grandinę ir pamatysime, kaip nuosekliajame monitoriuje nuskaityti jutiklio vertę (nežinoma varža).

Mes taip pat nurodysime slenksčio vertę programoje, kai ji peržengs iš anksto nustatytą ribą, „Arduino“ suveiks relę.

Grandinės schema:

Programos kodas:

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

PASTABA:

• plūdės th = 7800 // Nustatykite pasipriešinimo slenkstį omais
7800 omų pakeiskite savo verte.
• plūdė R = 10000 // Žinomos vertės rezistorius omais
10000 omų pakeiskite savo žinoma rezistoriaus verte.
• jei (th> rezistorius)

Šioje programos eilutėje teigiama, kad jei jutiklio varža neviršija ribinės vertės, išėjimas įjungiamas ir atvirkščiai.

Jei norite įjungti relę, kai jutiklio rodmuo viršija slenkstį, ir atvirkščiai, tiesiog pakeiskite „if (thresistor)“

Tiesiogiai matuodami jutiklio (LDR ar termistoriaus ar dar ką nors) varžą ir nustatydami slenkstį, galime įgyti didelį relės, šviesos diodų, variklio ir kitų išorinių įrenginių valdymo tikslumą.

Tai geriau nei palyginamieji, kur mes nustatome atskaitos įtampą ir nustatome ribą, aklai sukdami kintamą rezistorių, kad atliktume panašaus pobūdžio projektus.




Pora: Medžiagos laikymo lygio valdiklio grandinė Kitas: 10 LED tachometro grandinės