Arduino

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

Blog » | Forum » | Playground »

Reference Language (extended) | Libraries | Comparison | Changes

# Language Reference (extended)

The Arduino language is based on C/C++ and supports all standard C constructs and some C++ features. It links against AVR Libc and allows the use of any of its functions; see its user manual for details.

## Structure

- void setup()
- void loop()

#### Control Structures

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

#### Further Syntax

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

#### Arithmetic Operators

- = (assignment operator)
- + (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)

#### Pointer Access Operators

- * dereference operator
- & reference operator

#### Bitwise Operators

- & (bitwise and)
- | (bitwise or)
- ^ (bitwise xor)
- ~ (bitwise not)
- << (bitshift left)
- >> (bitshift right)

- Port Manipulation

#### Compound Operators

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

- &= (compound bitwise and)
- |= (compound bitwise or)

## Variables

#### Constants

- HIGH | LOW
- INPUT | OUTPUT
- true | false
- integer constants
- floating point constants

#### Data Types

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

#### Conversion

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

#### Variable Scope & Qualifiers

- variable scope
- static
- volatile
- const

#### Utilities

- sizeof() (sizeof operator)

## Reference

- ASCII chart

## Functions

Digital I/O

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

Analog I/O

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

Advanced I/O

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

Trigonometry

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

Random Numbers

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

Bits and Bytes

- lowByte()
- highByte()
- bitRead()
- bitWrite()
- bitSet()
- bitClear()
- bit()

External Interrupts

- attachInterrupt(interrupt, function, mode)
- detachInterrupt(interrupt)

Interrupts

- interrupts()
- noInterrupts()

Communication

- Serial

Looking for something else? Try 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