Arduino millis fonksiyonu buzzer ayarlama

Mçınar

Decapat
Katılım
5 Ağustos 2019
Mesajlar
272
Delay yerine millis(); fonksiyonu kullanıyorum ama buzzerın yagmur>500 kısmında sürekli alarm halinde iken sürekli ötüp susmasını millis ile sağlayamadım. Nasıl yapabiliriz fikri olan yazabilir mi?

Kod:
  unsigned long ilk_zaman=0;
  unsigned long son_zaman;
  #define ledd 2
  int led_durum=0;

-----------------------------------
loop başlangıcı{

yagmur = analogRead(A0);      // A0 pin değerini "yagmur" değişkenimize aktardık.

  if(yagmur < 500){              // "yagmur" değişkenimizin değerini IF kontrol yapısıyla karşılaştırıyoruz.
  Serial.println("kAÇAK yok!");
   digitalWrite(buzzerPin, LOW);
  //delay(1000);
 
son_zaman=millis();
if (son_zaman-ilk_zaman>=1000){
    led_durum=!led_durum;
    digitalWrite(ledd,led_durum);
    ilk_zaman=son_zaman;
 
}
  // yapılan diğer işlemler
    }

  if(yagmur > 500){
  Serial.println("KAÇAK VAR!");
   digitalWrite(buzzerPin, HIGH);
 son_zaman=millis();
  if (son_zaman-ilk_zaman>=1000){
    led_durum=!led_durum;
    digitalWrite(ledd,led_durum);
    ilk_zaman=son_zaman;
 
  digitalWrite(buzzerPin, LOW);
   son_zaman=millis();
  if (son_zaman-ilk_zaman>=1000){
    led_durum=!led_durum;
    digitalWrite(ledd,led_durum);
    ilk_zaman=son_zaman;

      }
  }
//yapılan işlemler

  }
   }// loop kapanış
 
Yukarı