Arduino led sırası ve sönmeme sorunu

mustafatumer

Femtopat
Katılım
25 Mayıs 2023
Mesajlar
14
Daha fazla  
Cinsiyet
Erkek
int led = 5;
int b1 = 3;
int b2 = 12;

int b1sayac = 0;

void setup() {
pinMode(led, OUTPUT);
pinMode(b1, INPUT_PULLUP);
pinMode(b2, INPUT_PULLUP);
}

void loop() {
if (digitalRead(b1) == LOW) {
b1sayac++;
delay(200);
}

if (digitalRead(b2) == LOW) {
digitalWrite(led, LOW);
}

if (b1sayac == 1) {
digitalWrite(led, HIGH);

}
if (digitalRead(b2) == HIGH) {
if (b1sayac == 2) {
digitalWrite(led, HIGH);
delay(500);
digitalWrite(led, LOW);
delay(500);
digitalWrite(led, HIGH);
delay(500);
digitalWrite(led, LOW);
delay(500);
digitalWrite(led, HIGH);
delay(500);
digitalWrite(led, LOW);
delay(500);
b1sayac = 0;
}
}
}
IMG_20231031_212930.jpg
 
b1sayac ne?
void loop() {
if (digitalRead(b1) == LOW) {
b1sayac++;
delay(200);
}
Saniyede 5 kez 1. butonu dinle, eğer butona basılmadıysa (Süre geniş, basılı tutmak anlamına gelir)

if (digitalRead(b2) == HIGH) {
if (b1sayac == 2) {
digitalWrite(led, HIGH);
delay(500);
digitalWrite(led, LOW);
delay(500);
Eğer basılmadıysa bunu yap.


Aynı döngünün içinde, butonun kontrolü saniyenin 4'de 2'sinden kısa sürede gerçekleşir ve butonları yakmaya başlar. Butonlar 3 saniye boyunca yanıp söner ve tekrar saniyenin 4/2'si hızında butonlar kontrol edilir.

İnsan, bu kadar kısa sürede hızlı eylemler gerçekleştiremeyeceğinden program büyük ihtimalle sürekli olarak butondan dolayı uzun döngüye giriyor.

Çözüm olarak cacık kodlar yazmamanı öneririm.
 
Normalde soldaki butona ilk basışımızda LED'in direkt yanması ve 2. butona basınca sonmesi lazim. Soldaki butona 2. basışımızdan LED'in 3 kere yanip 3 kere sönmesi lazım ama bende ilk basışımda 3 kere yan sön yapıp 2. basışımda direkt yanıyor. LED'i kapatan butona basınca da LED sadece kısılıyor.

Sorun tam olarak ne sadece kodu yazmışsın.

Yazdim, nedense gitmemis.

B1sayac ne?

Saniyede 5 kez 1. butonu dinle, eğer butona basılmadıysa (Süre geniş, basılı tutmak anlamına gelir)

Eğer basılmadıysa bunu yap.


Aynı döngünün içinde, butonun kontrolü saniyenin 4'te 2'sinden kısa sürede gerçekleşir ve butonları yakmaya başlar. Butonlar 3 saniye boyunca yanıp söner ve tekrar saniyenin 4/2'si hızında butonlar kontrol edilir.

İnsan, bu kadar kısa sürede hızlı eylemler gerçekleştiremeyeceğinden program büyük ihtimalle sürekli olarak butondan dolayı uzun döngüye giriyor.

Çözüm olarak cacık kodlar yazmamanı öneririm.

Sorun o değil.
 
Son düzenleyen: Moderatör:

Yeni konular

Geri
Yukarı