First init.
This commit is contained in:
82
BoopLabs_PontiacWiper_mk1/BoopLabs_PontiacWiper_mk1.ino
Normal file
82
BoopLabs_PontiacWiper_mk1/BoopLabs_PontiacWiper_mk1.ino
Normal file
@@ -0,0 +1,82 @@
|
||||
#include <avr/wdt.h>
|
||||
|
||||
#define D2 2
|
||||
#define D3 3
|
||||
#define D4 4
|
||||
#define D5 5
|
||||
#define D6 6
|
||||
#define A0_PIN A0
|
||||
#define D10 10
|
||||
#define D11 11
|
||||
#define D12 12
|
||||
|
||||
int potValue = 0;
|
||||
int timerDuration = 0;
|
||||
unsigned long previousMillis = 0;
|
||||
const long debounceDelay = 50;
|
||||
|
||||
void setup() {
|
||||
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);
|
||||
|
||||
digitalWrite(D10, LOW);
|
||||
digitalWrite(D11, LOW);
|
||||
digitalWrite(D12, LOW);
|
||||
|
||||
wdt_enable(WDTO_8S); // Enable watchdog with 8-second timeout
|
||||
}
|
||||
|
||||
void loop() {
|
||||
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);
|
||||
|
||||
// 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, 1023, 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