Arduino led sırası ve sönmeme sorunu

mustafatumer

Centipat
Katılım
25 Mayıs 2023
Mesajlar
18
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:

Technopat Haberler

Yeni konular

Geri
Yukarı