16x2 LCD I2C Sıcaklık Göstergesi
Proje Amacı
LM35'ten okunan sıcaklığı 16x2 I2C LCD ekranda gerçek zamanlı gösterir — I2C sayesinde LCD'nin normalde gerektirdiği 6 dijital pin yerine sadece 2 pin (SDA/SCL) yeterli olur.
Gerekli Malzemeler
- Arduino Uno
- LM35
- 16x2 I2C LCD
Gerekli Kütüphaneler
LiquidCrystal_I2C — Kütüphane Yöneticisi'nden kurulmalı (Frank de Brabander sürümü önerilir). Ayrıca Wire.h yerleşiktir.
Pin Bağlantıları
| Bileşen Pini | Bağlantı |
|---|---|
| LM35 +Vs | 5V |
| LM35 Vout | A0 |
| LM35 GND | GND |
| LCD VCC | 5V |
| LCD GND | GND |
| LCD SDA | A4 |
| LCD SCL | A5 |
Devre Şeması
Arduino Kodu
| 1 | #include <Wire.h> |
| 2 | #include <LiquidCrystal_I2C.h> |
| 3 | LiquidCrystal_I2C lcd(0x27, 16, 2); |
| 4 | const int LM35=A0; |
| 5 | |
| 6 | void setup() { |
| 7 | lcd.init(); |
| 8 | lcd.backlight(); |
| 9 | lcd.setCursor(0, 0); |
| 10 | lcd.print("Sicaklik Olcer"); |
| 11 | delay(1500); |
| 12 | lcd.clear(); |
| 13 | } |
| 14 | |
| 15 | void loop() { |
| 16 | int raw = analogRead(LM35); |
| 17 | float tempC = (raw * (5.0 / 1023.0)) * 100.0; |
| 18 | |
| 19 | lcd.setCursor(0, 0); |
| 20 | lcd.print("Sicaklik: "); |
| 21 | lcd.setCursor(0, 1); |
| 22 | lcd.print(tempC, 1); |
| 23 | lcd.print(" C "); |
| 24 | |
| 25 | delay(500); |
| 26 | } |
Çalışma Açıklaması
I2C adresi modülden modüle değişebilir (0x27 çalışmazsa 0x3F deneyin). A4/A5 pinleri I2C'ye ayrılmıştır, başka amaçla kullanmayın.
Test Bilgisi
LiquidCrystal_I2C kütüphanesini Arduino IDE'ye kurun. Devreyi kurun, kodu yükleyin. LCD'de başlangıç mesajı, ardından anlık sıcaklık değeri görünmeli.
Olası Sorunlar ve Çözümleri
Ekran hiç yanmıyorsa: I2C adresini (0x27/0x3F) bir I2C tarayıcı (scanner) kodu ile kesin olarak tespit edin. Ekranda anlamsız karakterler görünüyorsa: LiquidCrystal_I2C kütüphanesinin doğru sürümünün kurulu olduğunu kontrol edin. Kontrast çok açık/koyu ise: modül üzerindeki küçük mavi potansiyometreyi ayarlayın.
Alternatif Çözümler
LM35 yerine DHT11/DHT22 kullanılarak ekranda hem sıcaklık hem nem gösterilebilir. 16x2 yerine 20x4 I2C LCD kullanılarak daha fazla bilgi (tarih, saat, çoklu sensör) aynı ekranda gösterilebilir. I2C LCD yerine OLED ekran (proje #30'daki gibi) kullanılarak daha yüksek kontrast ve daha küçük boyut elde edilebilir.
Benzer Projeler
MQ-2 Gaz Alarmı
Ortamdaki yanıcı gaz/duman yoğunluğunu ölçüp tehlikeli seviyede LED ve buzzer ile alarm verir — ama bir uyarı: bu bir eğitim projesidir, sertifikalı bir ev tipi gaz alarmının yerini tutmaz (bkz. Çalışma Açıklaması).
Servo Kontrollü Kilit
Potansiyometreyi çevirerek servo motorun açısını 0-180° arasında kontrol eder; aynı mantık gerçek bir kilit mekanizmasına bağlandığında servo tabanlı bir erişim sistemine dönüşür.
PIR Hareket Alarmı
PIR sensörle hareketi algılayıp LED ve buzzer ile alarm verir. PIR'lar aslında sıcaklık farkı ölçer (pasif kızılötesi) — bu yüzden ilk 30-60 saniye kalibrasyon ister ve kalorifer gibi sıcak hava akımlarına karşı hassastır.