Bu derste,
Öncelikle, bu derste hangi malzemeleri kullanacağımızı görelim.
Arduino Uno R3 | 1 Adet Kırmızı LED | 1 Adet 150Ω Direnç | 1 Adet 1kΩ Direnç | Bağlantı Kabloları (Jumper) | Devre Tahtası (Breadboard) |
---|---|---|---|---|---|
Program yazma kısmına geçmeden önce gerekli devreye bir göz atalım. Bu devre için sadece iki elektronik parça kullanıyoruz: bir adet LED ve bir adet 150 Ω direnç. Kuracağımız devrenin şemasını aşağıda görebilirsiniz. Bu devre ile LED Yakma yazımızdaki devre birbirine çok benziyor. Bu ikisinin tek farkı, burada LED’i güç kaynağına değil de Arduino’nun dijital portuna bağlamamız.
Devre Şeması
LED’i yakabilmek için, Arduino’nun dijital portunda 5V gerilim oluşur. Bu voltaj tek bir LED için biraz yüksek bir değer. LED üzerine düşen voltajı düşürmek ve aynı zamanda akımı sınırlandırmak için bir de direnç kullanıyoruz.
Kırmızı LED normal parlaklığında yanarken üzerindeki voltaj düşümü 2V’tur (Bknz. LED’in Çalışma Voltajı). 5V’un geriye kalan 3V’u direnç üzerinde kalır. Böylece hem direnç hem de LED’ten geçen ortak akım 3V/150Ω=20mA olur. Daha yüksek bir direnç takmak, akımı azaltıp LED’in daha sönük yanmasını sağlayacaktır. LED’in parlaklığı ile ilgili detaylı bilgiyi LED’in parlaklığı bağlantısında bulabilirsiniz.
Bu devrede LED’in yönüne dikkat etmeliyiz. LED, yönü olan bir elektronik parçadır. Yani doğru yönde takmazsak LED yanmaz. LED’in yönünü bulmak için bir kaç yöntem bulunmakta (detaylar için LED BACAKLARI - ANOT VE KATOT dosyasını okuyabilirsiniz.) ama bunlardan en kolayı bacakların uzunluklarına bakmak.
LED'in Bacakları
LED’lerin bacaklarından biri diğerinden biraz daha uzun olur. Uzun olan bacak anottur, kısa olan ise katot. LED’in yanması için akımın anottan katota doğru akması gerekir. Buradaki güç kaynağımız Arduino’nun portu olduğundan, LED’in anot bacağını (uzun olan bacağı) Arduino’nun portuna bağlamalıyız. LED’in diğer bacağını ise direnç tarafına bağlamalıyız.
LED Yakma Devresi
Yukarıda kurduğumuz gerçek devreyi görebilirsiniz. Arduino üzerinde devre kuracak bir mekanizma olmadığı için, LED ve direnci küçük bir devretahtası üzerine yerleştiriyoruz. LED’in anot bacağı ve Arduino’nun 13. dijital portunu birbirine bağlamak için iki tarafı da erkek olan bir bağlantı kablosu kullanıyoruz. LED’in katot tarafı ile direncin bir bacağını devretahtasında aynı satırdaki farklı deliklere sokarak birbirine bağlamış oluyoruz . Direncin diğer bacağını ise, gene iki tarafı da erkek olan bir bağlantı kablosu ile Arduino’nun GND çıkışına bağlıyoruz.
Gerekli devreyi öğrendiğimize göre artık programlama kısmına başlayabiliriz.
Bu kısımda üç şey yapacağız:
İlkiyle başlayalım. Bir önceki derste, “Blink” örneğini Arduino’ya yüklemeyi öğrenmiştik. Blink örneğinin kodlarını aşağıda görebilirsiniz.
/*
Blink
Turns on an LED on for one second, then off for one second, repeatedly.
Most Arduinos have an on-board LED you can control. On the Uno and
Leonardo, it is attached to digital pin 13. If you're unsure what
pin the on-board LED is connected to on your Arduino model, check
the documentation at http://www.arduino.cc
This example code is in the public domain.
modified 8 May 2014
by Scott Fitzgerald
*/
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin 13 as an output.
pinMode(13, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(13, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
Bu örneği Arduino’ya tekrar yükleyip aşağıdaki devreyi kuralım. Eğer, en son bu programı yüklediyseniz tekrar yükleme yapmanıza gerek yok, çünkü gücünü kezseniz dahi yüklediğiniz program Arduino’dan silinmez. Örneğin, bir yıl sonra ilk kez güç verdiğinizde gene içine en son yüklediğiniz programı çalıştıracaktır.
LED Yakma Devresi
Böylece Arduino ve devre elemanlarından oluşan ilk devremizi kurmuş oluyoruz. Bu örneği çalıştırdığımızda sadece Arduino üzerindeki küçük LED değil, aynı zamanda devre tahtasına yerleştirdiğimiz LED’de yanıp sönecektir.
Bu program yüklüyken, LED’in 13 numaralı dijital portla bağlantısını keselim. LED’i 12 numaraya bağlayıp yanıp yanmadığına bakalım. Aynı şeyi diğer numaralar için de tekrarlayabilirsiniz.
Programda üç satırda 13 sayısını görmekteyiz.
Üç satırda da 13 yerine 12 yazıp, programı tekrar Arduino’ya yükleyelim. Devrede bir değişiklik yapmadıysak, LED’in yanıp sönmeyi bıraktığını görürüz. Çünkü, artık çıkışı 13 numaradan değil, 12 numaradan veriyoruz. LED’in yanıp sönebilmesi için uzun bacağı 12 numaraya bağlamalıyız.
12. Port ile LED Yakma Devresi
5’inci dijital porta bağlı bir LED’in yanıp sönmesini sağlayacak şekilde programı değiştirip, Arduino’ya yükleyin. LED’in uzun bacağını 5 numaraya bağlamayı unutmayın.
Son olarak, direnç değerini değiştiriyoruz. Şu ana kadar LED yakmak için 150 Ω direnç kullanmıştık. Şimdi programı değiştirmeden, 150 Ω yerine 1 kΩ direnç kullanalım. 1 kΩ daki k, bin sayısını ifade eder (metre, kilometre ilişkisindeki gibi), yani 1 kΩ = 1000 Ω'dur, bir önceki kullandığımız direncin yaklaşık yedi katı. Bu da, akıma karşı yedi kat fazla direnç gösterileceğini ve akımın bir öncekinden çok daha az geçeceğini gösterir. Programda bir değişiklik yapmadığımız için LED yanıp sönmeye devam edecektir. Yalnız, LED üzerinden geçen akım azaldıkça, parlaklığı da azalır. Bu nedenle 1 kΩ direnç kullanıldığında LED'in çok daha sönük yandığını görürüz. Fotoğraftan çok belli olmuyor olabilir, ama denediğinizde siz de aradaki farkı rahatlıkla görebilirsiniz.
1 kΩ Direnç Kullanıldığında
Devremizde 4.7 kΩ'luk direnç kullanıp, LED’in parlaklığındaki değişime bakalım.
Bir sonraki dersimizde yukarıda yükleyip denediğimiz programı satır satır inceleyip, hangi komutun ne anlama geldiğini, hangi satırın ne işe yaradığını ve tüm Arduino programlarında olması zorunlu kısımları öğreneceğiz. Sonunda, Arduino programlamaya başlıyoruz :).
DERS 4-ARDUINO PROGRAMLAMAYA GİRİŞ
Arduino programlamanın temellerini 4. derste atıyoruz. Bir portu giriş veya çıkış yapmayı, dijital bir porttan veri göndermeyi ve bazı Arduino fonksiyonlarını 4. derste öğreniyoruz.