Soru & Cevap

Arduino buton basma süresine göre işlem yapma

07.09.2018 - 11:48

Merhaba,

Arduino ile kısa zamandır ilgileniyorum, çok yeniyim diyebilirim.

Her basışta ledin durumunu değiştiren bir kod yazdım, fakat ilk led durumuna 3 saniye asılı tutunca geçmesini istiyorum. Bunu yapamadım. Nasıl bir yol önerirsiniz?

Yazdığım çalışan kod aşağıda, yapmak istediğim sadece 3 saniye basılı tutunca ilk led durumunu gerçekleştirmesi. diğer durumlar şu anda olduğu gibi beklemeksizin butona basıldığında gerçekleşecek.

Fikir ve önerilerinizi bekliyorum

Şimdiden çok teşekkürler.

const int MainLed = 3;
const int button = 2;
boolean previousBtnState = LOW;
boolean nowBtnState = LOW;
int ledMode = 0;
void setup()
{
  pinMode(MainLed, OUTPUT);
  pinMode(button, INPUT);
}
boolean buttonControl(boolean state)
{
  boolean nowBtn = digitalRead(button);
  if (state != nowBtn)
  {
    delay(5);
    nowBtn = digitalRead(button);
  }
  return nowBtn;
}
void ledSet(int state)
{

  if (state == 1)
  {
    digitalWrite(MainLed, HIGH);

  }
  else if (state == 2)
  {
    analogWrite(MainLed, 127);
  }
  else if (state == 3)
  {
    digitalWrite(MainLed, HIGH);
    delay (500);
    digitalWrite(MainLed, LOW);
    delay (500);
  }
}
void loop()
{
  nowBtnState = buttonControl(previousBtnState);
  if (previousBtnState == LOW && nowBtnState == HIGH)
  {
    ledMode++;
  }
  previousBtnState = nowBtnState;
  if (ledMode == 4)
    ledMode = 0;

  ledSet(ledMode);
}

 

1,651 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-259959-1585770739.jpg
ertan.kocakoc
01.12.2019 - 02:52

Merhaba, https://maker.robotistan.com/arduino-ile-buton-ve-led-uygulamasi/?utm_source=moreVisit&utm_medium=buton&utm_campaign=diger-ders  bu sitede anlatım yapılmış.