Untitled
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