Arduino Buton ile Led Yakma

Daha önce bahsettiğimiz gibi robotik sistemler giriş/çıkış (I/O -Input/Output) sistemleridir. Robotik bir sistem çevreden belirli sinyaller alır bunları kendi içerisinde değerlendirir ve sonucunda da başka bir birime (eyleyiciler) çıkış olarak bir iş yaptırır. Butonlar da giriş elemanıdır Arduino'ya dış ortamdan veri gönderir. Bu bize basit bir şekilde sensör etkisi sağlayarak algoritmalarımızı geliştirmemize yardımcı olacaktır. Yapacak olduğumuz ilk uygulama bir buton ile bir ledi yakmak. Bu örnek bu kadar kolay görünse de bizlere ufuk açacaktır. Çünkü bu basit koşul durumu robotik sistemlerin temelidir.

İlk Programımızı yazalım. Yapmak istediğimiz şey bir butona basıldığında ledin yanması buton bırakıldığında tekrar sönmesi, benzer bir şekilde gaza basıldığında arabanın gitmesi bırakıldığında durması gibi türevleri düşünülebilir. Ki bu örnek böyle diğer örnekleri pekiştirsin diye yapılıyor.



int butonPin = 5;  // Butonu bağladığımız Pini 5 olarak ayarladık.
int ledPin =  8;     // Ledi bağladığımız Pini 8 olarak ayarladık.
int butondurum = 0; // Butonun durumunu atadığımız bir değişken tanımladık.
   void setup() 
   {
        pinMode(ledPin, OUTPUT);     // Led çıkış olarak ayarlandı. 
        pinMode(butonPin, INPUT);     // Buton giriş olarak ayarlandı.
   }
   void loop()
  {
        butondurum = digitalRead(butonPin); // Buton pininden dijital okuma işlemi
 
   if (butondurum == HIGH)  // Butona basılmış ise durumu
  {     
        digitalWrite(ledPin, HIGH);  // Ledi yak .
  } 
  else // Butona basılmamış ise durumu
  {
         digitalWrite(ledPin, LOW); // Ledi söndür.
  }
}


8 yorum

Click here for yorum
Temmuz 04, 2016 ×

Dirençle uğraşmadan ben direk 13. pini yakıp söndürüyorum daha kolay oluyor. Bu resimi nasıl çiziyorsunuz acaba? DEvre elemanları felan çok iyi duruyor?

Reply
avatar
mvaslan
admin
Temmuz 07, 2016 ×

Fritzing ile yapıldı o resim...
http://fritzing.org/home/

Reply
avatar
Baran
admin
Mart 23, 2017 ×

SAOL REYİZ SON MADDEYİ ATLAMIŞIM YAZDIM OLDU

Reply
avatar
Adsız
admin
Mayıs 11, 2017 ×

Hocam merhaba. Yazınızı okudum başarılı bir şekilde uyguladım. Öncelikle bundan dolayı teşekkür ederim. Ancak şöyle bir uygulama yapmak istiyorum. Butona bir defa basıp bıraktıktan sonra ledin örneğin 10 saniye yanması ve sonrasında sönmesi. Ya da butona bas çek yapıldıktan sonra motorun bir tam tur dönmesi gibi. Yardımcı olursanız sevinirim...

Reply
avatar
mvaslan
admin
Mayıs 11, 2017 ×

Butonun kontrolüni yaptığın if kalıbının içine 10 sn delay verek led yakıp söndürme kodu yaz.
if(Koşul)
{
LedYAK; // Burada senin kodun geçerli hangi pin kullanmışsan ona göre..
delay(10000);
LedKapat;
}

Motora tam tur attırma mevzusuna gelince motorunun cinsi önemli. Step motor ise butana basıldıktan sonra tam bir tur atacak şekilde komut yollamalısın. Step motorun adım sayısına göre. DC motorda tam bir tur attırabilmek için yardımcı ekipmana ihtiyacın olabilir. Encoder gibi. Tam tur atınca uyarı alıp duracak. Tabi burada mekanik şartlarda göz önüne alınmalı. Çünkü bir motor bir tam tur atmadan yeterince atalet kazanmışsa. sen ona voltaj vermesen de dönmeye devam edecektir. Buna dikkat etmelisin. Düşük hızlarda dönmesi daha avantajlı.

Reply
avatar
Adsız
admin
Ekim 28, 2017 ×

Aslında butona basıldı mı diye kontrol etmemize gerek yok. digitalWrite fonksiyonu zaten bu işi yapıyor. Yani if komutu ile durumu kontrol etmek yerine aşağıdaki kodu kullanabiliriz.

digitalWrite(ledPin, butondurum);

Reply
avatar
Unknown
admin
Aralık 24, 2017 ×

Aynı işlemi butonla değil de anahtarla yapmak istiyorum. Kodda ve bağlantılarda nasıl bi değişiklik olur acaba?

Reply
avatar
Unknown
admin
Aralık 24, 2017 ×

Aynı işlemi butonla değil de anahtarla yapmak istiyorum. Kodda ve bağlantılarda nasıl bi değişiklik olur acaba?

Reply
avatar