Beschreibung
Misst die Dauer eines Pulses an einem Pin. Es kann entweder der Wert LOW oder HIGH übergeben werden. Wenn der übergebene Wert HIGH ist, wird gewartet bis der Pin auf HIGH gezogen wird, startet einen Timer und wenn der Pin wieder auf LOW fällt, stoppt der Timer und die Pulslänge in Mikrosekunden (µs) wird zurückgegeben. Wenn ein Timeout spezifiziert wird, gibt die Funktion nach dieser Dauer den Wert 0 zurück.
Die Funktion wurde nur berechnet und kann bei längeren Pulsen zu Fehlmessungen führen. Die Funktion kann Pulslängen von 10µs bis 3 Minuten messen.
Syntax
pulseIn(pin, wert); pulseIn(pin, wert, timeout);
Parameter
pin: die Pinnummer des Pins an dem der Puls gemessen werden soll
wert: der Zusatand bei dem der Timer gestartet werden soll, HIGH oder LOW
timeout: die Zeit die die Funktion auf einen Puls wartet, bis sie 0 zurückgibt und beendet wird
Rückagabewert
Die Pulslänge in Mikrosekunden oder 0 wenn kein Puls innerhalb des timeouts gestartet wurde
Beispiel
int pin = 7;
unsigned long dauer;
void setup()
{
pinMode(pin, INPUT);
}
void loop()
{
dauer = pulseIn(pin, HIGH);
}