A Beginner's Arduino Guide/Arduino Language

The Arduino Language is the set of words, expressions and rules that are used to create Arduino Sketches.

The Arduino Language is based on C and C++

The Arduino Language allows for the use of any functions from the 'AVR Libc' which is a subset of the standard C library for Atmel AVR 8-bit RISC micro-controllers

The language is made up of keywords that are written based on rules.

Arduino Keywords

edit

The keywords used to create the sketches can be divided into three types- Functions ,Structures and Values ( Values can be either Constants or Variables).

Below are a non-exhaustive list of standard Arduino sketch words, to add words, new libraries can be imported into the IDE.

Functions

edit

Functions are small groups of code that do a single task or group of tasks (they have one function). They include

Category Keyword
Digital I/O
  • pinMode()
  • digitalWrite()
  • digitalRead()
Analog I/O
  • analogReference()
  • analogRead()
  • analogWrite() - PWM
Due & Zero only
  • analogReadResolution()
  • analogWriteResolution()
Advanced I/O
  • tone()
  • noTone()
  • shiftOut()
  • shiftIn()
  • pulseIn()
Time
  • millis()
  • micros()
  • delay()
  • delayMicroseconds()
Math
  • min()
  • max()
  • abs()
  • constrain()
  • map()
  • pow()
  • sqrt()
Trigonometry
  • sin()
  • cos()
  • tan()
Characters
  • isAlphaNumeric()
  • isAlpha()
  • isAscii()
  • isWhitespace()
  • isControl()
  • isDigit()
  • isGraph()
  • isLowerCase()
  • isPrintable()
  • isPunct()
  • isSpace()
  • isUpperCase()
  • isHexadecimalDigit()
Random Numbers
  • randomSeed()
  • random()
Bits and Bytes
  • lowByte()
  • highByte()
  • bitRead()
  • bitWrite()
  • bitSet()
  • bitClear()
  • bit()
External Interrupts
  • attachInterrupt()
  • detachInterrupt()
Interrupts
  • interrupts()
  • noInterrupts()
Communication
  • Serial
  • Stream
USB (32u4 based boards and Due/Zero only)
  • Keyboard
  • Mouse

Structures these are words used to create a flow or structure in the program. they include

Category Keyword
Overall Structure
  • setup()
  • loop()
Control Structures
  • if
  • if...else
  • for
  • switch case
  • while
  • do... while
  • break
  • continue
  • return
  • goto
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)
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 modulo)
  • &= (compound bitwise and)
  • |= (compound bitwise or)
Pointer Access Operators
  • * dereference operator
  • & reference operator
Syntax
  • ; (semicolon)
  • {} (curly braces)
  • // (single line comment)
  • /* */ (multi-line comment)
  • #define
  • #include

Values

edit

These act like containers and hold a certain value they may be constant which implies a container whose value that doesn't change throughout the program or a variable, which implies a container whose value that does change.

Category Keyword
Constants
  • HIGH | LOW
  • INPUT | OUTPUT | INPUT_PULLUP
  • LED_BUILTIN
  • true | false
  • integer constants
  • floating point constants
Data Types
  • void
  • boolean
  • char
  • unsigned char
  • byte
  • int
  • unsigned int
  • word
  • long
  • unsigned long
  • short
  • float
  • double
  • string - char array
  • String - object
  • array
Conversion
  • char()
  • byte()
  • int()
  • word()
  • long()
  • float()
Variable Scope & Qualifiers
  • variable scope
  • static
  • volatile
  • const
Utilities
  • sizeof()
  • PROGMEM