0% found this document useful (0 votes)
318 views

Arduino Cheat Sheet

The document provides a comprehensive overview of the Arduino programming language and hardware. It covers control structures, basic program structure, operators, data types, digital and analog I/O, math functions, random numbers, interrupts, serial communication, EEPROM, servo control, I2C, libraries and more. The summary is intended as a high-level cheat sheet for Arduino programming.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
318 views

Arduino Cheat Sheet

The document provides a comprehensive overview of the Arduino programming language and hardware. It covers control structures, basic program structure, operators, data types, digital and analog I/O, math functions, random numbers, interrupts, serial communication, EEPROM, servo control, I2C, libraries and more. The summary is intended as a high-level cheat sheet for Arduino programming.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1

Control Structures

if (x < 5) { ... } else { ... }


while (x < 5) { ... }
do { ... } while ( x < 5);
for (int i = 0; i < 10; i++) { ... }
break; // exit a loop immediately
continue; // go to next iteration
switch (myVar) {
case 1:
...
break;
case 2:
...
break;
default:
...
}
return x; // or "return;" for voids
Basic Program Structure
void setup() {
// runs once when sketch starts
}
void loop() {
// runs repeatedly
}
General Operators
= (assignment operator)
+ (add) - (subtract)
* (multiply) / (divide)
% (modulo)
== (equal to) != (not equal to)
< (less than) > (greater than)
<= (less than or equal to)
>= (greater than or equal to)
&& (and) || (or) ! (not)
Pointer Access
& (reference: get a pointer)
* (dereference: follow a pointer)
Bitwise Operators
& (bitwise and) | (bitwise or)
^ (bitwise xor) ~ (bitwise not)
<< (shift left) >> (shift right)
Compound Operators
++ (increment)
-- (decrement)
+= (compound addition)
-= (compound substraction)
*= (compound multiplication)
/= (compound division)
&= (compound bitwise and)
|= (compound bitwise or)
Constants
HIGH | LOW
INPUT | OUTPUT
true | false
143 // Decimal
0173 // Octal (leading 0)
0b11011111 // Binary
0x7B // Hex (hexadecimal)
7U // force unsigned
10L // force long
15UL // force long unsigned
10.0 // force floating point
2.4e5 // 240000
Data types
void
boolean (0, 1, true, false)
char (e.g. 'a' -128 to 127)
int (-32768 to 32767)
long (-2147483648 to 2147483647)
unsigned char (0 to 255)
byte (0 to 255)
unsigned int (0 to 65535)
word (0 to 65535)
unsigned long (0 to 4294967295)
float (-3.4028e+38 to 3.4028e+38)
double (currently same as float)
Strings
char S1[8] =
{'A','r','d','u','i','n','o'};
// unterminated string; may crash
char S2[8] =
{'A','r','d','u','i','n','o','\0'};
// includes \0 null termination
char S3[]="arduino";
char S4[8]="arduino";
Arrays
int myInts[6]; // array of 6 ints
int myPins[]={2, 4, 8, 3, 6};
int mySensVals[6]={2, 4, -8, 3, 2};
myInts[0]=42; // assigning first
// index of myInts
myInts[6]=12; // ERROR! Indexes
// are 0 though 5
Conversions
char() byte()
int() word()
long() float()
Qualifiers
static // persists between calls
volatile // use RAM (nice for ISR)
const // make read only
PROGMEM // Use flash
Digital I/O
pinMode(pin,[INPUT, OUTPUT])
digitalWrite(pin, value)
int digitalread(pin)
// Write HIGH to inputs to use
// pull-up resistors
Analog I/O
analogReference([DEFAULT,
INTERNAL, EXTERNAL])
int analogRead(pin)
// Call twice if switching pin
// from a high-Z source
analogWrite(pin, value) // PWM
Advanced I/O
tone(pin, freqhz)
tone(pin, freqhz, duration_ms)
noTone(pin)
shiftOut(dataPin, clockPin,
[MSBFIRST,LSBFIRST], value)
unsigned long pulseIn(pin,
[HIGH,LOW])
Time
unsigned long millis()
// overflow at 50 days
unsigned long micros()
// overflow at 70 minutes
delay(ms)
delayMicroseconds(us)
Math
min(x, y) max(x, y) abs(x)
sin(rad) cos(rad) tan(rad)
sqrt(x) pow(base, exponent)
constrain(x, minval, maxval)
map(val, fromL, fromH, toL, toH)
Random Numbers
randomSeed(seed) // long or int
long random(max)
long random(min, max)
Bits and Bytes
lowByte(x) highByte(x)
bitRead(x, bitn)
bitWrite(x, bitn, bit)
bitSet(x, bitn)
bitClear(x, bitn)
bit(bitn) // bitn: 0=LSB 7=MSB
External Interrupts
attachInterrupt(interrupt, func,
[LOW, CHANGE, RISING, FALLING])
detachInterrupt(interrupt)
interrupts()
noInterrupts()
Serial (communicate with PC or via RX/TX)
begin(long Speed) // set bits/sec
end()
int available()
byte read()
byte peek()
flush()
print(myData)
println(myData)
write(myBytes)
flush()
EEPROM (#include <EEPROM.h>)
byte read(intAddr)
write(intAddr, myByte)
Servo (#include <Servo.h>)
attach(pin, [min_uS, max_uS])
write(angle) // 0, 180
writeMicroseconds(uS)
// 1000-2000; 1500 is midpoint
read() // 0 - 180
attached() // returns boolean
detach()
SoftwareSerial (serial comm. on any pins)
(#include <softwareSerial.h>)
SoftwareSerial(rxPin, txPin)
// select rx and tx pins
begin(long Speed) // up to 9600
char read() // blocks till data
print(myData)
println(myData)
Wire (IC comm.) (#include <Wire.h>)
begin() // join a master
begin(addr) // join a slave @ addr
requestFrom(address, count)
beginTransmission(addr) // Step 1
send(myByte) // Step 2
send(char * mystring)
send(byte * data, size)
endTransmission() // Step 3
byte available() // Num of bytes
byte receive() // Return next byte
onReceive(handler)
onRequest(handler)
Libraries
L
TX
RX
ON
I
C
S
P
DIGITAL (PWM~)
1
POWER
W
W
W
.
A
R
D
U
I
N
O
.
C
C
ANALOG IN
ARDUINO
RESET
A
0
A
1
A
2
A
3
A
4
A
5
A
R
E
F
G
N
D
1
3
1
2
~
1
1
~
1
0
~
987
~
6
~
54
~
32
T
X

1
R
X

0
R
E
S
E
T
3
.
3
V
5
V
G
N
D
G
N
D
V
i
n
Arduino Cheat Sheet
Most information from the Arduino Language Reference:
http://arduino.cc/en/Reference/HomePage
by Mark Liffiton
Structure & Flow Operators Built-in Functions
Variables, Arrays, and Data
Adapted from:
- Original by Gavin Smith
- SVG version by Frederic Dufourg
- Arduino board drawing
original by Fritzing.org

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy