ARDUINO FONKSİYON KAPATMA VEYA ATLAMA
Merhaba alttaki gibi bir kodlamam var aslında farklı kodlamam ama anlaşıbilmesi için basit bir hale çevirdim LED yakma şekli gibi. Sorum şuki resimdeki gibi 2 adet if döngüm var. 1 adet sayacım var. Sayaca 2 farklı değer geliyor 110 ve 140 olarak. Şimdi 110 değeri geldiğinde if komutu başlıyor . 110 değeri için yazılan kodlar çalışırken benim sayacım değişiyor 140 değeri geliyor. Yani program ledleri yakmayı yarıda bırakıp diğer if döngüsüne başlaması gerekiyor. Ama bu şekilde yapmıyor önce ilk döngüyü tamamlıyor sonra ikinci döngüye geçiyor. Benim istediğim sayac değiştiği zaman aniden işini yarıda bırakıp diğer işe geçmeli program. Bunun için ne kullanabilirim. Programda aslında arka planda müzik çalıyor ve ledler müziğe göre hareket ediyor. Ben müziği değiştiriyorum ve sıradaki müziğe göre ledlerin yanması lazım fakat önce 1. müzik için programlanmış yakma söndürme işlemini bitirip sonra 2.ye başlıyor.
Başlığı fonksiyon atlama olarak açtım çünki ifler içindeki led yakma işlemleri için fonksiyon çağırıyorum. Yani 1. ifte muzik1(); için o fonksiyonu çalışyıroyurm 2. içinde muzik2();
örnek kodlama :
if(sayac==110)
{
digitalWrite(LED1,HIGH);
delay(500);
digitalWrite(LED2,HIGH);
delay(500);
digitalWrite(LED3,HIGH);
delay(500);
digitalWrite(LED4,HIGH);
delay(500);
digitalWrite(LED5,HIGH);
delay(500);
digitalWrite(LED6,HIGH);
delay(500);
digitalWrite(LED7,HIGH);
delay(500);
digitalWrite(LED8,LOW);
delay(500);
digitalWrite(LED9,LOW);
delay(500);
digitalWrite(LED10,LOW);
delay(500);
digitalWrite(LED11,LOW);
delay(500);
digitalWrite(LED12,LOW);
delay(500);
digitalWrite(LED13,LOW);
delay(500);
digitalWrite(LED14,LOW);
delay(500);
//DEMO();
}
if(sayac==140)
{
digitalWrite(LED8,HIGH);
delay(500);
digitalWrite(LED9,HIGH);
delay(500);
digitalWrite(LED10,HIGH);
delay(500);
digitalWrite(LED11,HIGH);
delay(500);
digitalWrite(LED12,HIGH);
delay(500);
digitalWrite(LED13,HIGH);
delay(500);
digitalWrite(LED14,HIGH);
delay(500);
digitalWrite(LED1,LOW);
delay(500);
digitalWrite(LED2,LOW);
delay(500);
digitalWrite(LED3,LOW);
delay(500);
digitalWrite(LED4,LOW);
delay(500);
digitalWrite(LED5,LOW);
delay(500);
digitalWrite(LED6,LOW);
delay(500);
digitalWrite(LED7,LOW);
delay(500);
//DEMO_MUZIK1();
}