Çözüldü Arduino sayaç kurma

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

Janberk_

Hectopat
Katılım
22 Nisan 2017
Mesajlar
5
Daha fazla  
Cinsiyet
Erkek
Uno üzerinde bir çalışmamız var. Breadboardda bir devre kurduk. Bir tane butonumuz ve 8 LED'imiz bağlı. Butona her bastığımda farklı görevi yerine getirmesini sağlamak istiyorum. İlk basışımda tüm LED'ler yansın, ikinci basışımda sadece çift numaralı pinlere bağlı LED'ler yansın şeklinde. Bunun için BS (butonsayacı) tanımlayıp aşağıdaki gibi bir kod yazdım. İlk basışımda tüm LED'ler yanıyor fakat bir daha bastığımda ikinci komuta geçmiyor. Yardımcı olabilir misiniz?


C#:
int bs=0;



void setup() {

 

Serial.begin(9600);

pinMode(5,INPUT);

pinMode(6,OUTPUT);

pinMode(7,OUTPUT);

pinMode(8,OUTPUT);

pinMode(9,OUTPUT);

pinMode(10,OUTPUT);

pinMode(11,OUTPUT);

pinMode(12,OUTPUT);

pinMode(13,OUTPUT);



}



void loop() {



  if(digitalRead(5)==1)

  {

    if(bs>7)

    {

      bs=0;

      }

      bs++;

      }

  

  if(digitalRead(5)==1)

  {

    digitalWrite(6,1);

    digitalWrite(7,1);

    digitalWrite(8,1);

    digitalWrite(9,1);

    digitalWrite(10,1);

    digitalWrite(11,1);

    digitalWrite(12,1);

    digitalWrite(13,1);

  

  }

   if(digitalRead(5)==1)

  {

  

    

  for(int i=6;i<=13;i++)

  if(i%2==0)

  {

  

  }

    

    digitalWrite(6,1);

  

    digitalWrite(8,1);

  

    digitalWrite(10,1);

  

    digitalWrite(12,1);

  }

}
 
Son düzenleyen: Moderatör:
Çözüm
C++:
int butonsay=0; //butonu açılışta sıfır olarak tanımlıyoruz.
void setup()
  {
    Serial.begin(9600);
    pinMode(5,INPUT);
    pinMode(6,OUTPUT);
    pinMode(7,OUTPUT);
    pinMode(8,OUTPUT);
    pinMode(9,OUTPUT);
    pinMode(10,OUTPUT);
    pinMode(11,OUTPUT);
    pinMode(12,OUTPUT);
    pinMode(13,OUTPUT);
  }

void ciftsayiledleriyak()
  {
    digitalWrite(5,0);
    digitalWrite(6,1);
    digitalWrite(7,0);
    digitalWrite(8,1);
    digitalWrite(9,0);
    digitalWrite(10,1);
    digitalWrite(11,0);
    digitalWrite(12,1);
    digitalWrite(13,0);
  }

void teksayiledleriyak()
  {
    digitalWrite(5,1);
    digitalWrite(6,0);
    digitalWrite(7,1);
    digitalWrite(8,0);
    digitalWrite(9,1);
    digitalWrite(10,0);
    digitalWrite(11,1);
    digitalWrite(12,0);
    digitalWrite(13,1);   
  }

void loop()
  {
 if(digitalRead(5)==1) // buton basıldıysa.
     {
 if(butonsay > 6 && butonsay < 13 ) //7 kere ve 13 ten az basılmış ise çift sayılı pinlere bağlı ledler
     {
        teksayiledleriyak();
     }
 else if (butonsay <= 6)// en fazla 6 kere basıldıysa.
     {
        ciftsayiledleriyak();
     }
 else if (butonsay >13) // 13 ten fazla ise sayacı sıfırlıyoruz.
     {
        butonsay = 0;
     }
        butonsay++; // buton basıldıkça butonsay değerini arttır.
     }
    
 }

En basitinden bu şekilde yapabilirsiniz.
C++:
int butonsay=0; //butonu açılışta sıfır olarak tanımlıyoruz.
void setup()
  {
    Serial.begin(9600);
    pinMode(5,INPUT);
    pinMode(6,OUTPUT);
    pinMode(7,OUTPUT);
    pinMode(8,OUTPUT);
    pinMode(9,OUTPUT);
    pinMode(10,OUTPUT);
    pinMode(11,OUTPUT);
    pinMode(12,OUTPUT);
    pinMode(13,OUTPUT);
  }

void ciftsayiledleriyak()
  {
    digitalWrite(5,0);
    digitalWrite(6,1);
    digitalWrite(7,0);
    digitalWrite(8,1);
    digitalWrite(9,0);
    digitalWrite(10,1);
    digitalWrite(11,0);
    digitalWrite(12,1);
    digitalWrite(13,0);
  }

void teksayiledleriyak()
  {
    digitalWrite(5,1);
    digitalWrite(6,0);
    digitalWrite(7,1);
    digitalWrite(8,0);
    digitalWrite(9,1);
    digitalWrite(10,0);
    digitalWrite(11,1);
    digitalWrite(12,0);
    digitalWrite(13,1);   
  }

void loop()
  {
 if(digitalRead(5)==1) // buton basıldıysa.
     {
 if(butonsay > 6 && butonsay < 13 ) //7 kere ve 13 ten az basılmış ise çift sayılı pinlere bağlı ledler
     {
        teksayiledleriyak();
     }
 else if (butonsay <= 6)// en fazla 6 kere basıldıysa.
     {
        ciftsayiledleriyak();
     }
 else if (butonsay >13) // 13 ten fazla ise sayacı sıfırlıyoruz.
     {
        butonsay = 0;
     }
        butonsay++; // buton basıldıkça butonsay değerini arttır.
     }
    
 }

En basitinden bu şekilde yapabilirsiniz.
 
Çözüm
Uyarı! Bu konu 6 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Yeni konular

Geri
Yukarı