Learning to code embedded hardware usually takes years of formal education. Alongside a good understanding of the electronics involved, programming microcontrollers requires a high level of coding knowledge.

Luckily, Arduino boards make the whole process much easier. A range of boards are available, all programmable using the Arduino IDE and Arduino coding library.

This cheat sheet should help you with some of the basic commands you'll need to start programming Arduino boards.

FREE DOWNLOAD: This cheat sheet is available as a downloadable PDF from our distribution partner, TradePub. You will have to complete a short form to access it for the first time only. Download the Essential Arduino Commands Cheat Sheet.

Basic Arduino Commands

Arduino IDE Toolbar

Verify

Scans your code and reports any errors

Upload

Compiles your code and uploads it to the Arduino board via USB

New

Opens a blank Arduino sketch

Open

Opens a list of your saved sketches in the file browser

Save

Saves your current sketch

Serial Monitor

Opens the serial monitor in a new window

Arduino Program Structure

void setup() { }

Runs once at startup

void loop() { }

Runs continually

Built in Arduino Functions

Pin setup

pinMode(PIN_NUMBER, INPUT/OUTPUT)

Sets the pin at the location PIN_NUMBER to be either an INPUT or an OUTPUT

pinMode(PIN_NUMBER, INPUT_PULLUP)

Sets the pin at the location PIN_NUMBER to be an input using the Arduino board's built-in pull-up resistor

digitalRead(PIN_NUMBER)

Reads the input at PIN_NUMBER and returns a 1 or 0 (HIGH or LOW)

digitalWrite(PIN_NUMBER, VALUE)

Writes a value of 1 or 0 (HIGH or LOW) to digital pin PIN_NUMBER

analogRead(PIN_NUMBER)

Reads the analog pin PIN_NUMBER and returns an integer between 0 and 1023

analogWrite(PIN_NUMBER, VALUE)

Emulates analog output VALUE using PWM on PIN_NUMBER (note: only available on pins 3, 5, 6, 9, 10, and 11)

analogReference(DEFAULT)

Use the default reference voltage (5V or 3.3V depending on board voltage)

analogReference(INTERNAL)

Use an internal reference voltage (1.1v for ATmega168/328p, 2.56 for ATmega 32U4/8)

analogReference(EXTERNAL)

Use a voltage applied to the AREF pin as voltage reference (note: 0-5V only)

Time functions

millis()

Returns the time in milliseconds since the Arduino sketch began running as an unsigned long integer

micros()

Returns the time in microseconds since the Arduino sketch began running as an unsigned long integer

delay(INTEGER)

Delays program execution for INTEGER milliseconds

delayMicroseconds(INTEGER)

Delays program execution for INTEGER microseconds

Mathematical Functions

min(i, j)

Returns the lowest of the two values i and j

max(i,j)

Returns the highest of the two values i and j

abs(i)

Returns the absolute value of i

sin(angle)

Returns the sine of an angle in radians

cos(angle)

Returns the cosine of an angle in radians

tan(angle)

Returns the tangent of an angle in radians

sqrt(i)

Returns the square root of i

pow(base, exponent)

Raises the number base to the number exponent (e.g pow (2 , 3) ==8)

constrain(i, minval, maxval)

Contrains the value i between minval and maxval

map(val, fromL, fromH, toL, toH)

Remaps val from one range to another

random(i)

Returns a random long integer smaller than i

random(i, j)

Returns a random long integer between i and j

randomSeed(k)

Uses the value k to seed the random() function

Casting

(type)variable

Casts the value of variable to a new type

Serial Communication

Serial.begin(speed)

Start serial communication at a specified speed

Serial.end()

Close serial communication

Serial.print(DATA)

Prints DATA to the serial port. DATA can be characters, strings, integers and floating point numbers

Serial.available()

Return the number of characters available to read in the serial buffer

Serial.read()

Read the first character in the serial buffer (returns -1 if no data is available)

Serial.write(DATA)

Write DATA to the serial buffer. DATA can be a character, integer, or array

Serial.flush()

Clears the serial buffer once outgoing communication is complete

Servo (#include the Servo.h tag)

Servo myServo

Creates the variable myServo of type Servo

myServo.attach(PIN_NUMBER)

Associated myServo with the pin at location PIN_NUMBER

myServo.write(angle)

Writes an angle between 0 and 180 to the servo atached to myServo

myServo.writeMicroseconds(uS)

Writes a value in microseconds to the servo attached to myServo (typically between 1000 and 2000 with 1500 as the midpoint)

myServo.read()

Returns an integer containing the current angle of the servo between 0 - 180

myServo.attached()

Returns true if the servo is attached to a pin

myServo.detach()

Dissasociates myServo with an attached pin

myServo.detach()

Dissasociates myServo with an attached pin

Create More With Arduino

If you are a beginner, code can seem quite overwhelming, but these commands are enough to get started with most Arduino beginner projects.

So what are you waiting for? Choose an Arduino board and start learning to create your own embedded hardware!