//PINS
const int Trigger = 17, Echo = 27;
// VARIABLEN
byte Stunde, Minute, Sekunde;
unsigned long previousMillis, NextTime;
void setup() {
Stunde = 0;
Minute = 0;
Sekunde = 0;
Serial.begin(115200);
pinMode(Echo, INPUT);
pinMode(Trigger, OUTPUT);
}
void loop() {
unsigned long currentMillis = millis();
if ( currentMillis - NextTime >= 1000) {
NextTime += 1000;
// hier das programm jede sek 1 mal.
// Ultraschall sensor SR-HC04 asuwerten
// Trigger 10us Puls eerzeugen
digitalWrite(Trigger, HIGH);
delayMicroseconds(10);
digitalWrite(Trigger, LOW);
// danach mit pulseIn die Dauer des Echo Signals messes (10 us)
unsigned long Pulsdauer = pulseIn(Echo, HIGH);
Serial.printf("Pulsdauer %5ld \n", Pulsdauer); // ld bei long variablen
UhrzeitMitAnzeige();
}
if (Serial.available() > 0) {
char Zeichen = Serial.read();
switch (Zeichen) {
case 'h':
Stunde = Serial.parseInt();
Stunde = constrain(Stunde, 0, 23);
break;
case 'm':
Minute = Serial.parseInt();
Minute = constrain(Minute, 0, 59);
break;
case 's':
Sekunde = Serial.parseInt();
Sekunde = constrain(Sekunde, 0, 59);
break;
}
}
}
void UhrzeitMitAnzeige() {
Sekunde++;
if (Sekunde == 60 ) {
Sekunde == 0;
Minute++;
if (Minute == 60) {
Minute = 0;
Stunde++;
if (Stunde == 24) {
Stunde = 0;
// Tag++;
}
}
}
Serial.printf("Zeit: %02d:%02d:%02d\n", Stunde, Minute, Sekunde);
}
Taster2
Taster4
LED32
LED33
ESP32 Schulboard mit LEDs und Tastern, I2C-Bus mit Standard-Belegung
SSD1306 Display
WS2812 an Pin26