Posted by : MC 3 Kasım 2015 Salı

Merhabalar,
Bu bölümde arduinonun genel amaçlı dijital giriş çıkış pinlerini kullanarak sıralı led yakma projesi gerçekleştireceğiz.


İhtiyacımız olan malzemeler :

1 adet arduino uno
birkaç adet led
birkaç adet min 175 ohm direnç
1 adet breadboard
yeterli miktarda atlama kabloları

Yukarıdaki şemada arduino ile ledlerimizin bağlatıları yer almaktadır.Dirençlerimizi arduino tarafından ledlerin fazla akım çekmesini engellemek amacı ile kullanıyoruz.Dijital pinlerimizden 8 den 12 ye kadar olan kısmı çıkış olarak atayacağız ve ledlerimizi bu dijital çıkışlar üzerinden kontrol edeceğiz.

Peki nedir dijital giriş çıkış?
Dijital çıkış programlama yapısı içerisinde çıkış olarak tanımladığınız pinin, sizin programlama içerisinde high (1) ya da low(0) yaptığınız anda çıkış olarak bir voltaj verip vermemesi durumudur.

Yine eğer ki ilgili pinimiz giriş olarak tanımladı ise bu durumda da girişi programsal olarak okuruz ve voltaj gördüğümüz anda logic 1 göremediğimiz anda ise logic 0 olarak pin durumunu almış oluruz.

Arduino genel olarak bazı pinlerini bizlere pwm olarak sunabildiği gibi (PWM nedir ileri zaman konularımızda işleyeceğiz) bu pinleri ister giriş, istersek de çıkış olarak tanımlamamıza olanak sağlamaktadır.

Peki bunu nasıl sağlarız?
Bir örnekle ele alalım :
8 nolu pinimizi dijital çıkış olarak atamak istiyoruz.Yani biz programda HIGH ol dediğimizde çıkışında voltaj versin,LOW ol dediğimizde ise çıkışında voltaj oluşmasın

Arduino bize bunun kontrolünü sağlamak için pinMode() fonksiyonunu veriyor.
PinMode(8,OUTPU);// 8 nolu pini output yap
PinMode(8,INPUT); // 8 nolu pini input yap

Peki input ve outpu olarak bir pinin nasıl tanımlanacağını öğrendik.Peki biz bu pinleri program içerisinde nasıl kontrol ediyoruz?
Yine arduino ide bize digitalWrite();  ve digitalRead(); fonsiyonları ile yardımcı oluyor.

digitalWrite(8,HIGH); // 8 nolu çıkış pinine 1 yazdır yani o pine voltaj ver
digitalWrite(8,LOW);// 8 nolu çıkış pinine 0 yazdır yani voltajı kes
digitalRead(8);// 8 nolu dijital giriş pinini oku

Burada dikkat edilmesi gereken dijital giriş pini okunurken digitalRead(); fonksiyonu size o pinin durumunu söyler.Buda ne demek siz buradan aldığınız veriyi bir değişken içerisine atarak kullanabilirsiniz.Bunu bir sonraki yazımızda bu yazımızdaki örneğimize buton kontrolü ekleyerek açıklayacağız.

Diğer dikkat edilmesi gereken husus ise siz bir pini giriş ya da çıkış olarak ayarlamak için void setup() fonksiyonu içerisinde pininizin durumunu pinMode() fonksiyonu ile belirtmeyi unutmamalısınız.

Bizim projemize gelecek olursak, biz pinlerimizi dijital çıkış olarak kullanacağız ve ledlerimizin kontrolünü sağlayacağız.


Yukarıdaki şema bize arduinonun fiziksel olarak bağlantı durumunu göstermektedir.
Gelelim kodlarımıza

int ledler[]={8,9,10,11,12};// ledlerimizin bağlı olduğu pinleri bir dizi şeklinde tanımladık
int sayac=0;//programda ledlerimizi sırası ile yakacağız ve bu sayaç bize yardımcı olacak
int zamanlama=75;// ledlerimizin belirli bir zaman için yanıp sönmesini istiyoruz

void setup()// arduinonun başlangıç değerleri ve pin durumlarının tanımladığı standart fonksiyon
{
     for (sayac=0;sayac<5;sayac++)// ledimizin bağlı olduğu herbir pini output olarak tanımlıyoruz
    {
            pinMode(ledler[sayac],OUTPUT);
    }
}

void loop()
{
     for(sayac=0;sayac<5;sayac++)
     {
          digitalWrite(ledler[sayac],HIGH);// ilgili led yakıldı
          delay(zamanlama);
          digitalWrite(ledler[sayac],LOW);// ilgili led söndürüldü
          delay(zamanlama);
     }
}

Yukarıdaki örnekte her 150ms de bir (75 ms yanık kalacak,75ms sönük kalacak) 8 nolu pinden 12 nolu pine kadar olan ledlerimiz sırası ile yanıp sönecektir ve void  loop bu durumun sürekliliğini sağlayacaktır.

Bir sonraki yazımızda bu örneğimize nasıl buton kontrolü ekleyeceğimizi göstereceğiz.

yorumlarınız bizim için önemli

Bültene abone ol | Yorumlara abone ol

ELEKTRO BLOGGER A HOŞGELDINIZ

ARAMA YAP

EN COK OKUNANLAR

- Copyright © ELEKTRO-BLOGGER Blogger