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. |
void setup(){ |
|
loop() |
void loop() { ... } |
No parameter. |
void loop(){ |
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) |
pinMode(13, OUTPUT); pinMode(2, INPUT_PULLUP); |
|
digitalWrite() |
digitalWrite(pin, value) |
pin: int (pin number) |
digitalWrite(13, HIGH); digitalWrite(13, LOW); |
|
digitalRead() |
int digitalRead(pin) |
pin: int(pin number) |
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) |
int sensorVal = analogRead(A0); float voltage = sensorVal*(5.0/1023.0); |
|
analogWrite() |
analogWrite(pin, value) |
pin: PWM-capable pin (~) |
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); |
|
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); |
|
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) |
void setup(){ |
|
Serial.print() |
Serial.print(val) Serial.print(val, format) |
val: any type |
Serial.print("Temp: "); Serial.print(temp, 2); Serial.print(255, HEX); |
|
Serial.println() |
Serial.println(val) |
Same as print() but appends \r\n |
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 |