Herkese merhaba,
Bugün sizlere hobi olarak başladığım Arduino cihazıyla yaptığım sıcaklık kontrol uygulamasını paylaşacağım. Uygulamanın nasıl çalıştığını anlatan bir videoda yükledim ordanda nasıl birşey olduğunu izleyebilirsiniz. LM35 sıcaklık sensörü ile elde ettiğimiz analog sinyali mV ye, daha sonra Dereceye çevirip, elde ettiğimiz veriye görede ledlerimizi yakacağız.
Elde ettiğimiz değer;
26°C’den küçükse Yeşil Ledi Yak
26°C ile 30°C arasında ise Sarı Ledi Yak
30°C ile 35°C arasında ise Kırmızı Ledi Yak
35°C’nin üzerinde üzerinde ise sıra ile tüm ledlerin yamasını istiyoruz.
İlk olarak devre kurulumu malzemelerini paylaşacağım;
Malzemeler;
- Arduino Uno R3
- 1 Adet LM35 Sıcaklık Sensörü
- 3 adet Led (Sarı Kırmızı Yeşil)
- 4 adet Direnç (1 K olabilir.)
- biraz kablo
- birde breadboard
Devremizin Şeması;

Devre Kurulumunu yukarıda gördüğümüz gibi yaparsak sıkıntısız bir şekilde çalışacaktır. Direçler elimde 1K olduğu için onları kullandım daha düşüklerini de kullanabilirsiniz. ledlerin yüksek voltajta yanmaması için ekledim.
Şimdi Kodlama Kısmına Geçelim. Kodların yanına Yeşil olarak kodların ne işe yaradığını kısa olarak belirttim.
Kodlar;
float sicaklik_derecesi;
float gerilim_degeri;
int sicaklik_derecesiPin = 0; // analog girişin olacağı pin
int yesil_led = 7; // yeşil led çıkış
int sari_led = 6; // sarı led
int kirmizii_led = 5; // kırmızı led
void setup()
{
Serial.begin(9600); // saniyede 9600 defa 0. analog girişi oku
pinMode( yesil_led, OUTPUT); // 7 nolu pin çıkış olarak belirle
pinMode( sari_led, OUTPUT); // 6 nolu pin çıkış olarak belirle
pinMode( kirmizii_led, OUTPUT); // 5 nolu pin çıkış olarak belirle
}
void loop()
{
// dinleme işlemi
gerilim_degeri = analogRead(sicaklik_derecesiPin); // analog degeri oku
gerilim_degeri = (gerilim_degeri/1023)*5000; // analog deger mv ye çevirir.
sicaklik_derecesi = gerilim_degeri/10.0; // celciusa çevirip sicakliğa atadık.
// bulduğumuz değer aralığına göre yanacak ledleri belirliyoruz.
if ( sicaklik_derecesi < 26 )
{
digitalWrite ( yesil_led , HIGH ); // yeşil ledi yak
digitalWrite ( sari_led , LOW ); //
digitalWrite ( kirmizii_led , LOW ); //
}
else if( (sicaklik_derecesi >=26) && ( sicaklik_derecesi < 30) )
{
digitalWrite ( yesil_led , LOW ); // yeşil ledi söndür
digitalWrite ( sari_led , HIGH ); // sarı ledi yak
digitalWrite ( kirmizii_led , LOW ); // kırmızı ledi söndür
}
else if( (sicaklik_derecesi >=30) && ( sicaklik_derecesi < 35) )
{
digitalWrite ( yesil_led , LOW ); // yeşil ledi söndür
digitalWrite ( sari_led , LOW ); // sarı ledi söndür
digitalWrite ( kirmizii_led , HIGH ); // kırmızı ledi yak
}
else if( sicaklik_derecesi >=35 )
{
digitalWrite ( yesil_led , HIGH ); // yeşil ledi yak
digitalWrite ( sari_led , LOW ); // sarı ledi söndür
digitalWrite ( kirmizii_led , LOW ); // kırmızı ledi söndür
delay(250); //250 milisaniye boyunca yak
digitalWrite ( yesil_led , LOW ); // yeşil ledi söndür
digitalWrite ( sari_led , HIGH ); // sarı ledi yak
delay(250); //250 milisaniye boyunca yak
digitalWrite ( sari_led , LOW ); // sarı ledi söndür
digitalWrite ( kirmizii_led , HIGH ); // kırmızı ledi yak
delay(250); //250 milisaniye boyunca yak
}
// yarım saniyede bir bizde ekranımızdan değeri görelim.
Serial.print("sicaklik_derecesi degeri: ");
Serial.print(sicaklik_derecesi);
Serial.println(" derece");
delay(500);
}
*** Serial.print ile yazdırdığımız yazıları görmek için; arduino programımızız sol kısmında bulunan serial monitor butonuna tıklamanız gerekmektedir.