2 enkle Arduino temperaturmåler kredsløb udforsket

Prøv Vores Instrument Til At Fjerne Problemer





I denne artikel skal vi konstruere et par nemme Arduino temperaturmåler kredsløb, som også kan bruges som en LED rumtermometer kredsløb .

Kredsløbet er designet til at vise aflæsningerne i punkterede / bar-LED'er. Dette projekt kan implementeres til applikationer, hvor omgivelsestemperatur spiller en afgørende rolle, eller det kan bygges som et andet sjovt projekt til dit hjem.



1) Brug af DTH11 som temperatursensor

Hjertet og hjernen i det første temperaturmålerprojekt er henholdsvis DTH11-sensor og Arduino. Vi skal kun udtrække temperaturdataene fra sensoren.

Arduinoen udleder dataene og opdaterer den viste temperatur hvert par sekunder.



Vi vil tage 12 beslutninger om temperatur måler med andre ord vil vi tage temperaturområdet, hvor omgivelsestemperaturen normalt varierer.

Hvis du ønsker at tilføje flere opløsninger / lysdioder, skal du bruge arduino mega for at drage fordel af sensorens hele temperaturspektrum med ændret program.

DTH11 som temperatursensor

Ovenstående illustrerede layout kan vedtages for at se bedst ud efter din opsætning.

Brugeren skal bare indtaste rumets minimumstemperaturområde. Det kan være en grov værdi, som senere kan ændres, når fuld hardwareopsætning er afsluttet.

Hvis temperaturområdet går under den tærskelværdi, som brugeren har indtastet, lyser ingen LED, og ​​hvis temperaturen går ud over det maksimale område (minimum + 11), lyser alle LED'er.

Hvis der er problemer med sensorforbindelsen, blinker hele LED'en hvert sekund samtidigt.

Designet:

Ledningerne til Arduino LED-temperaturmåler kredsløb er meget enkle, en serie LED tilsluttet GPIO-ben, der spænder fra 2 til 13 med strømbegrænsende modstande, og DHT11-sensoren er tilsluttet analoge I / O-ben, som er programmeret til at give strømforsyning til sensoren såvel som læst data.

LED-rumtermometer kredsløb

Således er din LED-termometer kredsløbskonfiguration komplet og klar til at uploade koden. Det anbefales altid at teste kredsløbet på brødbrættet, før det gøres permanent.

Tip: Brug en anden farve-LED til at angive forskellige temperaturområder. Du kan bruge blå lysdioder til lavere temperaturområde, grøn eller gul til mellem temperaturområde og røde lysdioder til højere temperatur. Dette vil gøre det mere attraktivt.

Forfatterens prototype:

fungerende prototype af LED Room Thermometer Circuit

BEMÆRK: Følgende program er kun kompatibelt med DHT11-sensoren.

Inden du fortsætter, skal du sørge for at downloade biblioteksfilen fra følgende link:

https://arduino-info.wikispaces.com/file/detail/DHT-lib.zip

Programkode:

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

BEMÆRKNING 1:

I programmet:

int temp = 25 // indstillet temperaturområde.
Udskift “25” med din minimum omgivelsestemperatur, som du tidligere har stødt på, med andre termometre, eller forudsig en grov værdi.
BEMÆRK 2: Kontroller temperaturmålingerne fra den serielle skærm og LED-opsætningen.

2) Arduino temperaturmåler ved hjælp af DS18B20

I dette andet design lærer vi en anden enkel, men alligevel ekstrem nøjagtig Arduino temperaturføler med indikator kredsløb ved hjælp af et avanceret digitalt LCD display display readout modul.

digital LCD display aflæsningsmodul.

Der er faktisk ikke noget, der kan forklares for meget i denne konfiguration, da alt er modulbaseret og simpelthen kræver tilslutning eller tilslutning til hinanden gennem de tilbudte mandlige hunstik og stik.

Hardware påkrævet

Fire grundlæggende materialer er nødvendige for at konstruere dette nøjagtige Arduino LCD temperaturmåler kredsløb, som kan studeres som angivet under:

1) Et Arduino UNO Board

2) A Kompatibelt LCD-modul

3) En analog temperatursensorchip, såsom en DS18B20 eller vores helt egen LM35 IC .

DS18B20 Specifikationer for digitalt termometer

DS18B20 digitalt termometer forsikrer en 9-bit til 12-bit Celsius temperaturspecifikationer og bærer en alarmfunktion med ikke-flygtige forbrugerprogrammerbare højere og lavere aktiveringselementer. DS18B20 kommunikerer over en enkelt Wire-bus, der ved beskrivelse kræver en enkelt datalinje (og jord) til forbindelse med en hovedmikroprocessor.

Det inkluderer et arbejdstemperaturområde fra -55 ° C til + 125 ° C, hvilket er præcist til ± 0,5 ° C over sortimentet på -10 ° C til + 85 ° C.

Sammen med dette er DS18B20 i stand til at erhverve strøm lige fra datalinjen ('parasitkraft'), og bortskaffe nødvendigheden af ​​en
rel = ' ingen følger 'uden for strømforsyningen.

Hver enkelt DS18B20 bærer en karakteristisk 64-bit seriel kode, der tillader flere DS18B20'er at arbejde på den samme 1-ledningsbus. Derfor er det brugervenligt og ukompliceret kun en mikroprocessor til at administrere belastninger forbundet med DS18B20'er, der er lanceret over en udbredt placering.

Programmer, der let kan drage fordel af denne attribut, involverer økologiske HVAC-konfigurationer, temperaturovervågningsenheder i virksomheder, apparater eller værktøjer og procesovervågnings- og reguleringssystemer.

Pinout detaljer

DS18B20 Specifikationer for digitalt termometer

4) En 9V, 1 amp AC til DC adapterenhed

Nu handler det bare om at skubbe stikkene ind med hinanden, foretage en smule indstilling gennem LCD-trykknapperne, og du får en fuldgyldig, nøjagtig digital LCD-temperaturmåler til din rådighed.

Du kan måle stuetemperatur med denne opsætning, eller klemme sensoren passende med en hvilken som helst varmeemitterende enhed, der skal overvåges, såsom en bilmotor, ægskvaskekammer, gejser eller blot for at kontrollere varmeafledningen fra en effektforstærker.

Sådan tilsluttes Arduino temperaturmåler

Følgende figur viser opsætningen af ​​forbindelsen, hvor Arduino-kortet er i bunden, med LCD-skærmen tilsluttet over den, og temperatursensoren tilsluttet LCD-kortet.

Men inden du implementerer ovenstående opsætning, skal du programmere Arduino-kortet med følgende eksempelkode.

Høflighed : dfrobot.com/wiki/index.php?title=LCD_KeyPad_Shield_For_Arduino_SKU:_DFR0009




Tidligere: Tænd / sluk for to alternative belastninger med IC 555 Næste: SPDT-relækontaktkredsløb ved hjælp af Triac