Curso Arduino Uno R3 – Lecciones Básicas
Aquí tienes la lista mejorada, con un ejemplo sencillo para cada función o comando de Arduino Uno R3, ordenada alfabéticamente:
A
analogRead(pin)
Lee un valor analógico (0–1023).
Ejemplo:
int sensor = A0;
void setup() {
Serial.begin(9600);
}
void loop() {
int valor = analogRead(sensor);
Serial.println(valor);
delay(500);
}
analogReference(type)
Define la referencia de voltaje para lecturas analógicas.
Ejemplo:
void setup() {
analogReference(INTERNAL); // 1.1 V interno
}
void loop() { }
analogWrite(pin, value)
Genera una señal PWM.
Ejemplo:
int led = 9;
void setup() {
pinMode(led, OUTPUT);
}
void loop() {
for(int i=0; i<=255; i+=5) {
analogWrite(led, i);
delay(20);
}
}
D
delay(ms)
Pausa en milisegundos.
Ejemplo:
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
delayMicroseconds(us)
Pausa en microsegundos.
Ejemplo:
void loop() {
digitalWrite(13, HIGH);
delayMicroseconds(100);
digitalWrite(13, LOW);
delayMicroseconds(100);
}
D (E/S Digital)
digitalRead(pin)
Lee estado HIGH/LOW.
Ejemplo:
int boton = 7;
void setup() {
pinMode(boton, INPUT);
Serial.begin(9600);
}
void loop() {
int estado = digitalRead(boton);
Serial.println(estado); // 0 o 1
delay(200);
}
digitalWrite(pin, value)
Escribe HIGH o LOW.
Ejemplo:
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
delay(500);
}
pinMode(pin, mode)
Configura pin INPUT/OUTPUT.
Ejemplo:
void setup() {
pinMode(2, INPUT_PULLUP); // botón con pull‑up interno
}
void loop() { }
M
map(value, fromLow, fromHigh, toLow, toHigh)
Remapea un rango numérico.
Ejemplo:
int pot = A0;
void setup() {
Serial.begin(9600);
}
void loop() {
int v = analogRead(pot);
int grados = map(v, 0, 1023, 0, 180);
Serial.println(grados);
delay(500);
}
S (Serie)
Serial.begin(baud)
Inicializa comunicación serie.
Ejemplo:
void setup() {
Serial.begin(115200);
}
void loop() {
Serial.println("Hola");
delay(1000);
}
Serial.print(data, format)
Envía datos sin salto de línea.
Ejemplo:
int x = 42;
Serial.print("Valor = ");
Serial.print(x, DEC);
Serial.println(data, format)
Envía datos + salto.
Ejemplo:
float t = 23.5;
Serial.println(t, 1); // "23.5\n"
Serial.available()
Cantidad de bytes en buffer.
Ejemplo:
void loop() {
if (Serial.available()) {
Serial.println("Hay datos!");
}
}
Serial.read()
Lee un byte del buffer.
Ejemplo:
void loop() {
if (Serial.available()) {
int c = Serial.read();
Serial.print("Recibí: ");
Serial.println(c);
}
}
T
tone(pin, frequency, duration)
Genera tono en Hz.
Ejemplo:
int buzzer = 8;
void setup() {
tone(buzzer, 1000, 500); // 1 kHz por 0.5 s
}
void loop() { }
noTone(pin)
Detiene tono.
Ejemplo:
tone(8, 500);
delay(1000);
noTone(8);
U
millis()
Milisegundos desde inicio.
Ejemplo:
unsigned long inicio = 0;
void setup() {
inicio = millis();
}
void loop() {
Serial.println(millis() - inicio);
delay(1000);
}
micros()
Microsegundos desde inicio.
Ejemplo:
void loop() {
unsigned long u = micros();
Serial.println(u);
delay(500);
}
W
shiftIn(dataPin, clockPin, bitOrder)
Lee bits de un registro.
Ejemplo:
int data = 12, clk = 11;
byte b;
void setup() {
pinMode(data, INPUT);
pinMode(clk, OUTPUT);
Serial.begin(9600);
}
void loop() {
b = shiftIn(data, clk, MSBFIRST);
Serial.println(b, BIN);
delay(300);
}
shiftOut(dataPin, clockPin, bitOrder, value)
Envía byte por bits.
Ejemplo:
int data = 11, clk = 12;
void setup() {
pinMode(data, OUTPUT);
pinMode(clk, OUTPUT);
}
void loop() {
shiftOut(data, clk, LSBFIRST, 0xA5);
delay(500);
}
Notas esenciales
-
Las funciones clave del programa:
void setup() { /* se ejecuta al inicio */ }
void loop() { /* se repite continuamente */ }
Lección 1 – Estructura base y configuración de pines
setup() y loop():
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
pinMode(pin, mode):
pinMode(2, INPUT_PULLUP);
digitalWrite(pin, value):
digitalWrite(13, HIGH);
digitalRead(pin):
int estado = digitalRead(2);
Lección 2 – Entradas y salidas analógicas
analogRead(pin):
int valor = analogRead(A0);
analogWrite(pin, value):
analogWrite(9, 128);
analogReference(type):
analogReference(INTERNAL);
map(value, fromLow, fromHigh, toLow, toHigh):
int angulo = map(analogRead(A0), 0, 1023, 0, 180);
Lección 3 – Tiempo y retardo
delay(ms):
delay(1000);
delayMicroseconds(us):
delayMicroseconds(50);
millis():
unsigned long t = millis();
micros():
unsigned long u = micros();
Lección 4 – Comunicación Serie
Serial.begin(baud):
Serial.begin(9600);
Serial.print(data):
Serial.print("Sensor: ");
Serial.println(data):
Serial.println(analogRead(A0));
Serial.available():
if (Serial.available()) {
Serial.println("Datos recibidos");
}
Serial.read():
char letra = Serial.read();
Lección 5 – Sonido y señales
tone(pin, frequency, duration):
tone(8, 1000, 500);
noTone(pin):
noTone(8);
Lección 6 – Manipulación de bits y transferencia serial
shiftOut(dataPin, clockPin, bitOrder, value):
shiftOut(11, 12, MSBFIRST, 0xA5);
shiftIn(dataPin, clockPin, bitOrder):
byte data = shiftIn(12, 11, MSBFIRST);
Artículo escrito por Daniel Fernández Mariño
Foto de Anete Lusina de https://www.pexels.com (Creative Commons)