Arduino Functions

M4-R5.1 · Chapter 4: Building IoT applications · 5 min read

Arduino Functions

There are following types of function in arduino -

1. Main Structure Functions — setup() & loop()

2. Digital I/O Functions

3. Analog I/O Functions

4. Time Functions

5. Math & Mapping Functions

6. Serial Communication Functions

1. Main Structure Functions

Every Arduino sketch must contain these two functions. setup() runs once on power-on or reset; loop() repeats continuously.

Function

Syntax

Parameters / Returns

Example

setup()

void setup() { ... }

No parameter.
Runs once at start.
Returns void.

void setup(){
   Serial.begin(9600);
pinMode(13, OUTPUT);
}

loop()

void loop() { ... }

No parameter.
Runs repeatedly forever.
Returns void.
Main Code here

void loop(){
digitalWrite(13, HIGH);
delay(1000);

}

2. Digital I/O Functions

Used to read from and write to digital pins. Pins operate at 0V (LOW) or 5V (HIGH).

Function

Syntax

Parameters / Returns

Example

pinMode()

pinMode(pin, mode)

pin: int (pin number)
mode: INPUT, OUTPUT
 Returns: void

pinMode(13, OUTPUT); pinMode(2, INPUT_PULLUP);

digitalWrite()

digitalWrite(pin, value)

pin: int (pin number)
value: HIGH (1) or LOW (0)
Returns: void

digitalWrite(13, HIGH); digitalWrite(13, LOW);

digitalRead()

int digitalRead(pin)

pin: int(pin number)
Returns: HIGH (1) or LOW (0)

int val = digitalRead(2);

3. Analog I/O Functions

Read analog voltages (ADC, 10-bit) and output PWM signals. analogWrite() requires a PWM-capable pin (~).

Function

Syntax

Parameters / Returns

Example

analogRead()

int analogRead(pin)

pin: A0–A5 (analog pin)
Returns: int 0–1023 (10-bit ADC)

int sensorVal = analogRead(A0); float voltage = sensorVal*(5.0/1023.0);

analogWrite()

analogWrite(pin, value)

pin: PWM-capable pin (~)
value: 0–255 (duty cycle)
Returns: void

analogWrite(9, 128);

4. Time Functions

Control timing and measure elapsed time. Prefer millis()/micros() over delay() in non-blocking designs.

Function

Syntax

Parameters / Returns

Example

delay()

delay(ms)

ms: unsigned long (milliseconds) Pauses program execution Returns: void

delay(1000); // Pause for 1 second

delayMicroseconds()

delayMicroseconds(us)

us: unsigned int (microseconds) Pauses for very short times Returns: void

delayMicroseconds(100); // Pause for 100 µs

millis()

unsigned long millis()

No params Returns: unsigned long — ms since program started. Overflows ~49.7 days.

unsigned long t = millis(); if (millis() - t > 1000) { ... }

micros()

unsigned long micros()

No params Returns: unsigned long — µs since program started. Overflows ~70 min.

unsigned long start = micros(); // measure pulse width

5. Math & Mapping Functions

Utility math functions built into Arduino. map() is especially useful for scaling sensor readings to output ranges.

Function

Syntax

Parameters / Returns

Example

map()

long map(value, fromLow, fromHigh, toLow, toHigh)

value: input number fromLow/High: input range toLow/High: output range Returns: long (mapped value)

int out = map(analogRead(A0), 0,1023,0, 255);
analogWrite(9, out);

abs()

abs(x)

x: int or float Returns: absolute value of x

int diff = abs(a - b); // always positive

min() / max()

min(a, b) max(a, b)

a, b: any numeric type Returns: smaller / larger of the two values

int lo = min(x, y);
int hi = max(x, y);

sq() / sqrt()

sq(x) sqrt(x)

x: numeric sq returns x² sqrt returns square root (double)

double h = sqrt(sq(3) + sq(4)); // h = 5.0

6. Serial Communication Functions

Communicate with a computer or other devices via USB/UART. Always call Serial.begin() in setup() before using Serial functions.

Function

Syntax

Parameters / Returns

Example

Serial.begin()

Serial.begin(speed)

speed: long baud rate (e.g. 9600, 115200)
Returns: void

void setup(){
Serial.begin(9600);}

Serial.print()

Serial.print(val) Serial.print(val, format)

val: any type
format: BIN, OCT, DEC, HEX, or decimal places Returns: bytes written

Serial.print("Temp: "); Serial.print(temp, 2); Serial.print(255, HEX);

Serial.println()

Serial.println(val)

Same as print() but appends \r\n
Returns: bytes written

Serial.println("Hello!"); Serial.println(analogRead(A0));

Serial.read()

int Serial.read()

No params Returns: first byte of incoming data, or -1 if none

if (Serial.available()) {   char c = Serial.read(); }

Serial.available()

int Serial.available()

No params Returns: number of bytes in receive buffer (0 if empty)

while (Serial.available() > 0) {   char c = Serial.read(); }

Serial.end()

Serial.end()

No params. Disables serial communication. Returns: void

Serial.end(); // frees pins 0 & 1