Ebben a cikkben felépítünk néhány egyszerű Arduino hőmérsékletmérő áramkört, amelyek LED-ként is használhatók szobahőmérő áramkör .
Az áramkört úgy tervezték, hogy az olvasmányokat pontozott / oszlopos LED-ekben jelenítse meg. Ez a projekt olyan alkalmazásokhoz valósítható meg, ahol a környezeti hőmérséklet döntő szerepet játszik, vagy éppúgy építhető fel, mint egy újabb szórakoztató projekt otthona számára.
1) DTH11 használata hőmérséklet-érzékelőként
Az első hőmérsékletmérő projekt szíve és agya a DTH11 érzékelő, illetve az Arduino. Csak a hőmérsékleti adatokat fogjuk kinyerni az érzékelőből.
Az arduino néhány másodpercenként kikövetkezteti az adatokat és frissíti a megjelenített hőmérsékletet.
12 állásfoglalást fogunk meghozni hőmérséklet szenzor , más szóval, azt a hőmérsékleti tartományt vesszük figyelembe, ahol a környezeti hőmérséklet általában változik.
Ha további felbontást / LED-eket szeretne hozzáadni, akkor az arduino megára lesz szüksége az érzékelő teljes hőmérséklet-spektrumának kihasználásához módosított programmal.
A fenti illusztrációk felhasználhatók a beállítások legjobb keresése érdekében.
A felhasználónak csak meg kell adnia a szoba minimális hőmérsékleti tartományát. Durva érték lehet, amelyet később a teljes hardverbeállítás befejeztével megváltoztathatunk.
Ha a hőmérsékleti tartomány a felhasználó által megadott küszöbérték alá esik, egyetlen LED sem világít, és ha a hőmérséklet meghaladja a maximális tartományt (minimum + 11), akkor az összes LED világít.
Ha bármilyen érzékelő csatlakozási probléma merül fel, akkor az összes LED másodpercenként villog.
A dizájn:
Az Arduino LED hőmérsékletmérő áramkör vezetékezése nagyon egyszerű, a GPIO csapokhoz csatlakoztatott LED-ek 2 és 13 között vannak áramkorlátozó ellenállásokkal, a DHT11 érzékelő pedig analóg I / O csapokhoz van csatlakoztatva, amelyek úgy vannak programozva, hogy az érzékelő áramellátását biztosítsák valamint adatokat olvasni.
Így a LED hőmérő áramkörének beállítása befejeződött és készen áll a kód feltöltésére. Mindig ajánlott tesztelni az áramkört a kenyérlapon, mielőtt állandóvá tenné.
Tipp: Különböző színű LED-et használjon a különböző hőmérsékleti tartományok jelzésére. Használhat kék LED-et az alacsonyabb hőmérsékleti tartományhoz, zöldet vagy sárga-t a közepes hőmérséklet-tartományhoz, és piros LED-eket a magasabb hőmérséklethez. Ez vonzóbbá teszi.
A szerző prototípusa:
MEGJEGYZÉS: A következő program csak a DHT11 érzékelővel kompatibilis.
A folytatás előtt feltétlenül töltse le a könyvtárfájlt az alábbi linkről:
https://arduino-info.wikispaces.com/file/detail/DHT-lib.zip
Program kód:
//-------Program developed by R.Girish------//
#include
int a=2
int b=3
int c=4
int d=5
int e=6
int f=7
int g=8
int h=9
int i=10
int j=11
int k=12
int l=13
int p=A0
int data=A1
int n=A2
int ack
dht DHT
int temp=25 // set temperature range.
void setup()
{
Serial.begin(9600) // may be removed after testing.
pinMode(a,OUTPUT)
pinMode(b,OUTPUT)
pinMode(c,OUTPUT)
pinMode(d,OUTPUT)
pinMode(e,OUTPUT)
pinMode(f,OUTPUT)
pinMode(g,OUTPUT)
pinMode(h,OUTPUT)
pinMode(i,OUTPUT)
pinMode(j,OUTPUT)
pinMode(k,OUTPUT)
pinMode(l,OUTPUT)
pinMode(p,OUTPUT)
pinMode(n,OUTPUT)
digitalWrite(p,HIGH)
digitalWrite(n,LOW)
}
void loop()
{
// may be removed after testing.
Serial.print('Temperature(°C) = ')
Serial.println(DHT.temperature)
Serial.print('Humidity(%) = ')
Serial.println(DHT.humidity)
Serial.print('
')
//till here
ack=0
int chk = DHT.read11(data)
switch (chk)
{
case DHTLIB_ERROR_CONNECT:
ack=1
break
}
if (ack==0)
{
if(DHT.temperature>=temp)digitalWrite(a,HIGH)
if(DHT.temperature>=temp+1)digitalWrite(b,HIGH)
if(DHT.temperature>=temp+2)digitalWrite(c,HIGH)
if(DHT.temperature>=temp+3)digitalWrite(d,HIGH)
if(DHT.temperature>=temp+4)digitalWrite(e,HIGH)
if(DHT.temperature>=temp+5)digitalWrite(f,HIGH)
if(DHT.temperature>=temp+6)digitalWrite(g,HIGH)
if(DHT.temperature>=temp+7)digitalWrite(h,HIGH)
if(DHT.temperature>=temp+8)digitalWrite(i,HIGH)
if(DHT.temperature>=temp+9)digitalWrite(j,HIGH)
if(DHT.temperature>=temp+10)digitalWrite(k,HIGH)
if(DHT.temperature>=temp+11)digitalWrite(l,HIGH)
delay(2000)
goto refresh
}
if (ack==1)
{
// This may be removed after testing.
Serial.print('NO DATA')
Serial.print('
')
// till here
delay(500)
digitalWrite(a,1)
digitalWrite(b,1)
digitalWrite(c,1)
digitalWrite(d,1)
digitalWrite(e,1)
digitalWrite(f,1)
digitalWrite(g,1)
digitalWrite(h,1)
digitalWrite(i,1)
digitalWrite(j,1)
digitalWrite(k,1)
digitalWrite(l,1)
refresh:
delay(500)
digitalWrite(a,0)
digitalWrite(b,0)
digitalWrite(c,0)
digitalWrite(d,0)
digitalWrite(e,0)
digitalWrite(f,0)
digitalWrite(g,0)
digitalWrite(h,0)
digitalWrite(i,0)
digitalWrite(j,0)
digitalWrite(k,0)
digitalWrite(l,0)
}
}
//-------Program developed by R.Girish------//
1. MEGJEGYZÉS:
A programban:
int temp = 25 // beállított hőmérséklet-tartomány.
Cserélje a „25” értéket a múltban tapasztalt minimális környezeti hőmérsékletre más hőmérőkkel, vagy jósoljon durva értéket.
2. MEGJEGYZÉS: Kérjük, ellenőrizze a soros monitor hőmérsékleti értékeit és a LED beállításokat.
2) Arduino hőmérsékletmérő a DS18B20 segítségével
Ebben a második kivitelben megtanulunk egy másik egyszerű, mégis rendkívül pontos Arduino hőmérséklet-érzékelőt indikátor áramkörrel, egy fejlett digitális LCD kijelző leolvasó modul segítségével.
Ebben a konfigurációban valójában nincs túl sok megmagyarázható tényező, mivel minden modul alapú, és egyszerűen megköveteli a felkínálást vagy a csatlakoztatott férfi női aljzatokon és csatlakozókon keresztül történő csatlakoztatást.
Hardver szükséges
Négy alapanyag szükséges ennek a pontos Arduino LCD hőmérsékletmérő áramkörnek a felépítéséhez, amely tanulmányozható az alábbiak szerint:
1) Egy Arduino UNO Igazgatóság
2) A Kompatibilis LCD modul
3) Egy analóg hőmérséklet-érzékelő chip, például egy DS18B20 vagy a sajátunk LM35 IC .
DS18B20 digitális hőmérő műszaki adatai
A DS18B20 digitális hőmérő 9 és 12 bites Celsius-hőmérsékleti előírásokat biztosít és riasztási funkcióval rendelkezik, amely nem illékony fogyasztói programozható magasabb és alacsonyabb aktiválási elemekkel rendelkezik. A DS18B20 egyetlen vezetékes buszon keresztül kommunikál, amely leírása szerint egyetlen adatvonalat (és földet) igényel a fő mikroprocesszorhoz való csatlakozáshoz.
Ez magában foglalja a -55 ° C és + 125 ° C közötti üzemi hőmérséklet-tartományt, amely a ± 10 ° C és + 85 ° C közötti választékon pontosan ± 0,5 ° C.
Ezzel párhuzamosan a DS18B20 lehetővé teszi, hogy áramot közvetlenül az adatvezetékről szerezzen („parazita erő”), eldöntve egy
rel = ' nincs követés külső áramellátás.
Mindegyik DS18B20 megkülönböztető 64 bites soros kódot tartalmaz, amely lehetővé teszi, hogy több DS18B20 ugyanazon az 1 vezetékes buszon működjön. Következésképpen felhasználóbarát és bonyolult egyetlen mikroprocesszor a széles körben elindított DS18B20-okhoz kapcsolódó terhelések kezeléséhez.
Azok a programok, amelyek könnyen kihasználhatják ezt az attribútumot, magukban foglalják a HVAC ökológiai konfigurációit, a hőmérséklet-felügyeleti eszközöket a létesítményekben, készülékeket vagy eszközöket, valamint a folyamatfelügyeleti és -szabályozó rendszereket.
Pinout részletek
4) 9 V-os, 1 amperes váltakozó áramú adapter egység
Most csak arról van szó, hogy egymásba tolják a csatlakozókat, végezzen egy kis beállítást az LCD nyomógombjain keresztül, és teljes értékű, pontos digitális LCD-hőmérsékletmérőt kap az Ön rendelkezésére.
Mérheti a szobahőmérsékletet ezzel a beállítással, vagy megfelelően rögzítheti az érzékelőt bármely olyan hőkibocsátó eszközzel, amelyet ellenőrizni kell, például autómotorral, tojásinkubátor-kamrával, gejzírrel, vagy egyszerűen ellenőrizni kell az erősítő készülékek hőelvezetését.
Az Arduino hőmérsékletmérő bekötése
A következő ábra azt a csatlakozást mutatja, ahol az Arduino tábla van alul, az LCD-monitor fölé van dugva, és a hőmérséklet-érzékelő az LCD-táblához van csatlakoztatva.
De a fenti beállítások végrehajtása előtt be kell programoznia az Arduino táblát a következő mintakóddal.
Udvariasság : dfrobot.com/wiki/index.php?title=LCD_KeyPad_Shield_For_Arduino_SKU:_DFR0009
Előző: Két alternatív terhelés be- és kikapcsolása az IC 555-gyel Következő: SPDT relékapcsoló áramkör a Triac segítségével