Arduino/ c++ impulsschaltung?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Etwas wie:

void trigger(){
    std::time_t current_trigger = std::chrono::system_clock::now();
    if(last_trigger - current_trigger > some_value){
        triggered = true;
        //Do stuff
    }
    last_trigger = current_trigger;
}

Das sollte entprellen und dafür sorgen, dass nur eine Aktion ausgeführt wird, wenn nicht innerhalb der letzten "some_value" Sekunden bereits eine Operation ausgeführt oder eine Auswführung versucht wurde.

jhk900 
Fragesteller
 01.01.2023, 15:47

Danke für die Antwort, ich verstehe das Programm zwar nicht ganz aber er gibt mir ein paar Fehlermeldungen aus muss ich dafür noch etwas definieren oder hinzufügen?

0
Destranix  01.01.2023, 15:50
@jhk900

Die gegebene Funktion ist lediglich einBeispiel für eine Modellierungsweise. Du musst das Konzept verstehen und es an passender Stelle passend umsetzen.

1

Dazu müsstest du vorher definieren, wie lange der Impuls sein soll.

#define INPUT //Hier der Eingang des uC
#define SIGNAL //Hier der Befehl vom uC


bool schalter = INPUT;
uint8_t impulse = 10;


void loop() {
	if (schalter == TRUE) {
		while (--impulse) {
			SIGNAL = HIGH;
		}
	}else {
		impulse = 10;
	}
}