1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4
<title>Arduino - Reference </title>
5
<link rel='stylesheet' href='arduino.css' type='text/css' />
11
<div class="title"><a href="http://www.arduino.cc/">Arduino</a></div>
13
<!-- SiteSearch Google -->
0
14
<FORM method=GET action="http://www.google.com/search">
1
15
<input type=hidden name=ie value=UTF-8>
2
16
<input type=hidden name=oe value=UTF-8>
3
17
<INPUT TYPE=text name=q size=25 maxlength=255 value="">
4
18
<INPUT type=submit name=btnG VALUE="search">
5
19
<input type=hidden name=domains value="http://www.arduino.cc/">
20
<input type=hidden name=sitesearch value="http://www.arduino.cc/">
6
22
<!-- SiteSearch Google -->
28
<p><a class='wikilink' href='Guide_index.html'>Guide</a>
30
<p class='vspace'></p><p><a class='wikilink' href='http://www.arduino.cc/en/Tutorial/HomePage'>Tutorials</a>
32
<p class='vspace'></p><p><a class='selflink' href='index.html'>Reference</a>
34
<p class='vspace'></p><p><a class='wikilink' href='http://www.arduino.cc/en/Main/Hardware'>Hardware</a>
36
<p class='vspace'></p><p><a class='wikilink' href='http://www.arduino.cc/en/Main/Software'>Software</a>
38
<p class='vspace'></p><p><a class='urllink' href='http://www.arduino.cc/blog/' rel='nofollow'>Blog</a>
40
<p class='vspace'></p><p><a class='urllink' href='http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl' rel='nofollow'>Forum</a>
42
<p class='vspace'></p><p><a class='urllink' href='http://www.arduino.cc/playground/' rel='nofollow'>Playground</a>
44
<p class='vspace'></p><p><a class='urllink' href='http://www.arduino.cc/playground/Projects/ArduinoUsers' rel='nofollow'>Exhibition</a>
46
<p class='vspace'></p><p><a class='wikilink' href='http://www.arduino.cc/en/Hacking/HomePage'>Hacking</a>
48
<p class='vspace'></p><p><a class='wikilink' href='http://www.arduino.cc/en/Main/FAQ'>FAQ</a>
50
<p class='vspace'></p><p><a class='wikilink' href='http://www.arduino.cc/en/Main/Buy'>Buy</a>
58
<p><strong>Reference</strong> <a class='selflink' href='index.html'>Language</a> (<a class='wikilink' href='Extended.html'>extended</a>) | <a class='wikilink' href='Libraries.html'>Libraries</a> | <a class='wikilink' href='Comparison.html'>Comparison</a>
60
<p class='vspace'></p><h1>Arduino Reference</h1>
61
<p><em>See the <strong><a class='wikilink' href='Extended.html'>extended reference</a></strong> for more advanced features of the Arduino languages.</em>
63
<p class='vspace'></p><p>Arduino programs can be divided in three main parts: <em>structure</em>, <em>values</em> (variables and constants), and <em>functions</em>. The Arduino language is based on C/C++.
65
<p class='vspace'></p>
66
<table width='90%' border='0' cellpadding='5' cellspacing='0'><tr><td width='50%' valign='top'>
68
<p>An Arduino program run in two parts:
70
<p class='vspace'></p><ul><li>void <a class='wikilink' href='Setup.html'>setup</a>()
71
</li><li>void <a class='wikilink' href='Loop.html'>loop</a>()
72
</li></ul><p class='vspace'></p><p>setup() is preparation, and loop() is execution. In the setup section, always at the top of your program, you would set <a class='wikilink' href='PinMode.html'>pinModes</a>, initialize serial communication, etc. The loop section is the code to be executed -- reading inputs, triggering outputs, etc.
74
<p class='vspace'></p><ul><li><a class='wikilink' href='VariableDeclaration.html'>Variable Declaration</a>
75
</li><li><a class='wikilink' href='FunctionDeclaration.html'>Function Declaration</a>
76
<ul><li><a class='wikilink' href='Void.html'>void</a>
77
</li></ul></li></ul><p class='vspace'></p><h4>Control Structures</h4>
78
<ul><li><a class='wikilink' href='If.html'>if</a>
79
</li><li><a class='wikilink' href='Else.html'>if...else</a>
80
</li><li><a class='wikilink' href='For.html'>for</a>
81
</li><li><a class='wikilink' href='SwitchCase.html'>switch case</a>
82
</li><li><a class='wikilink' href='While.html'>while</a>
83
</li><li><a class='wikilink' href='DoWhile.html'>do... while</a>
84
</li><li><a class='wikilink' href='Break.html'>break</a>
85
</li><li><a class='wikilink' href='Continue.html'>continue</a>
86
</li><li><a class='wikilink' href='Return.html'>return</a>
87
</li></ul><p class='vspace'></p><h4>Further Syntax</h4>
88
<ul><li><a class='wikilink' href='SemiColon.html'>;</a> (semicolon)
89
</li><li><a class='wikilink' href='Braces.html'>{}</a> (curly braces)
90
</li><li><a class='wikilink' href='Comments.html'>//</a> (single line comment)
91
</li><li><a class='wikilink' href='Comments.html'>/* */</a> (multi-line comment)
92
</li></ul><p class='vspace'></p><h4>Arithmetic Operators</h4>
93
<ul><li><a class='wikilink' href='Arithmetic.html'>plus</a> (addition)
94
</li><li><a class='wikilink' href='Arithmetic.html'>-</a> (subtraction)
95
</li><li><a class='wikilink' href='Arithmetic.html'>*</a> (multiplication)
96
</li><li><a class='wikilink' href='Arithmetic.html'>/</a> (division)
97
</li><li><a class='wikilink' href='Modulo.html'>%</a> (modulo)
98
</li></ul><p class='vspace'></p><h4>Comparison Operators</h4>
99
<ul><li><a class='wikilink' href='If.html'>==</a> (equal to)
100
</li><li><a class='wikilink' href='If.html'>!=</a> (not equal to)
101
</li><li><a class='wikilink' href='If.html'><</a> (less than)
102
</li><li><a class='wikilink' href='If.html'>></a> (greater than)
103
</li><li><a class='wikilink' href='If.html'><=</a> (less than or equal to)
104
</li><li><a class='wikilink' href='If.html'>>=</a> (greater than or equal to)
105
</li></ul><p class='vspace'></p><h4>Boolean Operators</h4>
106
<ul><li><a class='wikilink' href='Boolean.html'>&&</a> (and)
107
</li><li><a class='wikilink' href='Boolean.html'>||</a> (or)
108
</li><li><a class='wikilink' href='Boolean.html'>!</a> (not)
109
</li></ul><p class='vspace'></p><h4>Compound Operators</h4>
110
<ul><li><a class='wikilink' href='Increment.html'>++</a> (increment)
111
</li><li><a class='wikilink' href='Increment.html'>--</a> (decrement)
112
</li><li><a class='wikilink' href='IncrementCompound.html'>+=</a> (compound addition)
113
</li><li><a class='wikilink' href='IncrementCompound.html'>-=</a> (compound subtraction)
114
</li><li><a class='wikilink' href='IncrementCompound.html'>*=</a> (compound multiplication)
115
</li><li><a class='wikilink' href='IncrementCompound.html'>/=</a> (compound division)
116
</li></ul><p class='vspace'></p><h2>Variables</h2>
117
<p>Variables are expressions that you can use in programs to store values, such as a sensor reading from an analog pin.
119
<p class='vspace'></p><h4>Constants</h4>
120
<p>Constants are particular values with specific meanings.
122
<p class='vspace'></p><ul><li><a class='wikilink' href='Constants.html'>HIGH</a> | <a class='wikilink' href='Constants.html'>LOW</a>
123
</li><li><a class='wikilink' href='Constants.html'>INPUT</a> | <a class='wikilink' href='Constants.html'>OUTPUT</a>
124
<p class='vspace'></p></li><li><a class='wikilink' href='IntegerConstants.html'>Integer Constants</a>
125
</li></ul><p class='vspace'></p><h4>Data Types</h4>
126
<p>Variables can have various types, which are described below.
128
<p class='vspace'></p><ul><li><a class='wikilink' href='BooleanVariables.html'>boolean</a>
129
</li><li><a class='wikilink' href='Char.html'>char</a>
130
</li><li><a class='wikilink' href='Byte.html'>byte</a>
131
</li><li><a class='wikilink' href='Int.html'>int</a>
132
</li><li><a class='wikilink' href='UnsignedInt.html'>unsigned int</a>
133
</li><li><a class='wikilink' href='Long.html'>long</a>
134
</li><li><a class='wikilink' href='UnsignedLong.html'>unsigned long</a>
135
</li><li><a class='wikilink' href='Float.html'>float</a>
136
</li><li><a class='wikilink' href='Double.html'>double</a>
137
</li><li><a class='wikilink' href='String.html'>string</a>
138
</li><li><a class='wikilink' href='Array.html'>array</a>
139
</li></ul><p class='vspace'></p><h2>Reference</h2>
140
<ul><li><a class='wikilink' href='ASCIIchart.html'>ASCII chart</a>
141
</li></ul><p class='vspace'></p></td><td width='50%' valign='top'>
143
<p><strong>Digital I/O</strong>
144
</p><ul><li><a class='wikilink' href='PinMode.html'>pinMode</a>(pin, mode)
145
</li><li><a class='wikilink' href='DigitalWrite.html'>digitalWrite</a>(pin, value)
146
</li><li>int <a class='wikilink' href='DigitalRead.html'>digitalRead</a>(pin)
147
</li></ul><p class='vspace'></p><p><strong>Analog I/O</strong>
148
</p><ul><li>int <a class='wikilink' href='AnalogRead.html'>analogRead</a>(pin)
149
</li><li><a class='wikilink' href='AnalogWrite.html'>analogWrite</a>(pin, value) - <em>PWM</em>
150
</li></ul><p class='vspace'></p><p><strong>Advanced I/O</strong>
151
</p><ul><li><a class='wikilink' href='ShiftOut.html'>shiftOut</a>(dataPin, clockPin, bitOrder, value)
152
</li><li>unsigned long <a class='wikilink' href='PulseIn.html'>pulseIn</a>(pin, value)
153
</li></ul><p class='vspace'></p><p><strong>Time</strong>
154
</p><ul><li>unsigned long <a class='wikilink' href='Millis.html'>millis</a>()
155
</li><li><a class='wikilink' href='Delay.html'>delay</a>(ms)
156
</li><li><a class='wikilink' href='DelayMicroseconds.html'>delayMicroseconds</a>(us)
157
</li></ul><p class='vspace'></p><p><strong>Math</strong>
158
</p><ul><li><a class='wikilink' href='Min.html'>min</a>(x, y)
159
</li><li><a class='wikilink' href='Max.html'>max</a>(x, y)
160
</li><li><a class='wikilink' href='Abs.html'>abs</a>(x)
161
</li><li><a class='wikilink' href='Constrain.html'>constrain</a>(x, a, b)
162
</li></ul><p class='vspace'></p><p><strong>Random Numbers</strong>
164
<p class='vspace'></p><ul><li><a class='wikilink' href='RandomSeed.html'>randomSeed</a>(seed)
165
</li><li>long <a class='wikilink' href='Random.html'>random</a>(max)
166
</li><li>long <a class='wikilink' href='Random.html'>random</a>(min, max)
167
</li></ul><p class='vspace'></p><p><strong>Serial Communication</strong>
169
<p class='vspace'></p><p>Used for communication between the Arduino board and a computer or other devices. This communication happens via the Arduino board's serial or USB connection and on digital pins 0 (RX) and 1 (TX). Thus, if you use these functions, <em>you cannot also use pins 0 and 1 for digital i/o.</em>
171
<p class='vspace'></p><ul><li><a class='wikilink' href='Serial_Begin.html'>Serial.begin</a>(speed)
172
</li><li>int <a class='wikilink' href='Serial_Available.html'>Serial.available</a>()
173
</li><li>int <a class='wikilink' href='Serial_Read.html'>Serial.read</a>()
174
</li><li><a class='wikilink' href='Serial_Flush.html'>Serial.flush</a>()
175
</li><li><a class='wikilink' href='Serial_Print.html'>Serial.print</a>(data)
176
</li><li><a class='wikilink' href='Serial_Println.html'>Serial.println</a>(data)
177
</li></ul><p class='vspace'></p><p><br clear='all' />
179
<p class='vspace'></p><p><strong>Didn't find something?</strong> Check the <a class='wikilink' href='Extended.html'>extended reference</a>.
181
<p class='vspace'></p></td></tr></table>
182
<p><a class='selflink' href='index.html'>Reference Home</a>
184
<p class='vspace'></p><p><em>Corrections, suggestions, and new documentation should be posted to the <a class='urllink' href='http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?board=swbugs' rel='nofollow'>Forum</a>.</em>
186
<p class='vspace'></p><p>The text of the Arduino reference is licensed under a
187
<a class='urllink' href='http://creativecommons.org/licenses/by-sa/3.0/' rel='nofollow'>Creative Commons Attribution-ShareAlike 3.0 License</a>. Code samples in the reference are released into the public domain.
193
<div id="pagefooter">
194
<a href='#'>Edit Page</a> | <a href='#'>Page History</a> | <a href='#' target='_blank'>Printable View</a> | <a href='RecentChanges.html'>Recent Site Changes</a>
196
<!--/PageFooterFmt-->