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

Chuletario Arduino

This document provides a summary of syntax, functions, data types, and libraries for the Arduino programming language. It includes definitions of basic syntax like comments, variables, constants, and data types. It also describes functions for digital and analog input/output, serial communication, interrupts, math operations and random numbers. Libraries are mentioned for common microcontrollers and components like EEPROM, Servo and I2C.

Uploaded by

hozze2
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
155 views

Chuletario Arduino

This document provides a summary of syntax, functions, data types, and libraries for the Arduino programming language. It includes definitions of basic syntax like comments, variables, constants, and data types. It also describes functions for digital and analog input/output, serial communication, interrupts, math operations and random numbers. Libraries are mentioned for common microcontrollers and components like EEPROM, Servo and I2C.

Uploaded by

hozze2
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1

AnouiNo CHzAT SHzzT V.

D2c
Mostly taken from the extended reference:
http://arduino.cc/en/Reference/Extended
Gavin Smith Robots and Dinosaurs, The Sydney Hackspace
Structure
void setup() void loop()
Further Syntax
// (single line comment)
/* (multi-line comment) */
#define DOZEN 12 //Not baker`s!
#include avr/pgmspace.h~
General Operators
(assignment operator)
(addition) - (subtraction)
* (multiplication) / (division)
(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
& reIerence operator
* dereIerence operator
Bitwise Operators
& (bitwise and) , (bitwise or)
` (bitwise xor) ~ (bitwise not)
(bitshiIt leIt) ~~ (bitshiIt right)
Compound Operators
(increment) -- (decrement)
(compound addition)
- (compound subtraction)
* (compound multiplication)
/ (compound division)
& (compound bitwise and)
, (compound bitwise or)
Control Structures
if (x5) } else }
switch (myvar)
case 1:
break;
case 2:
break;
default:
}
for (int i0; i 255; i) }
while (x5) }
do } while (x5);
continue; //Go to next in do/Ior/while loop
return x; // Or return;` Ior voids.
goto // considered harmIul :-)
Constants
HIGH , LOW
INPUT , OUTPUT
true , Ialse
143 // Decimal number
0173 // Octal number
0b11011111 //Binary
0x7B // Hex number
7U // Force unsigned
10L // Force long
15UL // Force long unsigned
10.0 // Forces Iloating point
2.4e5 // 240000
Data Types
void
boolean (0, 1, Ialse, true)
char (e.g. a` -128 to 127)
unsigned char (0 to 255)
byte (0 to 255)
int (-32,768 to 32,767)
unsigned int (0 to 65535)
word (0 to 65535)
long (-2,147,483,648 to
2,147,483,647)
unsigned long (0 to 4,294,967,295)
float (-3.4028235E38 to
3.4028235E38)
double (currently same as Iloat)
sizeof(myint) // returns 2 bytes
Strings
char S1|15|;
char S2|8|'a','r','d','u','i','n','o'};
char S3|8|'a','r','d','u','i','n','o','\0'};
//Included \0 null termination
char S4| | "arduino";
char S5|8| "arduino";
char S6|15| "arduino";
Arrays
int myInts|6|;
int myPins|| 2, 4, 8, 3, 6};
int mySensVals|6| 2, 4, -8, 3, 2};
Conversion
char() byte()
int() word()
long() float()
Qualifiers
static // persists between calls
volatile // use RAM (nice Ior ISR)
const // make read-only
PROGMEM // use Ilash
Digital I/O
pinMode(pin, |INPUT,OUTPUT|)
digitalWrite(pin, value)
int digitalRead(pin)
//Write High to inputs to use pull-up res
Analog I/O
analogReference(|DEFAULT,INTERNA
L,EXTERNAL|)
int analogRead(pin) //Call twice iI
switching pins Irom high Z source.
analogWrite(pin, value) // PWM
Advanced I/O
tone(pin, Ireqhz)
tone(pin, Ireqhz ,durationms)
noTone(pin)
shiftOut(dataPin, clockPin,
|MSBFIRST,LSBFIRST|, value)
unsigned long pulseIn(pin, |HIGH,LOW|)
Time
unsigned long millis() // 50 days overIlow.
unsigned long micros() // 70 min overIlow
delay(ms)
delayMicroseconds(us)
Math
min(x, y) max(x, y) abs(x)
constrain(x, minval, maxval )
map(val, IromL, IromH, toL, toH)
pow(base, exponent) sqrt(x)
sin(rad) cos(rad) tan(rad)
Random Numbers
randomSeed(seed) // Long or int
long random(max)
long random(min, max)
Bits and Bytes
lowByte() highByte()
bitRead(x,bitn) bitWrite(x,bitn,bit)
bitSet(x,bitn) bitClear(x,bitn)
bit(bitn) //bitn: 0-LSB 7-MSB
External Interrupts
attachInterrupt(interrupt, Iunction,
|LOW,CHANGE,RISING,FALLING|)
detachInterrupt(interrupt)
interrupts()
noInterrupts()
Serial.
begin(|300, 1200, 2400, 4800, 9600,
14400, 19200, 28800, 38400, 57600,
115200|)
end()
int available()
int read()
flush()
print()
println()
write()
EEPROM (#include EEPROM.h~)
byte read(intAddr)
write(intAddr,myByte)
Servo (#include Servo.h~)
attach(pin , |minuS, maxuS|)
write(angle) // 0-180
writeMicroseconds(uS) //1000-2000,
1500 is midpoint
read() // 0-180
attached() //Returns boolean
detach()
SoftwareSerial(RxPin,TxPin)
// #includeSoftwareSerial.h~
begin(longSpeed) // up to 9600
char read() // blocks till data
print(myData) or println(myData)
Wire (#include Wire.h~) // For I2C
begin() // Join as master
begin(addr) // Join as 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 oI bytes
byte receive() //Return next byte
onReceive(handler)
onRequest(handler)
Libraries:
ATMega168 ATMega328 ATmega1280
Flash (2k for
boobtloader) 16kB 32kB 128kB
SRAM 1kB 2kB 8kB
EEPROM 512B 1kB 4kB
Pics from Fritzing.Org under C.C. license
From
Arduino.CC
Duemilanove/
Nano/ Pro/
ProMini Mega
# of IO
14 + 6 analog
(Nano has 14+8) 54 + 16 analog
Serial Pins
0 - RX
1 - TX
0 - RX1 1 - TX1
19 - RX2 18 - TX2
17 - RX3 16 - TX3
15 - RX4 14 - TX4
Ext Interrupts
2 - (Int 0)
3 - (Int 1)
2,3,21,20,19,18
(IRQ0- IRQ5)
PWM pins
5,6 - Timer 0
9,10 - Timer 1
3,11 - Timer 2 0-13
SPI
10 - SS
11 - MOSI
12 - MISO
13 - SCK
53 - SS
51 - MOSI
50 - MISO
52 - SCK
I2C
Analog4 - SDA
Analog5 - SCK
20 - SDA
21 - SCL

You might also like