Çıkışlar etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Çıkışlar etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

22 Ağustos 2013 Perşembe

Arduino - LCD Ekran Uygulaması

LCD uygulamaları mikroişlemciler ile yapılan uygulamalar için önemli bir temel taş. Çünkü ölçülmesini istediğimiz (mesafe ölçümü,hız ölçümü vs.) birimleri aynı anda ekranda görebilme imkanımız bulunmakta.

Öncelikle LCD ekrandan bahsetmek istiyorum.Gereksiz bilgi ama açılımı Liquid-Cyrstal Display. Piyasada çok çeşidi var hatta Arduino için üretilmiş olanları bile var.Fakat ben LCD ekranımı Arduino'yu almadan çok çok önce aldığım için biraz farklı ve bağlantıları resimden de anlaşılacağı üzere biraz karmaşık oldu.







Bu karmaşıklığı LCD numaralarını göstererek daha basite indirgeyebiliriz. Yan tarafta LM016'nın numaralandırılmış hali var.Fakat sorunlar burda da bitmiyor. LCD üreticisi firmalar bu numaraları sıralı bir şekilde üretmeyebiliyor.





 Ben 1-16 arasında numaralandırılmış olan kısmı lehimleme tercihinde bulundum.

Ekran parlaklığını potansiyometre ile ayarlıcaz.Bunu da VDD-VSS arasında potansiyometre koyarak yapcaz. Yani LCD'nin 3 numaralı kısmı potansiyometrenin orta bacağına takılı olcak. 2 numara VDD ve potansiyometrenin uç bacağı, 1 numara VSS ve o da  potansiyometrenin diğer uç bacağına bağlı olacak.

LCD 4 numaralı pin data girişi yeri, 5 numaralı pin toprağa bağlı ekrana datayı yazacak ve 6 numaralı pin de sinyal aktifliği yeri.Daha çok bilgiyi aşağıdaki adresten LM016L'nin datasheetinden edinebilirsiniz.


http://pdf1.alldatasheet.com/datasheet-pdf/view/146552/HITACHI/LM016L.html



Kodlarımız;



#include <LiquidCrystal.h> // Kütüphane Gerekli
LiquidCrystal lcd(7, 8, 9, 10, 11, 12); //Arduino pinleri LCD için

void setup(){
  lcd.begin(16,2); 
}

void loop(){
  lcd.clear(); 
  lcd.setCursor(0,0); //komutu ile imleci istediğimiz karakter kutusunda konumlanmasını sağlıyoruz.İlk satırın ilk sütununa.
  
lcd.print("arduinotik"); // İmlecten itibaren bu yazı yazılacak
  lcd.setCursor(0,1); // 2.satırın ilk sütunundayız şimdi de
  lcd.print("dunyasi"); // 2.satıra bu yazı yazılacak
  delay(15000); //Bu kısım LCD'lerin frekans çalışma aralığı yüzünden giriliyor.
}


Yüklediğim resim biraz karışık bunun için özür dilerim.O yüzden bağlantıları tek tek yazdım devrenin kurulumunun kolay olması için. LCD'nin pinlerini esas aldım.

LCD'nin
1 - VSS (Toprak)
2-  +VDD
3-  Potansiyometrenin Ortası
4-  Arduino 7.pinine
5-  Toprak
6-  Arduino 8.pinine

11- Arduino  9.pinine
12- Arduino 10.pinine
13- Arduino 11.pinine
14- Ardunio 12.pinine
15- +VDD   
16-  Toprak

***Şemada 15. ve 16.pinlerin yerlerini ters yazmışım çok özür diliyorum. 15 VDD, 16 Toprağa bağlı olmalı.Potansiyometrenin

Sağ Bacak Toprak, Sol Bacak +VDD



22 Temmuz 2013 Pazartesi

Arduino - Analog Çıkışlara Hükmetmek (PWM & Ledler)

Daha önce dijital çıkışlara hakim olmuştuk. "1" ve "0" mantığı ile ledimizi yakmış ve söndürmüştük.Fakat hayatta ki ölçülebilen değerler sadece "1" ve "0" lardan oluşmuyor. Bu yazımda analog çıkışlarla ilgili çalışma yapacağız. Arduino UNO ve türevleri bu özelliği barındırmakta.




Bu özellik elbette ki tüm çıkış pinlerinde yok. Üzerinde ~ işareti bulunan pinleri kullanırsak analog özelliğini de kullanabiliriz.

Dijital çıkışlarda " digitalWrite(10, HIGH ), digitalWrite(10, LOW) " komutunu kullanıyorduk. Çıkışımız ya "1" ya da "0" oluyordu. Analog özelliğini kullanabilmemiz için ise aşağıdaki komuta ihtiyacımız olacak.

analogWrite( )

Öncelikle devremizi aşağıdaki gibi kuruyoruz.Tabi siz isterseniz üzerinde "~" işareti bulunan herhangi bir pini de kullabilirsiniz.

Kodlar ve açıklaması :


int led=9;
  
void setup()
{
  pinMode(led, OUTPUT);

}
void loop()
{
  int parlaklik;
  {
  for (parlaklik=0;parlaklik<=255;parlaklik+=5)
  {analogWrite(led,parlaklik);
  delay(100);
  }
  for(parlaklik=255;parlaklik>=0;parlaklik-=5)
  {
    analogWrite(led,parlaklik);
    delay(100);
  }
}
}


  • 9. pinimizi çıkış olarak ayarladık
  • Parlaklık ismiyle integer bir değer okuttuk.Bu değerimiz analog çıkış almamızı sağlayacak.
  • 8 bitlik dijital değeri analog değere çevirmiş olduk 2^8=256 formülünden analog çıkışımız 0-255 arasında değişecek.
  • Biz bu değeri 5'er 5'er 255'e kadar arttırdık ve sonra da 255'ten 5'er 5'er azalttık.
  • Böylece analog olarak ledimizin parlaklığını arttırmış ve azaltmış olduk.