bluetooth dan gelen veri sıfırlama yapmıyor eepromu dahil etmeden önce sorun yoktu

G-Smart

Yeni Üye
Katılım
9 Aralık 2022
Mesajlar
24
Kod:
void filtredegisimi(){
 
filtredurum != filtredurum;
 attachInterrupt(1,  data, CHANGE);
 attachInterrupt(0,  data, CHANGE);
 

 while(filtregun<=2) {

 
 
 for (saniye>-1;saniye<60;saniye++) {//kodumuzu saniye odaklı kuruyoruz.
delay(983);
if (saniye==59) saniye=-1, dakika=dakika+1;
if (dakika==2) dakika=0, saat=saat+1;
if (saat==2) saat=0, filtregun1=filtregun1+1;
if(filtregun1==6) filtregun1=0,filtregun=filtregun+1;
Serial.print(saniye);Serial.print(":");Serial.print(dakika);Serial.print(":");Serial.println(saat);
Serial.print(filtregun1);Serial.print("/"); Serial.println(filtregun);

EEPROM.update(filtregun,adr);

Serial.print("filtregun : ");Serial.println(filtregun);

 EEPROM.update(filtregun1,adr1);

Serial.print("filtregun1 : ");Serial.println(filtregun1);

   
 
 
   while(bt.available()>0)
{
  Serial.write(bt.read());
char data = bt.read();
 Serial.println(data);
data=!data;
if(data=='a')
{
digitalWrite(buzzer,HIGH);
digitalWrite(buzzer,LOW);

 
   filtregun1=0;
   filtregun=0;
   }}
   if(filtregun==0){
        leds[2].setRGB(0, 0, 255);
                FastLED.show();
                leds[4].setRGB(0, 0, 255);
                 FastLED.show();
                digitalWrite(buzzer,LOW);
}
  if(filtregun==2){
 
   digitalWrite(buzzer,HIGH);
              delay(1000);  
               leds[2].setRGB(255, 0, 0);
                FastLED.show();
                leds[4].setRGB(255, 0, 0);
                 FastLED.show();
                digitalWrite(buzzer,LOW);
                delay(1000);
 
 
  }
}
}
}
 
Last edited by a moderator:
böyle çalışmaz delay girdiğinde bütün işlemci duruyor.

Timer IRQ olarak araştırın
 
void filtredegisimi(filtredurum != filtredurum){

baslik kismi boylemiydi acaba.
 
Kod formatında yüklemenizde fayda var, bu haliyle çok zahmetli kodunuzu okumak, anlamak.



1676901442159.png
 
3. satırdaki ifade etkisiz bir ifadedir. Hiçbir şey yapmaz, hiçbir şey değiştirmez. Kodun diğer yerlerine bakmadım açıkçası. Programın ne amacı belli, nede programın tamamı paylaşılmış, nede özenli yazılmış.
 
Kod:
void filtredegisimi() {

  filtredurum != filtredurum;
  attachInterrupt(1, data, CHANGE);
  attachInterrupt(0, data, CHANGE);

  while (filtregun <= 2) {

    for (saniye > -1; saniye < 60; saniye++) { //kodumuzu saniye odaklı kuruyoruz.
      delay(983);
      if (saniye == 59) saniye = -1, dakika = dakika + 1;
      if (dakika == 2) dakika = 0, saat = saat + 1;
      if (saat == 2) saat = 0, filtregun1 = filtregun1 + 1;
      if (filtregun1 == 6) filtregun1 = 0, filtregun = filtregun + 1;
      Serial.print(saniye);
      Serial.print(":");
      Serial.print(dakika);
      Serial.print(":");
      Serial.println(saat);
      Serial.print(filtregun1);
      Serial.print("/");
      Serial.println(filtregun);

      EEPROM.update(filtregun, adr);

      Serial.print("filtregun : ");
      Serial.println(filtregun);

      EEPROM.update(filtregun1, adr1);

      Serial.print("filtregun1 : ");
      Serial.println(filtregun1);

      while (bt.available() > 0) {
        Serial.write(bt.read());
        char data = bt.read();
        Serial.println(data);
        data = !data;
        if (data == 'a') {
          digitalWrite(buzzer, HIGH);
          digitalWrite(buzzer, LOW);

          filtregun1 = 0;
          filtregun = 0;
        }
      }
      if (filtregun == 0) {
        leds[2].setRGB(0, 0, 255);
        FastLED.show();
        leds[4].setRGB(0, 0, 255);
        FastLED.show();
        digitalWrite(buzzer, LOW);
      }
      if (filtregun == 2) {

        digitalWrite(buzzer, HIGH);
        delay(1000);
        leds[2].setRGB(255, 0, 0);
        FastLED.show();
        leds[4].setRGB(255, 0, 0);
        FastLED.show();
        digitalWrite(buzzer, LOW);
        delay(1000);

      }
    }
  }
}


Kodu wrap yaptım:


Ben de pek anlamadım açıkcası. Geri kalanı olmayınca anlaşılmıyor. Sanki iki günde bir filtre değişmesini zorlamaya çalışan bir kod gibi. BT üzerinden veri gelirse ('a') değişmiş kabul ediyor.

O değişken zaten kullanılmıyor fonksiyon içinde. 4. ve 5. satırlar da işlevsiz.
Ayrıca saniyede iki sefer EEPROM'a yazmak da sıkıntı olabilir.
 

Forum istatistikleri

Konular
8,670
Mesajlar
141,638
Üyeler
3,466
Son üye
nurullah koç

Son kaynaklar

Son profil mesajları

Abdullah karaoglan falcon_browning Abdullah karaoglan wrote on falcon_browning's profile.
selamın aleyküm ses sistemindeki cızırtıyı hallettınızmi
"Araştırma, ne yaptığını bilmediğinde yaptığın şeydir." - Wernher von Braun
“Kendi yolunu çizen kişi, kimsenin izinden gitmez.” – Nietzsche
Kim İslâm’da güzel bir çığır açarsa (güzel bir alışkanlık başlatırsa), onun sevabı ve kendisinden sonra ona uyanların sevapları, onların sevaplarından hiçbir şey eksilmeksizin ona da yazılır.
erdemtr55 taydin erdemtr55 wrote on taydin's profile.
Merhaba Taydin bey,
Gruba spms serisi yapıcak mısınız?
ben 3 sargılı toroid ile 2 adet flyback sürücek bir devre yapmayı düşünüyorum.size soracak sorularım vardı?
Back
Top