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)