100% found this document useful (1 vote)
636 views

Arduino Cheat Sheet

The document provides a summary of key concepts in Arduino programming including data types, variables, arrays, libraries, I/O functions, operators, and control structures. It lists common bitwise operators, time functions, variable qualifiers, and ways to access pins, analog/digital signals, and serial communication. Mathematical functions, random numbers, and programming flow are also covered at a high level.

Uploaded by

Farah Yin
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
636 views

Arduino Cheat Sheet

The document provides a summary of key concepts in Arduino programming including data types, variables, arrays, libraries, I/O functions, operators, and control structures. It lists common bitwise operators, time functions, variable qualifiers, and ways to access pins, analog/digital signals, and serial communication. Mathematical functions, random numbers, and programming flow are also covered at a high level.

Uploaded by

Farah Yin
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1

Primary source: Arduino Language Reference

http://arduino.cc/en/Reference/

Arduino Programming Cheat Sheet

Bitwise Operators
& (bitwise and)
^ (bitwise xor)
<< (shift left)

| (bitwise or)
~ (bitwise not)
>> (shift right)

Variables, Arrays, and Data

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
Type Conversions
char()
byte()
int()
word()
long()
float()

Time
unsigned long millis()
// overflows at 50 days
unsigned long micros()
// overflows at 70 minutes
delay(msec)
delayMicroseconds(usec)

RESET

External Interrupts
attachInterrupt(interrupt, func,
[LOW, CHANGE, RISING, FALLING])
detachInterrupt(interrupt)
interrupts()
noInterrupts()

DIGITAL (PWM~)

L
TX
RX

ARDUINO UNO
ON
ICSP

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

Pointer Access
& (reference: get a pointer)
* (dereference: follow a pointer)

SoftwareSerial (serial comm. on any pins)


(#include <softwareSerial.h>)
SoftwareSerial(rxPin, txPin)
begin(long Speed) // up to 115200
listen()
// Only 1 can listen
isListening() // at a time.
read, peek, print, println, write
// all like in Serial library

Servo (#include <Servo.h>)


attach(pin, [min_uS, max_uS])
write(angle) // 0 to 180
writeMicroseconds(uS)
// 1000-2000; 1500 is midpoint
int read()
// 0 to 180
bool attached()
detach()
Wire (IC comm.) (#include <Wire.h>)
// join a master
begin()
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
int available() // #bytes available
byte receive() // get next byte
onReceive(handler)
onRequest(handler)

WWW.ARDUINO.CC - Made in Italy

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";

by Mark Liffiton

ATmega382:
16MHz, 32KB Flash (prog.),
2KB SRAM, 1KB EEPROM

DC in
sugg. 7-12V
limit 6-20V

POWER

ANALOG IN

SDA
SCL

(persists between calls)


(in RAM (nice for ISR))
(make read only)
(in flash)

Serial (communicate with PC or via RX/TX)


begin(long Speed) // up to 115200
end()
int available() // #bytes available
byte read() // -1 if none available
byte peek()
flush()
print(myData)
println(myData)
write(myBytes)
SerialEvent() // called if data rdy

EEPROM (#include <EEPROM.h>)


byte read(intAddr)
write(intAddr, myByte)

A0
A1
A2
A3
A4
A5

Qualifiers
static
volatile
const
PROGMEM

(0, 1, true, false)


(e.g. 'a' -128 to 127)
(-32768 to 32767)
(-2147483648 to 2147483647)
char (0 to 255)
(0 to 255)
int
(0 to 65535)
(0 to 65535)
long (0 to 4294967295)
(-3.4028e+38 to 3.4028e+38)
(currently same as float)

Constants
HIGH | LOW
INPUT | OUTPUT
true | false
143
(Decimal)
0173
(Octal - base 8)
0b11011111 (Binary)
0x7B
(Hexadecimal - base 16)
7U
(force unsigned)
10L
(force long)
15UL
(force long unsigned)
10.0
(force floating point)
2.4e5
(2.4*10^5 = 240000)

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])

Random Numbers
randomSeed(seed) // long or int
long random(max)
long random(min, max)

IOREF
RESET
3.3V
5V
GND
GND
Vin

Data types
void
boolean
char
int
long
unsigned
byte
unsigned
word
unsigned
float
double

Digital I/O (pins: 0-13 A0-A5)


pinMode(pin,[INPUT, OUTPUT])
int digitalread(pin)
digitalWrite(pin, value)
// Write HIGH to an input to
// enable pull-up resistors
Analog In (pins: 0-5)
int analogRead(pin)
analogReference(
[DEFAULT, INTERNAL, EXTERNAL])
PWM Out (pins: 3 5 6 9 10 11)
analogWrite(pin, value)

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)

int1
int0

Compound Operators
++ (increment)
-- (decrement)
+= (compound addition)
-= (compound substraction)
*= (compound multiplication)
/= (compound division)
&= (compound bitwise and)
|= (compound bitwise or)

Pin Input/Output

Libraries

7
~6
~5
4
~3
2
TX1
RX0

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; // just return; for voids

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)

Built-in Functions

AREF
GND
13
12
~11
~10
~9
8

Basic Program Structure


void setup() {
// runs once when sketch starts
}
void loop() {
// runs repeatedly
}

Operators

SCL
SDA

Structure & Flow

Adapted from:
- Original by Gavin Smith
- SVG version by Frederic Dufourg
- Arduino board drawing
original by Fritzing.org

You might also like