Arduino

Buy | Download | Getting Started | Learning | Reference | Hardware | FAQ

Blog » | Forum » | Playground »

Reference Language (extended) | Libraries | Comparison | Changes

# Language Reference

See the extended reference for more advanced features of the Arduino languages and the libraries page for interfacing with particular types of hardware.

Arduino programs can be divided in three main parts: structure, values (variables and constants), and functions. The Arduino language is based on C/C++.

## Structure

- setup()
- loop()

#### Control Structures

- if
- if...else
- for
- switch case
- while
- do... while
- break
- continue
- return

#### Further Syntax

- ; (semicolon)
- {} (curly braces)
- // (single line comment)
- /* */ (multi-line comment)

#### Arithmetic Operators

- = (assignment)
- + (addition)
- - (subtraction)
- * (multiplication)
- / (division)
- % (modulo)

#### Comparison Operators

- == (equal to)
- != (not equal to)
- < (less than)
- > (greater than)
- <= (less than or equal to)
- >= (greater than or equal to)

#### Boolean Operators

- && (and)
- || (or)
- ! (not)

#### Compound Operators

- ++ (increment)
- -- (decrement)
- += (compound addition)
- -= (compound subtraction)
- *= (compound multiplication)
- /= (compound division)

## Variables

Variables are expressions that you can use in programs to store values, such as a sensor reading from an analog pin.

#### Constants

Constants are particular values with specific meanings.

- HIGH | LOW
- INPUT | OUTPUT
- true | false

- Integer Constants

#### Data Types

Variables can have various types, which are described below.

- boolean
- char
- byte
- int
- unsigned int
- long
- unsigned long
- float
- double
- string
- array
- void

#### Conversion

- char()
- byte()
- int()
- long()
- float()

## Reference

- ASCII chart

## Functions

Digital I/O

- pinMode(pin, mode)
- digitalWrite(pin, value)
- int digitalRead(pin)

Analog I/O

- int analogRead(pin)
- analogWrite(pin, value) - PWM

Advanced I/O

- tone()
- noTone()
- shiftOut(dataPin, clockPin, bitOrder, value)
- unsigned long pulseIn(pin, value)

Time

- unsigned long millis()
- unsigned long micros()
- delay(ms)
- delayMicroseconds(us)

Math

- min(x, y)
- max(x, y)
- abs(x)
- constrain(x, a, b)
- map(value, fromLow, fromHigh, toLow, toHigh)
- pow(base, exponent)
- sq(x)
- sqrt(x)

Trigonometry

- sin(rad)
- cos(rad)
- tan(rad)

Random Numbers

- randomSeed(seed)
- long random(max)
- long random(min, max)

Communication

- Serial

Didn't find something? Check the extended reference or the libraries. Or see the list of community-contributed code.

Reference Home

Corrections, suggestions, and new documentation should be posted to the Forum.

The text of the Arduino reference is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.

Edit Page | Page History | Printable View | All Recent Site Changes