Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
See ajaveeb näitab, kuidas luua koduautomaatikasüsteem, mis hakkab helisema, kui temperatuur jõuab programmeeritud künnisväärtusest kõrgemale. Kui temperatuur ületab läviväärtuse, kuvab see LCD -ekraanil pidevalt ruumi temperatuuri ja vajalikke toiminguid (nt: alanda temperatuuri). Selles õpetuses kasutan AD22100 temperatuuriandurit, mille on tootnud Analog Devices ja AG-1005G Buzzer. AD22100 on signaali konditsioneerimisega pinge väljundtemperatuuri andur
Samm: osad
Enne selle hävimatu töö alustamist vajate neid osi kaasas
1. Arduino UNO juhatus
2. LCD -ekraan (16x2)
3. summeri - 2 tihvti (AC -1005G)
4. Temperatuuriandur - 3 -pin (AD22100)
Samm: erinevate osade ühendamine Arduino UNO -ga
LCD ühendus Arduino UNO plaadiga
LCD RS -tihvt (tihvt 4) Arduino plaadi tihvtiga 7
LCD lubab tihvti (tihvt 6) Arduino plaadi tihvtiga 8
LCD D4 tihvt (tihvt 11) Arduino plaadi tihvtiga 9
LCD D5 tihvt (tihvt 12) Arduino plaadi tihvtiga 10
LCD D6 tihvt (tihvt 13) Arduino plaadi tihvtiga 11
LCD D7 tihvt (tihvt 14) Arduino plaadi tihvtiga 12
Lisage 10 KΩ pott +5v (potti tihvt 1) ja GND (poti tihvt 3), Ühendage poti keskmine tihvt (potti tihvt 2) LCD V0 tihvtiga (tihvt 3).
LCD VDD tihvt (tihvt 2) ja LCD A -tihvt (tihvt 15) +5v Arduino pardal.
LCD VSS tihvt (tihvt 1) ja LCD K tihvt (tihvt 16) koos GND -ga Arduino tahvlil.
AD22100 temperatuurianduri ühendus Arduino UNO plaadiga
AD22100 tihvt 1 (V +) tuleks ühendada Arduino Boardi +5 v -ga.
AD22100 tihvt 2 (Vo) tuleks ühendada Arduino tahvli tihvtiga A1.
AD22100 tihvt 3 (GND) tuleks Arduino pardal GND -ga ühendada
Sumin (AC-1005G) Ühendus Arduino UNO juhatusega
Pin 6 Arduino plaadi PWM väljund tuleks ühendada Buzzeri +ve sisendiga.
Arduino Boardi GND tuleks ühendada Buzzeri sisendiga -ve
Samm: Arduino koodid
Koostage see ja laadige see Arduino pardal üles ja jälgige koduautomaatikasüsteemi demot
// Programm algab siit
int val;
int tempPin = A1;
int sumin = 6;
#kaasas LiquidCrystal lcd (7, 8, 9, 10, 11, 12);
tühine seadistus () {
// pange oma seadistuskood siia, et üks kord käivitada:
lcd.algus (16, 2);
lcd.clear ();
Seriaalne algus (9600);
pinMode (helisignaal, VÄLJUND);
}
void loop () {// pange oma põhikood korduvaks käitamiseks siia:
val = analogRead (tempPin); // AD22100 on ühendatud tihvtiga A1
/*
*25C puhul on val 900, mis tähendab
* 900 vastab 1,9375 v
* Ülekandefunktsioon on (V +/5) * (1,375 + 22,5 mv/degC * 25 ° C), * Lugege AD22100 andmelehte
*/
float cel = (((((1,9375/900) * val) - 1,375)/22,5) * 1000;
float farh = (cel*9)/5 + 32;
Seeriatrükk (val);
Serial.println ();
Serial.print (“TEMPRATURE =“);
Serial.print (cel); Serial.print (“*C”);
Serial.println ();
kui (cel> 26) {
toon (sumin, 1000);
lcd.clear ();
lcd.print (“Temperatuur üle künnise”);
lcd.setCursor (0, 1);
lcd.print ("Vähenda temperatuuri");
}
muidu
{noTone (helisignaal);
lcd.clear ();
lcd.print (“Temperatuur kontrolli all”);
lcd.setCursor (0, 1);
lcd.print ("Temp =");
lcd.print (cel);
lcd.print (“degC”);
}
viivitus (500);
}
// Programm lõpeb siin
Samm: programmi üksikasjalik mõistmine
Püüan selgitada koodi mõnda jaotist.
Lausega If/else seotud funktsioonid
Kui temperatuur on künnisväärtusest kõrgem, saadan helisignaalile helisignaali ja kuvan ekraani temperatuuri alandamiseks, kasutades koodi alltoodud jaotist
kui (cel> 26)
{toon (sumin, 1000);
lcd.clear ();
lcd.print (“Temperatuur üle künnise”);
lcd.setCursor (0, 1);
lcd.print ("Vähenda temperatuuri");
}
Kui ei, siis saadetakse praegune temperatuuri väärtus LCD -le ja kuvatakse selle temperatuuri kontroll.
muidu
{noTone (helisignaal);
lcd.clear ();
lcd.print (“Temperatuur kontrolli all”);
lcd.setCursor (0, 1);
lcd.print ("Temp =");
lcd.print (cel);
lcd.print (“degC”);
}
Buzzeriga seotud funktsioonid
toon (sumin, 1000) - see funktsioon saadab 1 khz signaali tihvtile nimega sumin, mis on määratletud kui tihvt 6 ja magnetiline helisignaal on ühendatud nööpnõelaga 6. noTone (sumin) - lõpetab 1 khz signaali saatmise. Seega helin lakkab
Temperatuurianduriga seotud funktsioonid
Temperatuurinäidu analoogväärtuse teisendamine deg C -väärtuseks toimub ülekandefunktsiooni abil, mille leiate AD22100 andmelehelt, nagu allpool kirjutatud.
Vout = (V +/5 V) × (1,375 V + 22,5 mV/° C × TA) ja sama väärtus trükitakse LCD -ekraanile.
Samm 5: Instructables demo
Kui programm on koostatud ja Arduino UNO tahvlile üles laaditud
proovime tõsta temperatuurianduri AD22100 poolt tajutavat temperatuuri ja naudime koduautomaatikasüsteemi.
Anduri temperatuuri tõstmiseks puudutan seda Labis saadaoleva jootekolbiga.
Demot saate vaadata siit..
Koduautomaatikasüsteemi demo