aboutsummaryrefslogtreecommitdiffstats
path: root/source/arduino/pulsein.rst
blob: 568d992a75b07088b60bc4f298eab622b2776fbb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
.. _arduino-pulsein:

pulseIn()
=========

Description
-----------

Reads a pulse (either HIGH or LOW) on a pin. For example, if
**value** is **HIGH**, **pulseIn()** waits for the pin to go
**HIGH**, starts timing, then waits for the pin to go **LOW** and
stops timing. Returns the length of the pulse in microseconds.
Gives up and returns 0 if no pulse starts within a specified time
out.



The timing of this function has been determined empirically and
will probably show errors in longer pulses. Works on pulses from 10
microseconds to 3 minutes in length.



Syntax
------

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



Parameters
----------

pin: the number of the pin on which you want to read the pulse.
(*int*)



value: type of pulse to read: either
`HIGH <http://arduino.cc/en/Reference/Constants>`_ or
`LOW <http://arduino.cc/en/Reference/Constants>`_. (*int*)



timeout (optional): the number of microseconds to wait for the
pulse to start; default is one second (*unsigned long*)



Returns
-------

the length of the pulse (in microseconds) or 0 if no pulse started
before the timeout (*unsigned long*)



Example
-------

::

     
    
    int pin = 7;
    unsigned long duration;
    
    void setup()
    {
      pinMode(pin, INPUT);
    }
    
    void loop()
    {
      duration = pulseIn(pin, HIGH);
    }