Untitled

 avatar
unknown
c_cpp
2 months ago
1.9 kB
4
Indexable
int ledIndicator = 13;
int pum = 12;
int button = 2;
bool on = false;
unsigned long timeOn = 300000;
unsigned long timeNow;
unsigned long timeBlink;
void setup()
{
    pinMode(ledIndicator, OUTPUT);
    pinMode(pum, OUTPUT);
    pinMode(button, INPUT_PULLUP);

    on = false;
    updateStatus();
}
void updateStatus()
{
    digitalWrite(pum, !on); // truyen 0 cho relay de bat bom, truyen 1 cho relay de tat bom
}
bool readBtn(int pin, int pinStatus)
{
    if (digitalRead(pin) == pinStatus)
    {
        delay(30);
        if (digitalRead(pin) == pinStatus)
        {
            return true;
        }
    }
    return false;
}
bool btnPressed(int button)
{
    return readBtn(button, LOW);
}

void loop()
{
    delay(5);
    timeNow = millis();
    timeBlink = (timeNow / 1000);
    if (timeBlink % 7 == 0) // cu 7 giay tat led 1 giay
    {
        digitalWrite(ledIndicator, 0);
    }
    else
    {
        digitalWrite(ledIndicator, 1);
    }
    if (btnPressed(button))
    {
        while (btnPressed(button))
            delay(1);
        on = true;
        updateStatus();
        unsigned long startTime = millis();
        delay(50);
        while (true)
        {
            delay(5);
            if (btnPressed(button))
            {
                while (btnPressed(button))
                    delay(1);
                on = false;
                updateStatus();
                delay(50);
                break;
            }
            timeNow = millis();
            timeBlink = (timeNow / 500) % 2;
            digitalWrite(ledIndicator, timeBlink);
            if (timeNow - startTime > timeOn || startTime > timeNow) // ham milis co luc se reset ve 0
            {
                on = false;
                updateStatus();
                break;
            }
        }
    }
}
Leave a Comment