Mündəricat:
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
Bu blog, temperatur proqramlaşdırılmış eşik dəyərindən daha çox çatanda həyəcan siqnalı verməyə başlayacaq Ev Avtomatlaşdırma Sisteminin necə qurulacağını göstərəcək. Temperatur eşik dəyərdən çox olduqda, LCD -də otağın hazırkı istiliyini və lazım olan hərəkəti (məsələn: İstiliyin Azaldılması) göstərməyə davam edəcək. Bu təlimatda, Analog Devices və AG-1005G Buzzer tərəfindən istehsal olunan AD22100 temperatur sensöründən istifadə edirəm. AD22100, Siqnal Kondisionerli bir Gərginlik Çıxış Temperatur Sensorudur
Addım 1: hissələr
Bu sarsılmaz işə başlamazdan əvvəl bu hissələrə ehtiyacınız var
1. Arduino UNO İdarə Heyəti
2. LCD Ekran (16x2)
3. Buzzer - 2 Pin (AC -1005G)
4. Temp Sensor - 3 Pin (AD22100)
Addım 2: Fərqli hissələrin Arduino UNO ilə əlaqəsi
Arduino UNO lövhəsi ilə LCD bağlantısı
LCD RS Pin (Pin 4) Arduino lövhəsinin 7 pinli
LCD Arduino lövhəsinin 8 pinli pinini (Pin 6) aktivləşdirin
LCD D4 Pimi (Pin 11) Arduino lövhəsinin 9 Pin ilə
LCD D5 Pin (Pin 12) Arduino lövhəsinin 10 pinli
LCD D6 Pin (Pin 13) Arduino lövhəsinin Pin 11 ilə
LCD D7 Pin (Pin 14) Arduino Kartının 12 Pimi ilə
+5v (Pot Pin 1) və GND (Pot Pin 3) üçün 10 KΩ Pot əlavə edin, Orta Qazan Pinini (Pot Pin 2) LCD V0 Pininə (Pin 3) bağlayın.
Arduino lövhəsində +5v olan LCD VDD Pin (Pin 2) və LCD A Pin (Pin 15).
Arduino lövhəsində GND olan LCD VSS Pin (Pin 1) və LCD K Pin (Pin 16).
AD22100 Arduino UNO Board ilə Temp Sensor bağlantısı
AD22100 pin 1 (V +) Arduino lövhəsində +5 v -ə qoşulmalıdır.
AD22100 pin 2 (Vo) Arduino lövhəsindəki Pin A1 -ə bağlanmalıdır.
AD22100 pin 3 (GND) Arduino Kartında GND -yə bağlanmalıdır
Buzzer (AC-1005G) Arduino UNO Board ilə əlaqə
Arduino lövhəsinin 6 pinli PWM çıxışı Buzzerin +ve girişinə qoşulmalıdır.
Arduino Board GND, Buzzer -ve girişi ilə əlaqələndirilməlidir
Addım 3: Arduino Kodları
Bunu tərtib edin və Arduino lövhəsinə yükləyin və Ev Avtomatlaşdırma Sistemi demosunu izləyin
// Proqram burada başlayır
int val;
int tempPin = A1;
int buzzer = 6;
#LiquidCrystal lcd (7, 8, 9, 10, 11, 12) daxil edin;
boş quraşdırma () {
// bir dəfə işə salmaq üçün quraşdırma kodunuzu bura qoyun:
lcd.begin (16, 2);
lcd.clear ();
Serial.begin (9600);
pinMode (səs siqnalı, ÇIXIŞ);
}
void loop () {// əsas kodunuzu bura qoyun, təkrar işləsin:
val = analogRead (tempPin); // AD22100 Pin A1 -ə bağlıdır
/*
*25C üçün val 900 deməkdir, bu deməkdir
* 900, 1.9375 -ə bərabərdir
* Transfer funksiyası (V +/5) * (1.375 + 22.5 mv/degC * 25 degC), * AD22100 məlumat cədvəlini oxuyun
*/
float cel = (((((1.9375/900) * val) - 1.375) /22.5) * 1000;
float farh = (cel*9)/5 + 32;
Serial. çap (val);
Serial.println ();
Serial.print ("TEMPRATURE =");
Serial.print (cel); Serial.print (“*C”);
Serial.println ();
əgər (cel> 26) {
ton (səs -küy, 1000);
lcd.clear ();
lcd.print ("Temp ərəfəsində");
lcd.setCursor (0, 1);
lcd.print ("İstiliyi azaldın");
}
başqa
{noTone (səs siqnalı);
lcd.clear ();
lcd.print ("Temp nəzarət altındadır");
lcd.setCursor (0, 1);
lcd.print ("Temp =");
lcd çap (cel);
lcd.print ("degC");
}
gecikmə (500);
}
// Proqram burada bitir
Addım 4: Proqramı ətraflı şəkildə anlayın
Kodun bir neçə hissəsini izah etməyə çalışacağam.
If/else ifadəsi ilə əlaqəli funksiyalar
İstilik eşik dəyərindən yüksəkdirsə, siqnalın siqnalını siqnal göndərirəm və kodun aşağı hissəsindəki istiliyi azaltmaq üçün LCD -də göstərirəm.
əgər (cel> 26)
{ton (səs siqnalı, 1000);
lcd.clear ();
lcd.print ("Temp ərəfəsində");
lcd.setCursor (0, 1);
lcd.print ("İstiliyi azaldın");
}
Əks təqdirdə, cari temp dəyərini LCD -yə göndərmək və bu tempi göstərmək nəzarət altındadır.
başqa
{noTone (səs siqnalı);
lcd.clear ();
lcd.print ("Temp nəzarət altındadır");
lcd.setCursor (0, 1);
lcd.print ("Temp =");
lcd çap (cel);
lcd.print ("degC");
}
Buzzer ilə əlaqəli funksiyalar
ton (səs -küy, 1000) - bu funksiya Pin 6 olaraq təyin olunan və Pin 6 -da Maqnitli səs siqnalı bağlandığı üçün 1 kHz siqnalı göndərəcək. Səs (buzzer) - 1 khz siqnalı göndərməyi dayandıracaq. Beləliklə, zəng çalmaq dayanacaq
Temp Sensor ilə əlaqəli funksiyalar
Temperaturun oxunuşunun analoq dəyərinin dərəcə C dəyərinə çevrilməsi, aşağıda yazıldığı kimi AD22100 məlumat cədvəlində tapıla bilən bir ötürmə funksiyasından istifadə etməklə həyata keçirilir.
Vout = (V +/5 V) × (1.375 V + 22.5 mV/° C × TA) və eyni dəyər LCD ekranda çap olunur.
Addım 5: Təlimat verənlərin Demosu
Proqram tərtib edildikdən və Arduino UNO lövhəsinə yükləndikdən sonra
AD22100 temperatur sensoru ilə algılanan istiliyi artırmağa və Ev Avtomatlaşdırma sistemindən zövq almağa çalışaq.
Sensorun temperaturunu artırmaq üçün onu Lab -da mövcud olan lehimləmə dəmiri ilə toxunuram.
Demoya burdan baxa bilərsiniz..
Ev avtomatlaşdırma sisteminin nümayişi