Ders 98-8: Arduino ile Buton ve LED'lerle Yürüyen Işık
Bu proje, bir basma düğmesine her bastığınızda bir adım ilerleyen bir "yürüyen ışık" yapmayı gösterir. Kendi zamanlayıcısında çalışan bir ışık yerine doğrudan, dokunsal kontrol elde edersiniz: her basış, yanan LED'i bir konum ileri taşır ve son LED'den sonra başa döner. Bu, Arduino öğrenimindeki en kullanışlı yapı taşlarından biridir, çünkü size dijital bir girişi (düğme) dönen bir durum makinesiyle (hangi LED'in yanmakta olduğu) nasıl birleştireceğinizi öğretir — sürekli yeniden kullanacağınız bir kalıptır.
Bu kalıbı anladığınızda, aynı mantık çok çeşitli gerçek projelere güç verir. İşte bununla yapabileceğiniz birkaç pratik fikir:
- Her basışın bir sonraki seçeneği vurguladığı bir cihazdaki menü seçici.
- Bir makine veya süreç için sıralı adım göstergesi (adım 1, adım 2, adım 3...).
- Bir düğmeyle elle ilerlettiğiniz bir puan veya seviye göstergesi.
- Bir aydınlatma denetleyicisi için "sonraki kanal" veya "sonraki mod" göstergesi.
- Oyuncuların sırayla bir sonraki lambayı yaktığı basit bir oyun veya bilgi yarışması zili.
- Her basışın sırayla bir sonraki çıkışı etkinleştirdiği bir röle veya yük sıralayıcısı.
Otomatik çalışan bir ışığa kıyasla temel avantaj kontroldür: siz basana kadar hiçbir şey olmaz, böylece ışık yalnızca siz karar verdiğinizde ilerler. Video ayrıca aynı açma-kapama ve sıralama fikrinin yalnızca LED'leri değil, bir AC lambayı açmak veya bir motoru kontrol etmek için bir röleyi de sürebileceğini belirtir (videoda 19:52'de).
Donanım ve Bileşenler
Parça listesi kısa ve ucuzdur:
- Bir Arduino kartı (Uno, Nano, Mega veya uyumlu herhangi bir kart).
- Beş LED — 5 mm veya 3 mm, istediğiniz renklerde.
- Beş akım sınırlama direnci, 200 Ω ile 1000 Ω arası (videoda 1 kΩ kullanılır).
- Bir basma düğmesi anahtarı (anlık dokunmatik anahtar idealdir).
- Bir breadboard ve birkaç DuPont jumper kablo.
LED'ler hakkında kısa bir not: katot daha kısa bacak ve düz kenarlı taraftır, anot ise daha uzun bacaktır (videoda 03:13'te). Direnç değeri kritik değildir — daha yüksek bir direnç LED'i yalnızca daha sönük yapar, bu nedenle yaklaşık 300 Ω ile 1000 Ω arasındaki her şey sorunsuz çalışır (videoda 05:33'te).
Bağlantı Kılavuzu
Bağlantılar temelde standart beş LED'li yürüyen ışıkla aynıdır, yalnızca bir basma düğmesi eklenmiştir. Her LED'in anodu kendi Arduino pinine bağlanır ve her katot kendi direnci üzerinden breadboard'daki ortak toprak hattına bağlanır. Bu yapımda LED'ler 3, 4, 5, 6 ve 7 numaralı pinlere bağlanır (videoda 31:37'de). Basma düğmesi, bir bacağı toprağa ve diğer bacağı 2 numaralı pine gelecek şekilde breadboard'a yerleştirilir — kodun düğme için kullandığı pinin aynısı (videoda 37:04'te).
Kod Arduino'nun dahili pull-up direncini etkinleştirdiği için düğmede harici bir direnç gerekmez. Düğmeye basılmadığında pin HIGH okur ve bastığınızda pin toprağa çekilir ve LOW okur (videoda 14:02'de).
Kod Açıklaması
Tam program bu makalenin altında mevcuttur. Burada asıl değiştirmek isteyeceğiniz kısımlara odaklanıyoruz.
Sketçin başında her LED ve düğme bir pine atanır. Yapımı kendi bağlantınıza uyacak şekilde özelleştirdiğiniz yer burasıdır:
const int pushButtonPin = 2; // push button pin
const int LED1 = 3;
const int LED2 = 4;
const int LED3 = 5;
const int LED4 = 6;
const int LED5 = 7;
int LED_ON = LED1; // which LED is currently lit
LED_ON değişkeni projenin kalbidir. Hangi LED'in o anda yanmakta olduğunu hatırlar ve LED1 ile başlar. Düğmeye her bastığınızda kod LED_ON'u dizideki bir sonraki LED'e ilerletir ve öncekini söndürür, böylece aynı anda yalnızca bir LED yanar.
Her basıştan sonra ayrıca küçük bir gecikme vardır:
delay(200); // debounce / give the user time between presses
Bu 200 milisaniyelik duraklama, tek bir fiziksel basışın birden çok basış olarak algılanmasını önler. Parmağınız titriyorsa veya düğme çok hassas geliyorsa bu sayıyı artırın; daha hızlı yanıt istiyorsanız azaltın. Çok düşük ayarlamanın ışığın beklenmedik şekilde ileri atlamasına neden olabileceğini unutmayın (videoda 41:20'de).
Ana mantık loop() içinde yer alır. Butonu okur ve yalnızca butona basıldığında (LOW okunduğunda) ışığı ilerletir. Dizi, LED1'den LED2'ye, LED3'e ve böyle devam ederek ilerlemek için bir dizi if / else if kontrolü kullanır ve sonuncudan sonra tekrar LED1'e döner. Yönü veya LED'lerin sırasını değiştirmek isterseniz, düzenlenecek blok burasıdır — hangi pinin hangisini takip ettiğini yeniden atamanız yeterlidir.
Canlı Proje ve Gösterim
Kodu yükledikten sonra butona basmak ilk LED'i yakar; bırakmak o LED'i açık bırakır. Bir sonraki basış ışığı ikinci LED'e, ardından üçüncü, dördüncü ve beşinciye taşır ve sonraki basış birinciye döner — sürekli bir döngü (videoda 40:22'de).
200 milisaniyelik gecikmenin güzel bir yan etkisi şudur: butonu basılı tutarsanız, ışık her 200 milisaniyede bir kendi kendine ilerlemeye devam eder ve buton basılı tutulduğu sürece projeyi etkili bir şekilde otomatik yürüyen ışığa dönüştürür (videoda 42:07'de). Butonu bırakın ve mevcut LED'de durur. Bu size tek bir butondan hem manuel adımlama hem de eller serbest çalıştırma olanağı verir.
Işığın hiç buton olmadan otomatik çalışmasını tercih ederseniz, bu ayrı bir yapımdır. Otomatik sürüm Ders 98-7: Arduino ve 5 LED Kullanarak Yürüyen Işık bölümünde ele alınmıştır.
Bu videodaki ilgili projeler
- Ders 98-1: Arduino ile Bir LED Nasıl Açılıp Kapatılır
- Ders 98-2: Arduino ile Buton Kullanarak Bir LED Nasıl Açılıp Kapatılır
- Ders 98-3: Arduino ile Buton Kullanarak Aç/Kapa LED Nasıl Yapılır
- Ders 98-4: Arduino Kullanarak LED Işığını Solma Efektiyle Yakma: Parlaklık Kontrolü
- Ders 98-5: Arduino Kullanarak Butona Basıldığında Işığı Solma Efektiyle Yakma
- Ders 98-6: Arduino ile Tahterevalli LED Oyunu
- Ders 98-7: Arduino ve 5 LED Kullanarak Yürüyen Işık
- Ders 98-9: Arduino Kullanarak LED Gerilim Seviye Ölçer veya potansiyometre ile yürüyen ışık
- Ders 98-10: Arduino Trafik Işığı
Bölümler
- [00:00] 10 Arduino LED projesine genel bakış
- [01:22] Arduino adım adım kursuna giriş
- [02:29] LED'leri anlama: semboller, polarite ve pinler
- [03:49] LED akım sınırlama direncinin hesaplanması
- [30:47] 5 LED ile yürüyen ışık: bağlantı ve çalışma prensibi
- [32:52] Yürüyen ışık kodu: pinler, zamanlama ve döngü
- [36:41] Buton ile ışığı ilerletme
- [37:44] Butonlu yürüyen ışık: kod incelemesi
- [40:22] Gösterim ve basma gecikmesinin ayarlanması
- [57:16] Kapanış konuşması ve kurs kapanışı
This code has not been parsed yet. Please return to the admin panel to parse it.
İhtiyacın olabileceğini düşünüyor
-
AmazonSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amazon
-
Amazon
-
Amazon
Kaynaklar ve referanslar
-
BelgelendirmeDocumentation for SunFounder 3 in 1 IoT/Smart Car/Learning Kitdocs.sunfounder.com
-
Dış
Dosyalar📁
Arduino Kütüphaneleri (zip)
-
SunFounder'ın 3'ü 1 arada Akıllı Araba öğrenme kiti kaynak kodu
3in1-kit-main-v2.zip12.80 MB
Kullanım Kılavuzu
-
SunFounder 3'ü 1 Arada Arduino Akıllı Araba montaj kılavuzuBu belge, SunFounder 3'ü 1 Arada Arduino Akıllı Araba'nın adım adım montajını gösterir
SunFounder_car_assembly_manual.pdf1.20 MB