Arasında Koşulu Sağlama
  • Merhaba, aşağıda kod da görüldüğü üzere arasında fonksiyonu oluşturmaya çalıştım fakat çalışmıyor.

    isiklandirma1(saat 11) ile isiklandirma2(saat 15) arasında role yi LOW veya Hıgh yapmak istiyorum ama olmuyor.

    if(isiklandirmamenu == 1){
    if((now.hour() >= isiklandirma1) && (now.hour() < isiklandirma2)){
    digitalWrite(role1, LOW);
    }

    }
  • Sorunu çözdüm. else komutu ekleyince çalışmaya başladı. muhtemel hata, benim role1 i Loop da HIGH da unutmam . teşekkür ederim yine de.
  • bi sorunum daha çıktı. örneğin isiklandirma1 saat 10 isiklandirma2 saat 13 isiklandirmadk1 dakika15, isiklandirmadk2 dakika 45 , yani saat 10:15 ile Saat 13:15 arasında rölenin LOW da kalmasını istiyorum. fakat aşağıdaki kodu yazdığımda saat ile saat arasında ki kodu algiliyor fakat 10 ile 13 arasında LOW oluyor fakat, dakika olarak 10.15 den 10.45 e kadar low oluyor sonra dakika geçerli koşul olmadığından tekrardan devreden çıkıyor.

    if((now.hour() >= isiklandirma1saat && now.hour() <= isiklandirma2saat) && (now.minute() >= isiklandirmadk1 && now.minute() <= isiklandirmadk2)){<br /> digitalWrite(role1, LOW);
    }
    else {digitalWrite(role1, HIGH);}

  • Koşulları genelde bu şekilde yapıyorlar ama çok karmaşık bir algoritma bu. Ben olsam şöyle yapardım.

    setup()'ta röleyi high yap.
    loop() içinde...
    Saat 10 olana kadar bekle.
    Dakika 15 olana kadar bekle.
    Röleyi low yap.
    Saat 13 olana kadar bekle.
    Dakika 45 olana kadar bekle.
    Röleyi high yap.
  • bu sadece bir örneği. toplamda 12 aralık var. sizin dediğiniz gibi basit bi şekilde olacağını sanmıyorum. ama teşekkür ederim yine de mesaj yazdığınız için.

    String ile stringone now.hour ve now.minute yi birleştirip.
    sonra yine string ile isiklandirma1 ve isiklandirmadk1 i birleştirip eşleştirmeyi düşünüyorum ama olcak mı bilmiyorum

  • Kendimce denedim ama olmadı

    int saat = now.hour();
    int dakika = now.minute();
    String nokta = ".";
    String sifir = "0";
    if(dakika < 10 && saat <10 ){<br /> String birlesimsaat = sifir + saat + nokta + sifir + dakika;
    }else{
    String birlesimsaat = saat + nokta + dakika;
    }
    if (isiklandirma1 < 10 && isiklandirmadk1 <10){<br /> String S1birlesim = sifir + isiklandirma1 + nokta + sifir + isiklandirmadk1;
    String S2birlesim = sifir + isiklandirma2 + nokta + sifir + isiklandirmadk2;
    }else{
    String S1birlesim = isiklandirma1 + nokta + isiklandirmadk1;
    String S2birlesim = isiklandirma2 + nokta + isiklandirmadk2;
    }



    if(isiklandirmamenu == 1){
    if(birlesimsaat >= S1birlesim && birlesimsaat <= S2birlesim){<br /> digitalWrite(role1, LOW);
    }else{
    digitalWrite(role1, HIGH);
    }
  • birsürü deneme yaptım hala olmuyor.
  • Cevabınız için teşekkür ederim .
    String ile olayı çözdüm . Saat dakikayı arasına nokta koyarak birleştirdim. Değerleride birleştirip if koşulu ile eşleştirdim. Teşekkür ederim yardımınız için yine de

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Login with Facebook
Açık kaynak kültürü gereği, çözdüğünüz problemlerin çözümlerini paylaşmayı lütfen unutmayın.