#include <LiquidCrystal.h>
// LCD pin tanımları
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
// RGB LED pin tanımları
int R = 7;
int G = 9;
int B = 8;
// Sıcaklık sensörü bağlı olan analog pin
const int temperaturePin = A0;
void setup()
{
// LCD ekranını başlat
lcd.begin(16, 2);
// RGB LED pinlerini çıkış olarak ayarla
pinMode(R, OUTPUT);
pinMode(G, OUTPUT);
pinMode(B, OUTPUT);
// LCD ekranına başlık yaz
lcd.print("SICAKLIK");
}
void loop()
{
// Analog pin A0'dan sıcaklık verisini oku
int read = analogRead(temperaturePin);
// Voltajı hesapla
float voltage = read * 5.0 / 1024.0;
// Sıcaklığı Celsius cinsinden hesapla
float celsius = (voltage - 0.5) * 100; // 10mV/derece ve 500mV offset
// LCD ekranında sıcaklığı göster
lcd.setCursor(0, 1); // İkinci satırın başına git
lcd.print(celsius);
lcd.setCursor(6, 1);
lcd.print("C");
// Fahrenhayt cinsinden sıcaklığı hesapla (isteğe bağlı)
float fahrenheit = (celsius * 9.0 / 5.0) + 32.0;
// Renk değiştirme işlemini yap
if (celsius <= 0 || celsius >= 100) {
// Çok düşük veya çok yüksek sıcaklık için kırmızı ışık
analogWrite(R, 255);
analogWrite(G, 0);
analogWrite(B, 0);
} else if (celsius < 50) {
// Düşük sıcaklıklar için yeşil ışık
analogWrite(R, 0);
analogWrite(G, 255);
analogWrite(B, 0);
} else {
// Orta ve yüksek sıcaklıklar için mavi ışık
analogWrite(R, 0);
analogWrite(G, 0);
analogWrite(B, 255);
}
// Renk değişiminin görünür olması için kısa bir gecikme
delay(500);
}