Arduino Projeleri
#08Orta

16x2 LCD I2C Sıcaklık Göstergesi

~1 saatI2C kavramına aşinalık faydalı

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 PiniBağ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

arduino-08-16x2-lcd-i2c-sicaklik-gostergesi.ino
1#include <Wire.h>
2#include <LiquidCrystal_I2C.h>
3LiquidCrystal_I2C lcd(0x27, 16, 2);
4const int LM35=A0;
5
6void 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
15void 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.

Bu projenin kodunu AI ile özelleştir

Farklı pin, ek özellik ya da başka bir sensör mü istiyorsun?