aboutsummaryrefslogtreecommitdiffstats
path: root/source/arduino/pinmode.rst
blob: 34c7998905559db908d355651a1381bf1d7b3c51 (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
.. highlight:: cpp

.. _arduino-pinmode:

pinMode()
=========

.. doxygenfunction:: pinMode

.. doxygenenum:: WiringPinMode

Discussion
----------

pinMode() is usually called within :ref:`arduino-setup` in order to
configure a pin for a certain usage (although it may be called from
anywhere).


Example
-------

 ::

    
    int ledPin = 13;                 // LED connected to digital pin 13
    
    void setup()
    {
      pinMode(ledPin, OUTPUT);      // sets the digital pin as output
    }
    
    void loop()
    {
      digitalWrite(ledPin, HIGH);   // sets the LED on
      delay(1000);                  // waits for a second
      digitalWrite(ledPin, LOW);    // sets the LED off
      delay(1000);                  // waits for a second
    }



Arduino Compatibility Note
--------------------------

The libmaple implementation of pinMode() supports OUTPUT and INPUT
modes with a meaning identical to that of the Arduino function.

INPUT_ANALOG and PWM modes were added because the Maple does not
distinguish between analog and digital pins the same way the Arduino
does.  Unlike the Arduino, you **must call pinMode**\ () to set up a pin
for these purposes before a call to, e.g., :ref:`arduino-analogRead`.
In practice, this should only add a few lines of pinMode() calls to
your :ref:`arduino-setup` function.

OUTPUT_OPEN_DRAIN, INPUT_PULLUP, INPUT_PULLDOWN, and PWM_OPEN_DRAIN
modes represent functionality not currently available on Arduino
boards.

See also
--------

-  :ref:`arduino-constants`
-  :ref:`arduino-digitalwrite`
-  :ref:`arduino-digitalread`
-  Maple :ref:`GPIO <gpio>` reference page
-  Arduino `pinMode() <http://www.arduino.cc/en/Reference/PinMode>`_ reference