First init.
This commit is contained in:
@@ -0,0 +1,104 @@
|
||||
#include <esp_task_wdt.h>
|
||||
|
||||
#define D2 2
|
||||
#define D3 3
|
||||
#define D4 4
|
||||
#define D5 5
|
||||
#define D6 6
|
||||
#define A0_PIN 33
|
||||
#define D10 10
|
||||
#define D11 11
|
||||
#define D12 12
|
||||
#define ONBOARD_LED 15
|
||||
|
||||
int potValue = 0;
|
||||
int timerDuration = 0;
|
||||
unsigned long previousMillis = 0;
|
||||
const long debounceDelay = 50;
|
||||
|
||||
void setup() {
|
||||
Serial.begin(115200);
|
||||
pinMode(D2, INPUT_PULLUP);
|
||||
pinMode(D3, INPUT_PULLUP);
|
||||
pinMode(D4, INPUT_PULLUP);
|
||||
pinMode(D5, INPUT_PULLUP);
|
||||
pinMode(D6, INPUT_PULLUP);
|
||||
pinMode(A0_PIN, INPUT);
|
||||
pinMode(D10, OUTPUT);
|
||||
pinMode(D11, OUTPUT);
|
||||
pinMode(D12, OUTPUT);
|
||||
pinMode(ONBOARD_LED, OUTPUT);
|
||||
|
||||
digitalWrite(D10, LOW);
|
||||
digitalWrite(D11, LOW);
|
||||
digitalWrite(D12, LOW);
|
||||
|
||||
esp_task_wdt_init(10, true); // Initialize watchdog with a timeout of 10 seconds, panic if triggered
|
||||
|
||||
Serial.println("Setup completed.");
|
||||
}
|
||||
|
||||
void loop() {
|
||||
esp_task_wdt_reset(); // Reset the watchdog timer
|
||||
|
||||
int d2State = digitalRead(D2);
|
||||
int d3State = digitalRead(D3);
|
||||
int d4State = digitalRead(D4);
|
||||
int d5State = digitalRead(D5);
|
||||
int d6State = digitalRead(D6);
|
||||
|
||||
// Blink onboard LED at 1Hz
|
||||
digitalWrite(ONBOARD_LED, HIGH);
|
||||
delay(500);
|
||||
digitalWrite(ONBOARD_LED, LOW);
|
||||
delay(2000);
|
||||
|
||||
Serial.print("D2 State: ");
|
||||
Serial.println(d2State);
|
||||
Serial.print("D3 State: ");
|
||||
Serial.println(d3State);
|
||||
Serial.print("D4 State: ");
|
||||
Serial.println(d4State);
|
||||
Serial.print("D5 State: ");
|
||||
Serial.println(d5State);
|
||||
Serial.print("D6 State: ");
|
||||
Serial.println(d6State);
|
||||
|
||||
// Washer
|
||||
if (d2State == LOW && d6State == LOW) {
|
||||
digitalWrite(D12, HIGH);
|
||||
while (digitalRead(D6) == LOW) {
|
||||
digitalWrite(D10, HIGH);
|
||||
delay(15000); // 15 seconds
|
||||
digitalWrite(D10, LOW);
|
||||
}
|
||||
digitalWrite(D12, LOW);
|
||||
}
|
||||
// Off
|
||||
else if (d2State == LOW) {
|
||||
digitalWrite(D10, LOW);
|
||||
digitalWrite(D11, LOW);
|
||||
}
|
||||
// Pulse
|
||||
else if (d3State == LOW) {
|
||||
digitalWrite(D10, HIGH);
|
||||
delay(500); // 0.5 seconds
|
||||
digitalWrite(D10, LOW);
|
||||
timerDuration = map(analogRead(A0_PIN), 0, 4095, 5000, 50000); // Mapping analog input to timer duration (5-50 seconds)
|
||||
delay(timerDuration);
|
||||
}
|
||||
// Low
|
||||
else if (d4State == LOW) {
|
||||
digitalWrite(D10, HIGH);
|
||||
}
|
||||
// High
|
||||
else if (d5State == LOW) {
|
||||
digitalWrite(D10, HIGH);
|
||||
digitalWrite(D11, HIGH);
|
||||
}
|
||||
else {
|
||||
digitalWrite(D12, LOW); // Ensure D12 is low if none of the conditions are met
|
||||
}
|
||||
|
||||
delay(10); // Small delay to debounce
|
||||
}
|
||||
Reference in New Issue
Block a user