A Beginner's Arduino Guide/Arduino Language

From Wikibooks, open books for an open world
Jump to navigation Jump to search

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]

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