Arduino/ c++ impulsschaltung?

2 Antworten

Vom Beitragsersteller 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 
Beitragsersteller
 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?

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.

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;
	}
}