Yine ufak çapta bir çalışma sonucu yaptığım uygulamayı sizlere İsis programında göstereceğim. LM35 sıcaklık sensöründen okunan analog voltaja göre LM016L 2X16 lcd de gösterim yapacağız.
LM35 Sensörü hakkında biraz bilgi vereyim; Analog olarak çıkış verir. -55 ile 150 derece arasında ölçüm yapabilir.10mV/derece hasasiyetindedir.Ayrıca Arduino referans gerilimimiz 5V oldugundan dolayı analog okuma kanalından maksimum 5V okuyabiliriz.Arduino bu bilgiyi 10 bitlik bilgiye çevireceğinden dolayı 5V 1023 tam sayısına karşılık gelmektedir(0 da dahil).Buna göre 5/1023=0,0048=4,88mV hassasiyetinden ölçüm yapabileceğimiz anlamına gelir. Aşağıda kod üzerinde gerekli bilgileri yazdım arkadaşlar.
#include <LiquidCrystal.h> //LCD kütüphanesini ekledik.
LiquidCrystal lcd(22, 23, 24, 25, 26, 27); //LiquidCrystal lcd( RS , ENABLE , D4 , D5 , D6 , D7) //pinlerimizi buna göre ayarlıyoruz. Arduinomuza bu şekilde tanımlayabiliriz.
float sicaklik; // lcd de sonuç olarak gösterilecek değer
float analogdeger; // sıcaklık sensöründen okunan analog voltaj
int analogpin0=A0;
void setup()
{
lcd.begin(16,2); //lcd.begin(sutunsayisi,satirsayisi) Lcd ekranımızı sütun ve satır sayısına göre kuruyoruz.
}
void loop()
{
baslangic(); // giriş yazıları
analogdeger=analogRead(analogpin0);
analogdeger = (analogdeger/1023)*5000;//değeri mV'a dönüştürür lm35 yapısı gereği bu işlemi yaptık
sicaklik=analogdeger/10,0; // her 10mV 1 derece sıcaklık yaptığı için. 10 a bölerek sıcaklığı bulduk.
lcd.clear();
lcd.setCursor(0,0);
lcd.print("SICAKLIK DEGERI:");
lcd.setCursor(0,1);
lcd.print(sicaklik);// float bir deger olduğu için tırnak kullanmadık dikkat edin
lcd.setCursor(7,1);
lcd.print("DERECEDIR");
delay(2000);
}
void baslangic()
{
lcd.clear(); //komutu ile ekranı temizliyoruz.
lcd.setCursor(2,0); // komutu yazı yazacağımız adrese imlecimizi götürür.Burada (3,0) değeri
//ilk satırın 3. karakter kutusuna yerleştirir.
lcd.print("ATILGAN ARGE"); // lcd.print(""); komutu ile türkçe karakterler dışında çıktı yazı yazabiliriz.
lcd.setCursor(3,1);
lcd.print("INOVASYON");
delay(1000);
}
Yorumlar
Yorum Gönder