66 lines
1.3 KiB
C++
66 lines
1.3 KiB
C++
const int Taster2 = 2;
|
|
const int LED_rot = 32;
|
|
enum Zustaende_t { zoff, zlow, znorm, zhigh } Zustand;
|
|
bool T_druck;
|
|
uint32_t zeit = 0;
|
|
|
|
void setup() {
|
|
pinMode(Taster2, INPUT_PULLUP);
|
|
pinMode(LED_rot, OUTPUT);
|
|
Serial.begin(115200);
|
|
Serial.println("TEST - DANIEL");
|
|
ledcAttachChannel(LED_rot, 100, 12,0);
|
|
Zustand = zoff;
|
|
}
|
|
|
|
void loop (){
|
|
einlesen();
|
|
verarbeiten();
|
|
delay(10);
|
|
}
|
|
|
|
void einlesen () {
|
|
static bool Neu, Alt;
|
|
Neu = digitalRead(Taster2);
|
|
if (Neu == 0 && Alt == 1) {
|
|
T_druck = true;
|
|
} else {
|
|
T_druck = false;
|
|
}
|
|
Alt = Neu;
|
|
}
|
|
void verarbeiten () {
|
|
switch (Zustand) {
|
|
case zoff: ledcWrite(LED_rot, 4095);
|
|
Serial.println("zoff ");
|
|
if (T_druck == true) {
|
|
Zustand = zlow;
|
|
}
|
|
break;
|
|
case zlow: ledcWrite(LED_rot, 3071);
|
|
Serial.println("zlow");
|
|
if (T_druck == true){
|
|
Zustand = znorm;
|
|
}
|
|
break;
|
|
case znorm: ledcWrite(LED_rot, 2047);
|
|
Serial.println("znorm");
|
|
if (T_druck == true){
|
|
Zustand = zhigh;
|
|
zeit = millis();
|
|
}
|
|
break;
|
|
case zhigh: ledcWrite(LED_rot, 0);
|
|
Serial.println("zhigh");
|
|
if (T_druck == true){
|
|
Zustand = zoff;
|
|
}
|
|
if (millis() - zeit >= 5000){
|
|
Zustand = znorm;
|
|
}
|
|
break;
|
|
default:
|
|
Serial.println("default");
|
|
break;
|
|
}
|
|
} |