Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

Arduino Toggle Buton ve Led

Başlatan veliusta, 31 Mayıs 2014, 03:36:10

veliusta

İnternetteki bulduğum kodları denedim ama stabil olanını bulamadım.

Koşullar.

Buton 50ms 'den fazla basılı tutursa ve Bırakılanca (KeyUP) LED Toggle Yapsan. (1 kez)

Örnek:
if(BUTONa 50ms den fazla BASILDI)
{ 
 if(BUTONu cektidiginde islem yap "keyup" )
 {
if(LED == HIGH)
 { 
 digitalWrite(LED, LOW);
 }
  else
 {
 digitalWrite(LED, HIGH);
 }
}
}


Nasıl yapabilirim?

40 adet buton koyarsam 40x40 = 1600ms beklemeyeceğim kod nasıl yazılır?



const int BUTON = 2;
const int LED = 13;

void setup(){
  pinMode(BUTON, INPUT);
  pinMode(LED, OUTPUT);
}

void loop(){
 if (digitalRead(BUTON) == HIGH)
    {
      digitalWrite(LED, HIGH);
    }
 else 
    {
      digitalWrite(LED, LOW);
    }
}

Klein

#1
Basitçe şöyle yapabilirsin.
Kodlar temsili. Optimize bir kod değil. ama kafanı karıştırmamak için daha optimize yöntemler önermeyeceğim. 
4 butonun olduğunu varsayalım.

usigned char timeout[10] 
if(button1 == DOWN)
{
    if(timeout[0] >0) timeout[0] = timeout[0] - 1; 
}else{
   if(timeout[0] < 50) timeout[0] = timeout[0] + 1;
   if(timeout[0] == 1)  
   {
        led_toggle(led_1)
   }
}

if(button2 == DOWN)
{
    if(timeout[1] >0) timeout[1] = timeout[1] - 1; 
}else{
   if(timeout[1] < 50) timeout[1] = timeout[1] + 1;
   if(timeout[1] == 1)  
   {
        led_toggle(led2)
   }
}

....