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

.. _arduino-pinmode:

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

.. contents:: Contents
   :local:

Library Documentation
---------------------

.. 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 
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
---------------------

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