pulseIn()

[Speciális I/O]

Leírás

Kiolvas egy impulzust (HIGH vagy LOW) egy kivezetésről. Például, ha az érték HIGH, a pulseIn() megvárja, hogy a kivezetés LOW-ról HIGH-ra váltson, elindítja az időzítést, majd megvárja, amíg a kivezetés LOW-ra megy, és leállítja az időzítést. Visszaadja az impulzus hosszát mikroszekundumban, vagy feladja, és 0-t ad vissza, ha nem érkezett teljes impulzus az időtúllépésen belül.

Ennek a függvénynek az időzítését empirikusan határozták meg, és valószínűleg hibákat fog mutatni hosszabb impulzusok esetén. 10 mikroszekundumtól 3 percig terjedő impulzusokon működik.

Megjegyzés
ha használja az opcionális időtúllépést, a kód gyorsabban fut le.

Szintaxis

pulseIn(pin, value)
pulseIn(pin, value, timeout)

Paraméterek

pin: annak az Arduino kivezetésnek a száma, amelyen le szeretné olvasni az impulzust. Engedélyezett adattípusok: int.
value: az olvasandó impulzus típusa: HIGH vagy LOW. Engedélyezett adattípusok: int.
timeout: (opcionális): az impulzus kezdetére várakozás mikromásodperceinek száma; az alapértelmezett egy másodperc. Engedélyezett adattípusok: unsigned long.

Visszatérési érték

Az impulzus hossza (mikromásodpercben) vagy 0, ha nem indult impulzus az időtúllépés előtt. Adattípus: unsigned long.

Példa

A példa a 7-es kivezetésen egy impulzus időtartamát írja ki.

int pin = 7;
unsigned long duration;

void setup() {
  Serial.begin(9600);
  pinMode(pin, INPUT);
}

void loop() {
  duration = pulseIn(pin, HIGH);
  Serial.println(duration);
}

Lásd még