İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Bu blog, sıcaklık programlanan eşik değerinden daha yüksek bir değere ulaştığında alarm vermeye başlayacak bir Ev Otomasyon Sisteminin nasıl yapıldığını gösterecektir. Sıcaklık eşik değerinden fazlaya ulaştığında, LCD'de odanın mevcut sıcaklığını ve gereken eylemi (Örn: Sıcaklığı Azalt) görüntülemeye devam edecektir. Bu derste Analog Devices ve AG-1005G Buzzer tarafından üretilen AD22100 sıcaklık sensörünü kullanıyorum. AD22100, Sinyal Şartlandırmalı bir Voltaj Çıkış Sıcaklık Sensörüdür
Adım 1: Parçalar
Bu yıkılmaz çalışmaya başlamadan önce bu parçalara ihtiyacınız var.
1. Arduino UNO Kartı
2. LCD Ekran (16x2)
3. Buzzer - 2 Pinli (AC-1005G)
4. Sıcaklık Sensörü - 3 Pinli (AD22100)
Adım 2: Arduino UNO ile Farklı Parçaların Bağlantısı
Arduino UNO kartı ile LCD Bağlantısı
Arduino Board Pin 7 ile LCD RS Pin (Pin 4)
Arduino Board Pin 8 ile LCD Etkinleştirme Pimi (Pim 6)
Arduino Kartının Pin 9'u ile LCD D4 Pin (Pin 11)
Arduino Kartının Pin 10'u ile LCD D5 Pin (Pin 12)
Arduino Kartının Pin 11'i ile LCD D6 Pin (Pin 13)
Arduino Kartının Pin 12'si ile LCD D7 Pin (Pin 14)
+5v (Pot Pin 1) ve GND'ye (Pot Pin 3) 10 KΩ Pot ekleyin, Tencerenin Orta Pinini (Pot Pin 2) LCD V0 Pinine (Pin 3) bağlayın.
Arduino Kartında +5v ile LCD VDD Pin (Pin 2) ve LCD A Pin (Pin 15).
Arduino Kartında GND'li LCD VSS Pin (Pin 1) ve LCD K Pin (Pin 16).
Arduino UNO Kartı ile AD22100 Sıcaklık Sensörü bağlantısı
AD22100'ün Pin 1 (V+) Arduino Board üzerindeki +5 v'ye bağlanmalıdır.
AD22100'ün Pin 2 (Vo), Arduino Board üzerindeki Pin A1'e bağlanmalıdır.
AD22100'ün Pin 3'ü (GND), Arduino Board üzerindeki GND'ye bağlanmalıdır.
Arduino UNO Kartı ile Buzzer (AC-1005G) Bağlantısı
Arduino kartının Pin 6 PWM çıkışı Buzzer'ın +ve girişine bağlanmalıdır.
Arduino Board'un GND'si Buzzer'ın -ve girişi ile bağlanmalıdır.
Adım 3: Arduino Kodları
Derleyin ve Arduino Board'a yükleyin ve Ev Otomasyon Sistemi demosunu izleyin
//Program burada başlar
int değeri;
int tempPin = A1;
int zil = 6;
#LiquidCrystal lcd (7, 8, 9, 10, 11, 12);
geçersiz kurulum() {
// bir kez çalıştırmak için kurulum kodunuzu buraya koyun:
lcd.begin(16, 2);
lcd.clear();
Seri.başla(9600);
pinMode(buzzer, OUTPUT);
}
void loop() {// tekrar tekrar çalıştırmak için ana kodunuzu buraya yazın:
val = analogRead(tempPin);//AD22100 Pin A1'e bağlı
/*
*25C için val değeri 900 olarak gelir yani
* 900, 1.9375 v'ye karşılık gelir
* Transfer Fonksiyonu (V+/5)*(1.375 + 22.5 mv/degC * 25 degC), * AD22100 Veri Sayfasını Okuyun
*/
float cel = ((((1.9375/900) * değer) – 1.375)/22.5)*1000;
float farh = (cel*9)/5 + 32;
Seri.baskı(val);
Seri.println();
Serial.print(“SICAKLIK = “);
Seri.baskı(cel);Seri.baskı(“*C”);
Seri.println();
if (cel > 26){
ton(sesli uyarı, 1000);
lcd.clear();
lcd.print(“Sıcaklık eşiğin üzerinde”);
lcd.setCursor(0, 1);
lcd.print(“Sıcaklığı Azalt”);
}
Başka
{noTone(sesli uyarı);
lcd.clear();
lcd.print(“Sıcaklık kontrol altında”);
lcd.setCursor(0, 1);
lcd.print(“Sıcaklık= “);
lcd.print(cel);
lcd.print(“dereceC”);
}
gecikme(500);
}
//Program burada biter
Adım 4: Programı Ayrıntılı Olarak Anlama
Kodun birkaç bölümünü açıklamaya çalışacağım.
If/else deyimi ile ilgili fonksiyonlar
Sıcaklık eşik değerinden büyükse, kodun aşağıdaki bölümü ile bir alarm çalması için buzzer'a sinyal gönderiyorum ve sıcaklığı düşürmek için LCD'de görüntülüyorum.
eğer (cel > 26)
{ton(sesli uyarı, 1000);
lcd.clear();
lcd.print(“Sıcaklık eşiğin üzerinde”);
lcd.setCursor(0, 1);
lcd.print(“Sıcaklığı Azalt”);
}
Değilse, mevcut sıcaklığın LCD'ye gönderilmesi ve bu sıcaklığın görüntülenmesi kontrol altındadır.
Başka
{noTone(sesli uyarı);
lcd.clear();
lcd.print(“Sıcaklık kontrol altında”);
lcd.setCursor(0, 1);
lcd.print(“Sıcaklık= “);
lcd.print(cel);
lcd.print(“derece”);
}
Buzzer ile ilgili işlevler
tone(buzzer, 1000) - bu fonksiyon Pin 6 olarak tanımlanan buzzer isimli pine 1 khz sinyal gönderir ve Manyetik buzzer Pin 6.noTone(buzzer)'a bağlanır - 1 khz sinyal göndermeyi durdurur. Bu nedenle, zil duracak
Sıcaklık Sensörü ile ilgili fonksiyonlar
Sıcaklık okumasının Analog değerinin derece C değerine dönüştürülmesi, aşağıda yazıldığı gibi AD22100 Veri Sayfasında bulunabilecek bir transfer fonksiyonu kullanılarak yapılır.
Vout = (V+/5 V) × (1.375 V + 22.5 mV/°C × TA) ve aynı değer LCD ekranda yazdırılır.
Adım 5: Talimatların Demosu
Program derlenip Arduino UNO kartına yüklendikten sonra
AD22100 sıcaklık sensörü tarafından algılanan sıcaklığı artırmaya çalışalım ve Ev Otomasyonu sisteminin keyfini çıkaralım.
Sensörün sıcaklığını arttırmak için Lab'de bulunan havya ile dokunuyorum.
Demoya buradan göz atabilirsiniz..
Ev Otomasyon Sistemi Demosu