Curso: De Arduino al ESP32 — Microcontroladores para Proyectos Reales
Módulo: 1 — Fundamentos Arduino
Nivel: Principiante | Requiere haber completado la Clase 1
Tiempo estimado de lectura: 15–20 minutos
¿Qué vas a aprender en esta clase?
Al terminar esta clase vas a poder:
- Conectar un LED externo a Arduino usando una resistencia limitadora
- Calcular el valor de resistencia necesario para proteger un LED
- Controlar múltiples pines digitales desde el mismo programa
- Construir y simular un semáforo funcional de 3 colores en Wokwi
1. ¿Por qué necesitamos una resistencia?
En la Clase 1 usamos el LED integrado del pin 13. Ese LED ya tiene una resistencia incorporada en la placa. Pero cuando conectamos un LED externo directamente a un pin de Arduino, necesitamos agregar una resistencia nosotros mismos.
¿Por qué? Porque un LED sin resistencia deja pasar demasiada corriente, se calienta y se quema en segundos. También puede dañar el pin del Arduino.
Un pin digital de Arduino entrega 5V y puede dar como máximo 40 mA de corriente. Un LED típico necesita solo 10–20 mA para encenderse bien. La resistencia se encarga de limitar esa corriente al valor correcto.
💡 Analogía: pensá en la resistencia como una canilla que regula el caudal de agua. Sin ella, el LED recibiría toda la presión de golpe y se rompería.
2. Cómo calcular el valor de la resistencia
Usamos la Ley de Ohm: R = V / I
Para calcular la resistencia necesaria aplicamos esta fórmula:
R = (Vfuente - Vled) / Iled
Donde:
- Vfuente = tensión del pin Arduino = 5V
- Vled = caída de tensión del LED (dato del fabricante)
- Iled = corriente deseada para el LED
Valores típicos de LEDs de 5mm
| Color | Caída de tensión (Vled) | Corriente típica |
|---|---|---|
| Rojo | 1.8 – 2.2 V | 10 – 20 mA |
| Amarillo | 2.0 – 2.2 V | 10 – 20 mA |
| Verde | 2.0 – 3.5 V | 10 – 20 mA |
| Azul / Blanco | 3.0 – 3.5 V | 10 – 20 mA |
Ejemplo para un LED rojo
Queremos 15 mA de corriente con un LED rojo (Vled = 2V):
R = (5V - 2V) / 0.015A
R = 3V / 0.015A
R = 200 Ω
Como no siempre existe ese valor exacto en el mercado, usamos el valor comercial inmediato superior: 220 Ω. Esto es lo más seguro — nunca uses un valor inferior al calculado.
📌 Regla práctica: para proyectos de aprendizaje, una resistencia de 220 Ω funciona bien con LEDs rojos, amarillos y verdes conectados a 5V. Para LEDs azules o blancos podés usar 150 Ω.
3. Cómo conectar un LED externo
Un LED tiene dos patas de distinto largo:
- Ánodo (+) → pata más larga → se conecta al pin de Arduino (a través de la resistencia)
- Cátodo (−) → pata más corta → se conecta a GND
El circuito queda así:
Pin Arduino (D2) ──► Resistencia 220Ω ──► Ánodo LED ──► Cátodo LED ──► GND
El orden importa: la resistencia puede ir antes o después del LED, el resultado eléctrico es el mismo. Por convención se suele colocar entre el pin y el ánodo.
4. La protoboard (placa de pruebas)
Para conectar componentes sin soldar usamos una protoboard. Tiene filas de agujeros conectados internamente:
- Las columnas de los extremos (marcadas con + y −) son los rieles de alimentación: corren en sentido vertical a lo largo de toda la placa.
- Las filas del centro (numeradas) están conectadas horizontalmente en grupos de 5 agujeros, separadas por un canal central.
+ – + – ← rieles de alimentación (verticales)
┌────────────┐
│ 1 ● ● ● ● ●│ ← fila 1: los 5 puntos están conectados entre sí
│ 2 ● ● ● ● ●│
│ CANAL │ ← canal central (separa las dos mitades)
│ 3 ● ● ● ● ●│
└──────────
Regla de oro: dos componentes en la misma fila (del mismo lado del canal) quedan conectados eléctricamente.
5. Controlando múltiples pines — el semáforo
Ahora que sabés conectar un LED, el paso siguiente es controlar varios a la vez. El semáforo usa tres LEDs (rojo, amarillo, verde) conectados a tres pines digitales distintos.
Pines que vamos a usar
| LED | Pin Arduino | Resistencia |
|---|---|---|
| Rojo | D2 | 220 Ω |
| Amarillo | D3 | 220 Ω |
| Verde | D4 | 220 Ω |
Lógica del semáforo
Un semáforo estándar sigue esta secuencia:
- Rojo encendido → 5 segundos (vehículos detenidos)
- Rojo + Amarillo encendidos → 2 segundos (advertencia: va a cambiar)
- Verde encendido → 5 segundos (circulación habilitada)
- Amarillo encendido → 2 segundos (advertencia: va a cortarse)
- Vuelve al paso 1
6. El código del semáforo
// Semáforo de 3 colores
// Rojo → pin 2 | Amarillo → pin 3 | Verde → pin 4
const int rojo = 2;
const int amarillo = 3;
const int verde = 4;
void setup() {
pinMode(rojo, OUTPUT);
pinMode(amarillo, OUTPUT);
pinMode(verde, OUTPUT);
}
void loop() {
// --- ROJO: vehículos detenidos ---
digitalWrite(rojo, HIGH);
digitalWrite(amarillo, LOW);
digitalWrite(verde, LOW);
delay(5000);
// --- ROJO + AMARILLO: preparando cambio ---
digitalWrite(rojo, HIGH);
digitalWrite(amarillo, HIGH);
digitalWrite(verde, LOW);
delay(2000);
// --- VERDE: circulación habilitada ---
digitalWrite(rojo, LOW);
digitalWrite(amarillo, LOW);
digitalWrite(verde, HIGH);
delay(5000);
// --- AMARILLO: aviso de corte ---
digitalWrite(rojo, LOW);
digitalWrite(amarillo, HIGH);
digitalWrite(verde, LOW);
delay(2000);
}
¿Por qué usamos const int?
En lugar de escribir el número 2 directamente en el código, le damos un nombre (rojo). Esto tiene dos ventajas:
- El código se lee más fácil:
digitalWrite(rojo, HIGH)es más claro quedigitalWrite(2, HIGH) - Si cambiamos el pin de conexión, solo modificamos una línea (donde declaramos la constante) en lugar de buscar cada
2en el código
7. Simulalo en Wokwi
El circuito del semáforo tiene tres LEDs con sus respectivas resistencias conectados a los pines 2, 3 y 4.
Para armar el circuito en Wokwi:
- Agregá tres LEDs (rojo, amarillo, verde) desde el panel de componentes
- Agregá tres resistencias de 220 Ω
- Conectá cada resistencia entre el pin correspondiente y el ánodo del LED
- Conectá todos los cátodos a GND
- Pegá el código y presioná ▶ Play
8. JSON del diagrama Wokwi
Si preferís cargar el circuito directamente sin armarlo a mano, usá este JSON en el archivo diagram.json de tu proyecto Wokwi:
{
"version": 1,
"author": "Profe Martín López",
"editor": "wokwi",
"parts": [
{ "type": "wokwi-arduino-uno", "id": "uno", "top": 80, "left": 20, "attrs": {} },
{ "type": "wokwi-led", "id": "ledRojo", "top": 80, "left": 280, "attrs": { "color": "red" } },
{ "type": "wokwi-led", "id": "ledAmarillo","top": 160, "left": 280, "attrs": { "color": "yellow" } },
{ "type": "wokwi-led", "id": "ledVerde", "top": 240, "left": 280, "attrs": { "color": "green" } },
{ "type": "wokwi-resistor", "id": "r1", "top": 80, "left": 220, "attrs": { "value": "220" } },
{ "type": "wokwi-resistor", "id": "r2", "top": 160, "left": 220, "attrs": { "value": "220" } },
{ "type": "wokwi-resistor", "id": "r3", "top": 240, "left": 220, "attrs": { "value": "220" } }
],
"connections": [
[ "uno:2", "r1:1", "green", [] ],
[ "r1:2", "ledRojo:A", "green", [] ],
[ "ledRojo:K", "uno:GND.1", "black", [] ],
[ "uno:3", "r2:1", "yellow", [] ],
[ "r2:2", "ledAmarillo:A","yellow", [] ],
[ "ledAmarillo:K","uno:GND.1", "black", [] ],
[ "uno:4", "r3:1", "green", [] ],
[ "r3:2", "ledVerde:A", "green", [] ],
[ "ledVerde:K", "uno:GND.1", "black", [] ]
],
"dependencies": {}
}
9. Actividad: modificá el semáforo
Nivel 1 — Cambiá los tiempos:
Ajustá los delay() para simular un semáforo peatonal (más tiempo en rojo, menos en verde).
Nivel 2 — Semáforo peatonal con LED extra:
Agregá un cuarto LED azul en el pin 5 que represente la señal para peatones: se enciende cuando el semáforo vehicular está en rojo y se apaga cuando cambia a verde.
Nivel 3 — Semáforo inteligente:
Investigá la función millis() como alternativa a delay(). ¿Qué ventaja tiene millis() sobre delay() cuando necesitás hacer varias cosas al mismo tiempo?
10. Resumen de la clase
En esta clase aprendiste:
- Los LEDs necesitan una resistencia limitadora para no quemarse ni dañar el Arduino
- La fórmula para calcular la resistencia es
R = (Vfuente - Vled) / Iled - Para proyectos típicos, 220 Ω es el valor estándar para LEDs con Arduino a 5V
- Un LED tiene ánodo (+) (pata larga) y cátodo (−) (pata corta)
- Usando
const intle damos nombres a los pines para que el código sea más legible - Con
digitalWrite()ydelay()podemos controlar múltiples pines y crear secuencias temporales
11. Glosario de la clase
| Término | Definición |
|---|---|
| Resistencia | Componente que limita el flujo de corriente en un circuito |
| Ley de Ohm | Relación entre tensión, corriente y resistencia: V = I × R |
| Ánodo | Terminal positivo del LED (pata larga) |
| Cátodo | Terminal negativo del LED (pata corta) |
| Protoboard | Placa de pruebas para armar circuitos sin soldar |
| const int | Declaración de una constante entera en el código |
| GND | Referencia de tierra (0V) del circuito |
| 220 Ω | Valor de resistencia estándar para LEDs con Arduino 5V |
¿Qué viene en la Clase 3?
En la próxima clase vamos a agregar entradas al circuito: un botón pulsador que le permite al usuario interactuar con Arduino. Aprenderemos a leer el estado de un pin digital, entender el concepto de pull-up y pull-down, y construir un sistema donde el botón controle el semáforo.
¿Tenés alguna pregunta sobre esta clase? Dejá tu comentario abajo 👇
