const uint32_t debounceTimeout = 200;
const uint32_t frequency = 1250;
#define buttonOnPin 5
#define buttonOffPin 6
#define ledPin 7
uint32_t nextPulse;
uint32_t buttonDebounce;
bool inProgress;
bool pwmState;
bool ledState;
int val = 0;
void setup() {
Serial.begin(9600);
delay(100);
Serial.println("start");
pinMode(ledPin, OUTPUT);
pinMode(buttonOffPin, INPUT);
pinMode(buttonOffPin, INPUT);
buttonDebounce = millis();
inProgress = false;
pwmState = LOW;
ledState = false;
}
void loop() {
if (digitalRead(buttonOnPin) && buttonDebounce < millis()) {
inProgress = true;
Serial.println("on");
nextPulse = millis() - 1;
buttonDebounce = millis() + debounceTimeout;
}
if (digitalRead(buttonOffPin) && buttonDebounce < millis()) {
inProgress = false;
Serial.println("off");
digitalWrite(ledPin, LOW);
buttonDebounce = millis() + debounceTimeout;
pwmState = LOW;
ledState = false;
}
if(Serial.available()){
readCommand();
}
if (inProgress) {
if (nextPulse < millis()) {
nextPulse = millis() + frequency;
if (pwmState == LOW)
pwmState = HIGH;
else
pwmState = LOW;
digitalWrite(ledPin, pwmState);
}
}
// delay(10);
}
void readCommand() {
String input = Serial.readString();
Serial.println("\"" + input + "\"");
if (input.substring(0, 8) == "schalter")
if (inProgress)
Serial.println("Schalter ist an");
else
Serial.println("Schalter ist aus");
// int brightness = input.toInt();
// cmd = Serial.read();
// value = Serial.parseInt();
}