ARDUINO DİJİTAL PİN KONTROLÜ
Ne yapacağız ? Arduino kullanarak cihazları istediğimiz sıraya göre, istediğimiz zaman aralıklarına göre ayarlı çalıştıracağız. Video 1
Nasıl yapacağız ? Sadece basit bir elektronik devre ve birkaç komuttan oluşan basit bir yazılım yazacağız. Çalışması istenilen cihazları birer LED ile simgeleyeceğiz. İlerleyen haftalarda röle ve kontaktör kullanarak gerçek bir motoru kontrol edeceğiz.
Amacımız Arduino’daki dijital çıkış komut mantığını ve dijital çıkış komutlarının öğrenilmesini sağlamak. Arduino programı yazmaya giriş yapmak. pinMode ve digitalWrite komutlarının öğrenilmesini sağlamak.
pinMode(); Komutu Kullanılacak olan pinlerin, Giriş yada çıkış olarak tanımlanmasını sağlar. Örnekler: pinMode(13,OUTPUT); => 13 Nolu pin Çıkış olarak tanımlandı. pinMode(10,INPUT); => 10 Nolu pin Giriş olarak tanımlandı.
pinMode(); Komutu Eğer bir pinden LED, röle motor gibi bir çıkış elemanı kontrol edilecekse o pin ÇIKIŞ olarak tanımlanmalıdır. pinMode(x,OUTPUT); Buton veya sensör gibi bir giriş elemanı kontrol edilecekse, o pin GİRİŞ olarak tanımlanmalıdır. pinMode(x,INPUT); x= Pin numarası
digitalWrite(); Komutu Çıkış olarak tanımlanan pinlerden, Lojik1 veya Lojik0 çıkışı verilmesini sağlar. digitalWrite(7,HIGH); => 7 nolu pinden 5V çıkış verildi ! (Lojik-1) digitalWrite(9, LOW); => 9 nolu pinden 0V çıkış verildi ! (Lojik-0)
delay(); Komutu Parantez içerisinde belirtilen süre kadar bekleme yapılmasını sağlar. Komutlar arasında bekleme yapmak için kullanılır. 1 saniye için 1000 yazılır. Örnek: 5 saniye için 5000 yazılır. 7,5 saniye için 7500 yazılır.
delay(); Komutu delay(1000); => 1 saniye bekler. delay(500); => 0.5 (Yarım) Saniye bekler. delay(5000); => 5 saniye bekler. Delay(4500); => 4.5 saniye bekler.
Aksi takdirde derleme olmaz. Arduino komutları yazılırken, büyük/küçük harfe dikkat edilmeli, komutlar doğru şekilde yazılmalıdır. Aksi takdirde derleme olmaz.
Arduino Programlarında Genel Yapı void setup() { } void loop()
Arduino Programlarında Genel Yapı Program ayar kısmı ve döngü kısmı olmak üzere 2 bölümden oluşur. Ayar ( setup ) kısmında giriş/çıkış ayarları yapılır. Ayar kısmına yazılan tüm işlemleri arduino sadece 1 kez yapar. Tekrar etmez.
Arduino Programlarında Genel Yapı Döngü ( loop ) kısmına ise sürekli olarak yapılması istenilen işlemler yazılır. Ayar ve döngü kısımlarının başlangıçlarında { parantezi açılır, bitişlerinde } parantezi kapatılır.
Örnek Bir Program ve Çalışması void setup() { pinMode(3,OUTPUT); pinMode(4,OUTPUT); digitalWrite(3,HIGH); delay(500); digitalWrite(3,LOW); delay(500); } void loop() { digitalWrite(4,HIGH); delay(1000); digitalWrite(4,LOW); delay(1000); }
Örnek Bir Program ve Çalışması void setup() { 3 nolu pin çıkıştır. 4 nolu pin çıkıştır. 3 nolu pini aktif et. Yarım saniye bekle. 3 nolu pini pasif et. Yarım saniye bekle. } void loop() { 4 nolu pini aktif et. 1 saniye bekle. 4 nolu pini pasif et. 1 saniye bekle. } SADECE 1 KEZ YAPAR ! SÜREKLİ TEKRAR EDER !
Örnek Programın Devresi
Uygulama – 1 7 nolu pine bağlı LED 1 kez 1 saniye ışık verip sönecek daha sonra 10 nolu pine bağlı LED 1 saniye aralıklarla sürekli yanıp sönecektir.
Uygulama – 1 void setup() { pinMode(7,OUTPUT); pinMode(10,OUTPUT); digitalWrite(7,HIGH); delay(1000); digitalWrite(7,LOW); } void loop() { digitalWrite(10,HIGH); delay(3000); digitalWrite(10,LOW); delay(1000); }
Uygulama – 2 Bu soruda istenen tüm işlemler sürekli tekrar edecektir. - 3 nolu pine bağlı olan LED ışık verip 1 saniye sonra sönecek. - Söndüğü gibi 6 nolu pine bağlı olan LED ışık verecek ve 2 saniye sonra sönecektir. - 6’ya bağlı olan LED sönünce 1 saniye beklenecek, 4’e bağlı olan LED ışık verecek ve 3 saniye sonra sönecektir. Gerekli devreyi kurunuz, programı yazınız.
Uygulama – 3 Bu soruda istenen tüm işlemler sürekli tekrar edecektir. - 4’e bağlı olan LED ile 5’e bağlı olan LED aynı anda ışık verecek. 3 saniye sonra ikisi de sönecek. - Söndüğü gibi 6 ve 7’ye bağlı olan LED’ler aynı anda ışık verecekler. 2 saniye sonra sadece 6’daki sönecek. - 1 saniye sonra 7’deki de sönecektir. Gerekli devreyi kurunuz, programı yazınız.
Uygulama – 4 8 adet LED bağlayarak, sürekli olarak karaşimşek şeklinde ışık vermesini sağlayan devreyi kurunuz ve programı yazınız. (Pinleri kendiniz belirleyiniz.) (Bekleme süreleri 200ms ile 1 sn arasında olabilir.) Video 2