Új hozzászólás Aktív témák

  • Atamano

    csendes tag

    Egy olyan kódot próbálnék írni,amelyet a profi környezetben arra használnak,hogyha egy folyamat 100%-os teljesítményen megy és a változtatni kívánt tényező sebesség,hőmérséklet stb. megadott időn belül nem változik,akkor leállítja a program a parancs végrehajtását vagy kikapcsol stb.Tehát meglazult kábelek,szenzor hiba egyebek kiszűrése a cél.
    Az interneten legkönnyebben megtalálható interval példából indultam ki.Mondjuk ott alapvetően delay,ciklus szabályzásra használják.Ott a feltételek adottak az Arduino bekapcsolásakor.Jelen esetben nem lehet tudni vagyis csak következtetni lehet,hogy mikor lesz 100%-os teljesítmény.

    Ezt írtam,de szerintem ez alapvetően rossz,mert az első if soha nem fog teljesülni a másikban található parancs miatt,mert previousMillis = currentMillis; mindig ugyanazon értékek maradnak.

    unsigned long currentMillis = millis();
    unsigned long previousMillis = 0
    double currentValue = MeasuredValue;
    double differencePoint = SetValue - currentValue;
    long period = 1000;

    if (Output == 100 && currentMillis - previousMillis > period && differencePoint > 3 )
    previousMillis = currentMillis ;

    //code

    }

    if (Output ==100) {

    unsigned long previousMillis = currentMillis;
    }

    Esetleg valakinek ötlete,hogy milyen irányban kellene elindulni?

Új hozzászólás Aktív témák

Hirdetés