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

Arduino Cheat Sheet v03c

This document provides a summary of key Arduino concepts including basic syntax, data types, functions for digital and analog I/O, serial communication, timers and interrupts, math functions, and libraries for common tasks like SPI, I2C, servo control, and random number generation. It outlines the structure of an Arduino sketch, control structures, operators, and other programming constructs. Pin mappings are provided for popular Arduino boards.
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
292 views

Arduino Cheat Sheet v03c

This document provides a summary of key Arduino concepts including basic syntax, data types, functions for digital and analog I/O, serial communication, timers and interrupts, math functions, and libraries for common tasks like SPI, I2C, servo control, and random number generation. It outlines the structure of an Arduino sketch, control structures, operators, and other programming constructs. Pin mappings are provided for popular Arduino boards.
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1

Structure void setup() void loop() Control Structures if (x<5){ } else { } switch (myvar) { case 1: break; case 2: break;

default: } for (int i=0; i <= 255; i++){ } while (x<5){ } do { } while (x<5); continue; //Go to next in do/for/while loop return x; // Or return; for voids. goto // considered harmful :-) Further Syntax // (single line comment) /* (multi-line comment) */ #define DOZEN 12 //Not bakers! #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 & reference operator * dereference operator Bitwise Operators & (bitwise and) | (bitwise or) ^ (bitwise xor) ~ (bitwise not) << (bitshift left) >> (bitshift right) Compound Operators ++ (increment) -- (decrement) += (compound addition) -= (compound subtraction) *= (compound multiplication) /= (compound division) &= (compound bitwise and) |= (compound bitwise or) Blink Sketch /* Blink Turns on an LED on for one second, then off for one second, repeatedly. */ void setup() { // initialize the digital pin as an output. // Pin 13 has an LED connected on most Arduino boards: pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); // set the LED on delay(1000); // wait for a second digitalWrite(13, LOW); // set the LED off delay(1000); // wait for a second }

Arduino Cheat Sheet V.03c


Mostly taken from the extended reference: http://arduino.cc/en/Reference/HomePage Gavin Smith Robots and Dinosaurs, The Sydney Hackspace

ATMega168 ATMega328 ATmega1280 Flash (2k for boobtloader) SRAM EEPROM 16kB 1kB 512B 32kB 2kB 1kB 128kB 8kB 4kB

Constants HIGH | LOW INPUT | OUTPUT true | false 143 // Decimal number 0173 // Octal number 0b11011111 //Binary 0x7B // Hex number 7U // Force unsigned 10L // Force long 15UL // Force long unsigned 10.0 // Forces floating point 2.4e5 // 240000

Qualifiers static // persists between calls volatile // use RAM (nice for ISR) const // make read-only PROGMEM // use flash

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

# of IO

Duemilanove/ Nano/ Pro/ ProMini 14 + 6 analog (Nano has 14+8)

Mega 54 + 16 analog 0 - RX1 1 - TX1 19 - RX2 18 - TX2 17 - RX3 16 - TX3 15 - RX4 14 - TX4 2,3,21,20,19,18 (IRQ0- IRQ5)

Serial Pins Ext Interrupts

0 - RX 1 - TX 2 - (Int 0) 3 - (Int 1) 5,6 - Timer 0 9,10 - Timer 1 3,11 - Timer 2 10 - SS 11 - MOSI 12 - MISO 13 - SCK Analog4 - SDA Analog5 - SCK

Digital I/O pinMode(pin, [INPUT,OUTPUT]) digitalWrite(pin, value) int digitalRead(pin) //Write High to inputs to use pull-up res

Libraries:
PWM pins

Data Types void boolean (0, 1, false, 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.4028235E+38 to 3.4028235E+38) double (currently same as float) sizeof(myint) // returns 2 bytes

Analog I/O analogReference([DEFAULT,INTERNAL,EXTERNA L]) int analogRead(pin) //Call twice if switching pins from high Z source. analogWrite(pin, value) // PWM

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)

SPI I2C

0-13 53 - SS 51 - MOSI 50 - MISO 52 - SCK 20 - SDA 21 - SCL

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

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

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

Time unsigned long millis() // 50 days overflow. unsigned long micros() // 70 min overflow delay(ms) delayMicroseconds(us)

Math min(x, y) max(x, y) abs(x) constrain(x, minval, maxval ) map(val, fromL, fromH, toL, toH) pow(base, exponent) sqrt(x) sin(rad) cos(rad) tan(rad)

SoftwareSerial(RxPin,TxPin) // #include<SoftwareSerial.h> begin(longSpeed) // up to 9600 char read() // blocks till data print(myData) or println(myData)

From Arduino.CC

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

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 of bytes byte receive() //Return next byte onReceive(handler) onRequest(handler)

Pics from Fritzing.Org under C.C. license

You might also like