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.




Hiç yorum yok:

Yorum Gönder