2014-01-25

Arduino, LM35 ve 16x2 LCD ekran ile oda sıcaklığı ölçümü

/*
LCD'li Oda Sıcaklığı göstergesi
Oda sıcaklığını bilgisayara gerek kalmadan gösterir.

Gereken malzemeler: 
* 16x2 Mavi LCD ekran, 
* LM35 sıcaklık ölçeri
* Breadboard
* Arduino Uno
* Kablolar

Açıklama:

 LM35 termometresinin bir ucu 5V'a diğer ucu Analog 0'a bağlı.
 Ortadaki okuma ucu Analog 0'a bağlanacak.
 Diğer uçları 0 ve 5v uçlarını ters bağlarsanız komponentlere zarar gelebilir.
 LM35 0 derecede 0V, 100 derecede 1 V değerini vermektedir
 LM35 1 derecede başına voltaj 0.01 V artmaktadır. ör: 0.19V= 19 derece

16x2 LCD 'yi nasıl bağlayacağınız devrede gösterilmiştir. 
http://nevit.blogspot.com.tr/2014/01/arduino-ile-1602a-lcd-baglants.html
http://arduino.cc/en/Tutorial/LiquidCrystal

*/
// LCD Kütüphanesini içeri al
#include <LiquidCrystal.h>
// LCD Kütüphanesini bağlanan pin'ler ile başlat.
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int SicaklikPin = 0;   // LM35 sensöre bağlı pin (Analog 0)
int OkunanDeger;       // Analog 0'dan okunacak değer (0-1023) LM35'in vereceğı en büyük okuma değeri 1V=205 olacak. 
int Sicaklik;          // 

void setup() {
  // LCD'yi 16 sütün, 2 satır olarak başlat 
  lcd.begin(16, 2);
  // Birinci satıra "Oda Sıcaklığı:" yaz.
  lcd.print("Oda sicakligi:");
}

void loop() {
  
  OkunanDeger = analogRead(SicaklikPin);  
  Sicaklik = map (OkunanDeger, 0, 205, 0, 100); //(0-1v 0-205 okuma değerini, 0-100 sıcaklığa dönüştür.)
  
  // İmleci 2. satıra getir. 
  // Not: Satır: 0, Satır 2: 1 olarak geçer. Satır sayıları 0'dan başlar. 
  lcd.setCursor(0, 1);
  lcd.print(Sicaklik);     // hesaplanan sıcaklığı yazdır. 
  lcd.print(" derece");    // devamına birimi olan derecece yaz.
  delay (1000);            // Sonraki ölçümden önce 1 saniye bekle.
  
}





LCD Pin No
Arduino Pin No
İşlevi
 LCD Pin Adı
1
Gnd
Toprak (0V)
Ground
2
5V
5V giriş (4.7V – 5.3V)
 Vcc
3
Potans orta bağlantı
Potansiyometre ile kontrast ayarı

 VEE
4
Digital pin 12
Düşük ise komut register, yüksek ise Data register.
Register Select (RS)
5
Gnd
Düşük ise register’e yaz, yüksek ise register’den oku
Read/Write(RW)
6
Digital pin 11
Yüksek’ten düşük konuma geçtiğinde (High to Low Pulse) data pin’lerine data yollar.
Enable
7

8-bit data pinleri
DB0
8

DB1
9

DB2
10

DB3
11
Digital pin 5
DB4
12
Digital pin 4
DB5
13
Digital pin 3
DB6
14
Digital pin 2
DB7
15
5v
Arka ışık VCC (5V)
Led+
16
Gnd
Arka ışık Toprak (0V)
Led-









Bu arada 15 ve 16. pinler ile ilgili gördüğüm çelişkiler sanırım mavi ve yeşil olmaları ile ilgili. Mavi'ler için arka ışık bağlantısı gerekiyor sanırım.

5 yorum:

Necati Caglar dedi ki...

Selamın aleyküm abi bu odasicakligina 25 dereceye gelince motoru nasil calistiririz

Ufuk Köyrük dedi ki...

Merhaba. Devreyi kurup kodu derlediğimde ekranda sadece ilk satır tamamen dolu görünüyor. Hatam konusunda bir tahmininiz var mı?

Mehmet TAŞÇIOĞLU dedi ki...

teşekürler

enes dedi ki...

Bu yazılımı arduino due için yazmak isttiyorum nasıl yapabilirim bu yazılım uno için sanırım

cabir çobanoğlu dedi ki...

merhaba devreyi kurdum ancak oda sıcaklığını 100 derece olarak ölçüyor