Projeler Arduino Devreler
Örnek 1
Trafik Lambası Yapımı (Arduino Projeleri)
Merhaba, bu blog yazımızda basit ama eğlenceli bir projeyle devam edeceğiz. Arduino ile trafik lambası uygulamasını gerçekleştireceğiz. Bu proje için bize gerekli malzemeler şunlar;
1- 1 adet Arduino
2- 1 adet Breadboard
3- 3 adet 220 Ohm direnç
4- 1 adet Kırmızı LED
5- 1 adet Sarı LED
6- 1 adet Yeşil LED
7- Ve son olarak bağlantıları yapmak için bir miktar jumper veya kablo
Şimdi bu malzemeler ile bağlantıları nasıl yapacağımızı aşağıdaki şekilden inceleyelim.
Arduinonun 13, 12 ve 11. Pinlerini kullanarak uçlarına dirençleri bağlayacağız. Ardından kırmızı, sarı, yeşil şeklinde sıralı olarak ledlerin anot (+) uçlarını her bir direncin diğer ucuna bağlayacağız. Ledlerin katot (-) uçlarını tek bir noktada toplayarak arduinonun GND ucu ile birleştireceğiz. Bu şekilde istenilen devre düzeneğini elde etmiş olacağız.
Devremizi kurduktan sonra kodumuzu yazmamız için öncelikle algoritmamızı belirlememiz gereklidir. Bunun için trafik lambalarının nasıl yandığını düşünebiliriz. Yandaki şekil ile algoritmamızı daha iyi açıklayabiliriz ve kodumuzu bunun üzerine kurulu bir düzen ile yazabiliriz.
Bilindiği gibi öncelikle kırmızı ışık yanacaktır. Ardından sarı ışık kırmızı ışıkla birlikte yanacak ve ardından yeşil ışık yanacaktır. Sonrasında ise sarı ışık tek başına yanacak ve tekrar kırmızı ışığa dönecektir. Bunu bir döngü şeklinde devam edecek şekilde yapacağız.
Bu işlemleri yaparken süreleri de göz önünde bulundurmak zorundayız. Örneğin kırmızı ışık ve yeşil ışık süreleri eşit olabilir ancak sarı ışığın daha bir kısa sürede belirlemeliyiz.
Kodumuz gösterilen döngüye göre aşağıdaki gibi olacaktır. Kısaca açıklamasını yapacak olursak hiçbir kütüphane yüklemeden sadece pin çıkışlarımızı tanımlıyoruz. 13, 12 ve 11. Pinlerimizi belirlediğimiz için bunları çıkış olarak pinMode fonksiyonu ile tanımlıyoruz. Ardından loop döngümüze geliyoruz ve burada öncelikle kırmızı ışığı yakıp diğer ledleri söndürüyoruz ve bu işlem yani kırmızı ışık süresini 3 saniye yanık kalmasını sağlıyoruz. Kırmızı ve sarı ışığı aynı anda HIGH yapıyoruz ve gerçek hayatta da sarı ışık kısa sürdüğü için bunu 1 saniye olarak yanık bırakıyoruz. Daha sonra yeşil ışığı yakıyoruz ve diğer ışıkları söndürme yani LOW komutunu veriyoruz bu işlemi de kırmızı ışıkta olduğu gibi 3 saniye yapıyoruz. Ve son olarak tekrar sarı ışığı bu sefer tek başına yanacak şekilde 1 saniyelik süreyle yakıyoruz. İşlemler Loop döngüsünde olduğundan en başa dönerek tekrar kırmızı ışık yanacaktır ve bu işlem sonsuza kadar devam edecektir.
//********************************************************************************
void setup()
{
pinMode(13, OUTPUT); // KirmiziLED
pinMode(12, OUTPUT); // Sari LED
pinMode(11, OUTPUT); // Yesil LED
}
void loop()
{
// Kırmızı
digitalWrite(13, HIGH);
digitalWrite(12, LOW);
digitalWrite(11, LOW);
delay(3000); // 3 saniye bekleme süresi
// Kirmizi-Sari
digitalWrite(13, HIGH);
digitalWrite(12, HIGH);
digitalWrite(11, LOW);
delay(1000); // 1 saniye bekleme süresi
// Yesil
digitalWrite(13, LOW);
digitalWrite(12, LOW);
digitalWrite(11, HIGH);
delay(3000); // 3 saniye bekleme süresi
// Sari
digitalWrite(13, LOW);
digitalWrite(12, HIGH);
digitalWrite(11, LOW);
delay(1000); // 1 saniye bekleme süresi
}
//****************************************************************************
Eğer mevcut malzemeler elinizde yok ise TinkerCad gibi online simülasyon sitelerinden bu gibi basit projeleri online olarak deneyebilir kodta değişiklikler yaparak daha iyi anlamanıza yardımcı olabilirsiniz.
Ayrıca bu projeyi sitemizde bulunan “LED Trafik Işıkları Modülü – Trafik Lambası” ile de gerçekleştirebilrsiniz!
İster LEDler ile ister sizin için sunduğumuz trafik lambası modülü ile bu eğlenceli projeyi yaparak bizimle paylaşırsanız sosyal medya sayfalarımızda paylaşmaktan memnuniyet duyarız.
Bu kısa ve eğlenceli projemizde bizlerle olduğunuz için teşekkürler bir sonraki çalışmalarda görüşmek üzere!
Örnek 2
Arduino Kodları
Arduino Dijital Giriş/Çıkış Komutları

Dijital giriş/çıkış pinlerinden herhangi birini giriş ya da çıkış olarak tanımlamak için kullanılır. Pin denilen alana dijital pinlerden hangisini kullanacaksak onun numarası yazılır. Mode ile ifade edilen alana ise giriş mi? Çıkış mı? Olacağı yazılır. Ancak İngilizce olarak yazılmalıdır. Giriş ise INPUT, çıkış ise OUTPUT yazılır.
pinMode(13, OUTPUT);
Açıklama:
pinMode(pin, mode) komutu yukarıda anlatılan program bloklarından Void setup(){……} kısmında süslü parantezlerin arasında kullanılmalıdır. Çünkü Arduino’nun kurulumuna ait bir komuttur.
Pin tanımlama alanına dijital pinlerden herhangi biri yazılabilir. Örneğin Arduino Uno için; 0’dan 13’e kadar 14 adet dijital giriş/çıkış olarak kullanılabilen pinler mevcuttur. Bunlardan herhangi biri yazılabilir.
Pin numaraları rakam olarak yazılabileceği gibi, bu sayılara bir isim verilip, pin yerine o isim de kullanılabilir. (pin numaralarına isim atama, ilgili komutlar anlatılırken bahsedilecektir.)
Mode ile belirtilen alana output yazıldığı için bu örnekte 13 numaralı pin, çıkış olarak kullanılacaktır.
Komutun sonunda (;) noktalı virgül kullanılmalıdır.
digitalWrite(13, 1);
dijital yazma anlamına gelen bu komut, çıkış olarak belirlenen pine değer aktarmak(yazmak) için kullanılır.
Açıklama:
İki farklı argüman vardır. İlki dijital yazma işleminin yapılacağı pin belirlenir. İkincisi ise yazılacak değerin belirlenmesi. Yazılacak değer 1 veya 0 olabilir.
Yazılacak değer 1 veya 0 olarak yazılabileceği gibi 1 = High, 0 = Low olacak biçimde High veya Low da yazılabilir.
pinMode komutu ile hangi pinler dijital çıkış olarak tanımlandı ise o pinlere yazma işlemi yapılabilir. Giriş olarak tanımlanan bir pine yazma işlemi yapılamaz.
Örneğin 13. Pine led bağlı olduğunu düşünürsek ve yukarıda verilen şekilde komut çalıştırılırsa; 13. Pine bağlı olan led 1 olacaktır ve ışık verecektir.
digitalWrite(13,0); şeklinde yazılırsa yanan led sönecektir.
Bu komut Loop() bloğunda yer almalıdır. Sonunda da (;) noktalı virgül kullanılmalıdır.
digitalRead(5);
dijital okuma anlamına gelen komut belirtilen pinden dijital olarak okuma işlemi yapar.
Açıklama:
Read okuma işlemi olduğundan bu dışarıdan gelen bilgiyi okumak biçiminde olmalıdır.
Burada dikkat edilecek husus şudur; eğer okunan değer 1 ise “digitalRead()” komutunun geri getirdiği değer 1 olur. Yani okuduğu değer 1 ise digitalRead(5) = 1 olur, okuduğu değer 0 ise digitalRead(5) = 0 olur.
Dijital okuma işlemi pinMode komutu ile Setup kısmın da giriş olarak tanımlanan pinden okuma işlemi yapabilir.
Belirlenen pine gelen dijital 1 veya 0 bilgisini algılayabilir.
Arduino, PIR Sensör ve RC522 RFID Modülü ile Güvenlik Sistemi

Herkese merhabalar, bu yazımızda Arduino, PIR sensör ve RC522 RFID Modülü kullanarak kendi kapı alarmımızı yapacağız. Yaptığımız alarm, bir butona basarak aktifleştirilebilecek ve aktifken hareket algıladığında belirli bir süre boyunca kart okutulmasını bekleyecek. Doğru kartın okutulmaması durumunda ise buzzer ötmeye başlayacak. Proje için gerekli malzemelerin listesi şu şekilde:
- Arduino Uno Kart
- HC-SR501 Ayarlanabilir IR Hareket Algılama Sensörü – Pir
- RC522 RFID NFC Modülü, Kart ve Anahtarlık Kiti (13.56 MHz)
- 4 Pinli Push Buton – Siyah (6x6x5 mm)
- Jumper Kablolar
- Breadboard
- 10K Ohm Direnç
- Buzzer
Bu yazımızda kullanacağamız sensör ve modüller hakkında detaylı yazılar blogumuzda mevcut. Eğer bu modüller ve sensörler hakkında yeterli bilgi sahibi değilseniz bu yazıları inceleyerek kullanacağımız malzemeleri daha yakında tanımanız yararınıza olacaktır. RC522 RFID Modülü, PIR Sensörü ve Buton Kullanımı ile ilgili yazılarımıza bu linklerden ulaşabilirsiniz.
Devre Kurulumu
Projede kullanacağımız malzemeleri nasıl birbirine bağlayacağımızı görmek için aşağıdaki devre şemasını inceleyebilir ve siz de devrenizi kurabilirsiniz.

Çalışma Mantığı ve Kodlama
Devreyi kurduğumuza göre sıra kodu yazmaya geldi. Ancak kodlamaya geçmeden önce, kodun akışını daha rahat anlayabilmeniz adına projemizin işleyişinin üzerinden geçmek istiyorum.
- Başlangıçta alarm pasif halde olur.
- Kullanıcı alarmı aktifleştirmek için butona basar.
- Kullanıcının uzaklaşması için 10 saniye beklenir ve ardından alarm aktif hale gelir.
- Alarm aktifken sensör tarafından hareket algılandığında kullanıcının doğru kartı okutması için 10 saniye beklenir.
- Bu süre içerisinde doğru kart okutulursa alarm pasif hale geçer, aksi halde buzzer ötmeye başlar.
Alarmın işleyişi bu şekilde. 10 saniye olarak belirtmiş olduğum süreleri kodda gerekli düzenlemeyi yaparak istediğiniz gibi değiştirebileceğiniz unutmayın😉
Projenin çalışması için gereken kod aşağıda. Kodun nasıl çalıştığını anlamak için satırların yanlarında yazan açıklamaları incelemeyi ihmal etmeyin. Kodda kullandığımız MFRC522 kütüphanesini buradan indirebilir, Arduino programında Taslak > library ekle > .ZIP kitaplığı ekle seçeneklerini takip ederek kurabilirsiniz.
Önemli Not: Projenizin düzgün çalışması için koddaki byte ID değişkenini kendi yetkilendirmek istediğiniz kartın ID’si ile değiştirmeniz gerekmektedir. Elinizdeki kartların ID’sini öğrenmek için buradan indirebileceğiniz kodu Arduino’ya yükleyebilirsiniz. Okuyucuya kartı yaklaştırdığınızda ID’sı Seri Port ekranında yazacaktır.



Kodu Arduino’ya yükleyerek projeyi tamalayabilirsiniz. Pek çok önemli komponenti birlikte kullanarak oluşturmuş olduğumuz bu projeyi yaparak hem eğlenmiş hem de yeni şeyler öğrenmiş olduğunuzu umut ediyorum. Ayrıca proje geliştirilmeye oldukça açık. Örneğin bir ekran ekleyerek alarmın durumunu ve kalan süreyi yazdırabilir veya ledler ekleyerek görsel bir uyarı sunmasını da sağlayabilirsiniz. Bu süreçteki tüm soru ve görüşlerinizi aşağıdaki Yorumlar kısmında belirtmeyi unutmayın. Daha sonraki yazılarda görüşmek üzere, hoşçakalın…