Arduino İle Çoklu LED Uygulaması
Bu serimizin 3. yazısında çoklu LED ile farklı şekillerde yakıp söndürmeler yapacağız.
Öncelikle bize lazım olan malzemeler:
- Arduino Uno (Aliexpress, Roboshop, Direnc.net)
- 9 tane LED (Aliexpress, Direnc.net)
- 10 adet erkek-erkek dupont bağlantı kablosu (Aliexpress, Direnc.net)
- 9 adet 330 ohm direnç (yaklaşık değerde olabilir) (Aliexpress, Direnc.net)
- Breadboard (Aliexpress, Roboshop)
Yukarıda görüldüğü üzere LED lerimizi breadboard üzerine sırasıyla diziyoruz. Eksi (katot) uçlarına dirençleri bağlıyoruz. Dirençlerin diğer bacaklarını ise breadboardın eksi hattına bağlıyoruz. Dirençlerin uzun olan artı (anot) bacaklarını ise kablolarıla Arduino‘muzun dijital 4-12 pinlerine sırasıyla bağlıyoruz.
Opsiyonel olarak 13 ve GND arasına bir LED daha ekleyebilirsiniz. Breadboard (-) bağlantı noktasından Arduino GND bağlantı noktalarından birine bağlantı yapıyoruz. Aşağıdaki kodu Arduino IDE‘mize yazıp çalıştırıyoruz.
void blink(int LEDPin, int LEDOnTime, int LEDOffTime) // LED yakıp sönme fonksiyonu { digitalWrite(LEDPin, HIGH); delay(LEDOnTime); digitalWrite(LEDPin, LOW); delay(LEDOffTime); } void setup(){ //LED pinlerini ayarlıyoruz - Dijital 4-12 arası for(int i=4; i<13; i++){ pinMode(i, OUTPUT);} } void loop(){ birAtlat(1); // Parametreler kaç tekrar yapacağını gösteriyor karisik(1); azalanHizda(1); } void birAtlat(int tekrar){ for(int k=1; k<(tekrar+1); k++){ for(int i=4; i<13; i=i+2){ blink(i,200,20); } for(int i=11; i>3; i=i-2){ blink(i,200,20); } } } void karisik(int tekrar) { for(int k=1; k<(tekrar+1); k++){ for(int j=1; j<257; j=j+j){ int LEDCounter=1; int LEDYak=1; for(int ledPin=4; ledPin>3 && ledPin<14; ledPin=ledPin+LEDCounter){ if(LEDYak){ digitalWrite(ledPin, HIGH); delay(j); }else{ digitalWrite(ledPin, LOW); delay(j); } if(ledPin>12){ LEDCounter*=-1; LEDYak=0; } } } } } void azalanHizda(int tekrar) { for(int k=1; k<(tekrar+1); k++){ for(int j=1; j<257; j=j+j){ // LED yanma süresini artırıyoruz for(int i=4; i>3 && i<13; i++){ // LED leri sırasıyla blink(i, j, 30); //yakıp söndürelim } } } }
blink fonksiyonu parametreleri ile verilen süre içinde LED’i yakıp söndürme işi yapmaktadır.
Diğer farklı LED yakma yöntemleri üç ayrı fonksiyon içinde tanımlanmıştır. İçindeki değerlerle oynayıp farklı sonuçlar alabilirsiniz.
Videosu: