Arduino Devreleri #19 Arduino Kara Şimşek-Karışık Yanıp Sönme

Merhabalar, bu yazımızda Arduino uygulamaları serisinden Arduino Kara Şimşek-Karışık Yanıp Sönme Uygulaması hakkında bilgi vereceğim.

Arduino programı ayrıntılı kod kısmı, devre bağlantı şeması, devre kurulumu detaylı anlatımı ve devre çalışma videosu şu şekildedir.

NOT: Kod bölümü içerisinde yer alan ve // işareti ile başlayan satırlar açıklama satırlarıdır. O satırdaki kod bloğunun ne anlama geldiği ve nasıl çalıştığı ile ilgili bilgi verir. Arduino // işaretli alanı çalıştırmaz. Kod satırından isterseniz // işaret ile başlayan açıklama satırlarını silebilirsiniz.

KOD BÖLÜMÜ: (8 LED)


//Rastgele Yanıp Sönen Kara Şimşek Devresi 8 Led

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-11 arası
 for(int i=4; i<12; 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++)
{
blink(i, j, 30); //LED leri sırasıyla yakıp söndürelim
}
}
}
}

DEVRENİN ÇALIŞMASI:

Kod bölümünde ledler, birer atlayarak yanma, karışık yanma, azalan hızda yanma şeklinde programlanmıştır.

DEVRE BAĞLANTI ŞEMASI: (8 LED)

Kara Şimşek

DEVRE KURULUMU: (8 LED)

Malzemeler:

Arduino Uno
Breadboard
8 adet led diyot
8 adet 220 Ω direnç
9 adet iki ucu erkek jumper kablo

Breadboard üzerine 8 adet led diyot, eksi uçları boardın üst kısmındaki yatay şerite gelecek şekilde yerleştirilir. Led diyotların (uzun) artı bacaklara seri olarak dirençler bağlanır. Dirençlerin uçları da board üzerinden Arduino’nun 2, 3, 4, 5, 6, 7, 8, 9 numaralı pinine bağlanır. Led diyotların (-) bacaklarının bağlı olduğu board üzerine tek bir kablo bağlanarak, kablonun diğer ucu Arduino’nun GND pinine bağlanıp devre tamamlanır.

KOD BÖLÜMÜ: (10 LED)


//Rastgele Yanıp Sönen Kara Şimşek Devresi 10 Led (2-11 Pinler)

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 2-11 arası
 for(int i=2; i<12; 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=2; i<13; i=i+2){
blink(i,200,20); 
}
for(int i=11; i>1; 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=2; ledPin>1 && 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=2; i>1 && i<13; i++)
{
blink(i, j, 30); //LED leri sırasıyla yakıp söndürelim
}
}
}
}

DEVRENİN ÇALIŞMASI:

Kod bölümünde ledler, birer atlayarak yanma, karışık yanma, azalan hızda yanma şeklinde programlanmıştır.

DEVRE BAĞLANTI ŞEMASI: (10 LED)

Arduino Kara Şimşek-Karışık Yanıp Sönme

DEVRE KURULUMU: (10 LED)

Malzemeler:

Arduino Uno
Breadboard
10 adet led diyot
10 adet 220 Ω direnç
21 adet iki ucu erkek jumper kablo

Breadboard üzerine 10 adet led diyot yerleştirilir. Led diyotların (uzun) artı bacaklarına seri olarak dirençler bağlanır. Dirençlerin uçları da board üzerinden Arduino’nun 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 numaralı pinlerine bağlanır. Led diyotların (-) bacakları , boardın alt kısmındaki yatay şerite birer kablo ile bağlanır. Board ın yatay şeridine tek bir kablo bağlanarak, kablonun diğer ucu Arduino’nun GND pinine bağlanıp devre tamamlanır.

Arduino Kara Şimşek-Karışık Yanıp Sönme

Devre hakkında yorumlarınızı aşağıdaki yorum kısmına yazabilirsiniz. Youtube kanalımızda da mBlock ve Arduino ile ilgili ders videoları bulabileceksiniz. Youtube kanalıma abone olmayı da unutmayınız.

https://www.youtube.com/@candemirahmet

Oval@3x 2

Bu ipuçlarını kaçırmayın!

Kayıt butonuna bastıktan sonra e-postanız gelen kutunuza giderek gelen e-postayı onaylamayı unutmayınız. Gelen kutusunda görülmeyen postalar için Önemsiz -Spam klasörünü kontrol edebilirsiniz. Eğer kayıt e-postası ulaşmadıysa iletişim menüsünden bu durumu bildirebilirsiniz.

Yazan: Ahmet Candemir
Teknik Öğretmen - Cisco Instructor - Microsoft MCP - ECDL MS Office Advanced Expert - Adobe Eğitmeni - MEB Fatih Projesi Koordinatörü - Robotik Kodlama Eğitmeni