¿Qué vamos a hacer?

En este primer tutorial, vamos a realizar uno de los experimentos más clásicos pero fundamentales en electrónica: encender un LED. Puede parecer simple, pero es el primer paso para aprender cómo controlar dispositivos con el ESP32-C3.

Si es tu primer acercamiento a un microcontrolador o al mundo maker, ¡bienvenido! Este pequeño experimento te dará la satisfacción de ver una luz parpadear gracias a tu código.

Actividad 1: Encender un Led

Vamos a comenzar con lo más básico: hacer que un LED se encienda. Esto te ayudará a familiarizarte con cómo funciona la salida digital desde el ESP32-C3.

Materiales que necesitas

  • 1 placa ESP32-C3 Super Mini
  • 1 LED (cualquier color)
  • 1 resistencia de 220Ω
  • 1 protoboard
  • Cables Dupont (preferentemente M-M o M-F)

¿Qué es un LED?

Un LED es un diodo que emite luz cuando pasa corriente por él. Tiene dos patitas:

  • La larga (ánodo) va al pin del microcontrolador.
  • La corta (cátodo) va a GND (tierra), normalmente con una resistencia para no quemarlo.
Tutorial 1: Uso del LED y botones.

¿Qué es una resistencia?

La resistencia es un componente que limita el paso de corriente en un circuito. Su función en este caso es proteger al LED de recibir demasiada corriente, lo cual podría dañarlo.

A diferencia del LED, la resistencia no tiene polaridad, así que puedes conectarla en cualquier dirección. Su valor se expresa en ohmios (Ω) y se identifica mediante un código de colores en su cuerpo.

Conexión del circuito

Aquí te explico cómo conectar todo:

  1. Inserta el LED en el protoboard.
  2. Conecta la patita larga (ánodo) del LED a una resistencia de 220Ω.
  3. El otro extremo de la resistencia se conecta al pin GPIO3 del ESP32-C3.
  4. La patita corta (cátodo) del LED se conecta directamente a GND.
Tutorial 1: Uso del LED y botones.

Código

#define LED_PIN 3

void setup() {
  Serial.begin(115200);
  Serial.println("Hola Mundo, ESP32-C3!");
  pinMode(LED_PIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_PIN, HIGH);
  delay(500);
  digitalWrite(LED_PIN, LOW);
  delay(500);
}

Actividad 2: Encender un LED con un botón

Ahora que sabes cómo encender un LED, vamos a agregar un botón físico. Esta vez, el LED solo se encenderá cuando presiones el botón.

¿Qué es un botón?

Un botón es un dispositivo de entrada mecánica que funciona como un interruptor momentáneo: al presionarlo, cierra un circuito eléctrico permitiendo el paso de corriente, y al soltarlo, abre el circuito cortando esa corriente.

Piensa en él como un “puente” que solo se activa mientras lo estás presionando. Es común en controles remotos, teclados, timbres y paneles de control.

En electrónica, usamos botones para dar órdenes a un sistema, como encender o apagar un LED, cambiar un estado, iniciar un conteo o mover un robot.

Tipos de estado

  • Abierto (sin presionar): No pasa corriente.
  • Cerrado (presionado): Pasa corriente.

Para que funcione correctamente con microcontroladores como el ESP32-C3, el botón suele conectarse con una resistencia de pull-down o pull-up.

Tutorial 1: Uso del LED y botones.

Objetivo

Leer el estado del botón (entrada digital) y usarlo para encender o apagar un LED.

Conexiones

  • Botón entre GPIO2 y 3.3V
  • Resistencia de 10KΩ entre GPIO2 y GND
  • LED entre GPIO3 y GND (con resistencia de 220Ω)
Tutorial 1: Uso del LED y botones.

Código

const int ledPin = 3;
const int buttonPin = 2;

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(buttonPin, INPUT);
}

void loop() {
  int buttonState = digitalRead(buttonPin);
  digitalWrite(ledPin, buttonState);
}

Actividad 3: Enciende el LED solo mientras presionas el botón

Este comportamiento es útil en muchas aplicaciones, como interruptores momentáneos, timbres o controles de seguridad.

Objetivo

Encender el LED solo mientras el botón esté presionado.

Código con antirrebote simple

const int ledPin = 3;
const int buttonPin = 2;

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(buttonPin, INPUT);
}

void loop() {
  int buttonState = digitalRead(buttonPin);
  delay(50); // Para evitar rebotes
  if (digitalRead(buttonPin) == buttonState) {
    digitalWrite(ledPin, buttonState);
  }
}

Actividad 4: Un botón para alternar el estado del LED

En esta actividad, el botón actuará como un interruptor toggle: presionas una vez y el LED se enciende, presionas otra vez y se apaga.

Objetivo

Guardar el estado anterior del botón y del LED para alternar su estado con cada pulsación.

Conexionado

Tutorial 1: Uso del LED y botones.

Código

const int ledPin = 3;
const int buttonPin = 2;
bool ledState = false;
bool lastButtonState = LOW;

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(buttonPin, INPUT);
}

void loop() {
  bool currentButtonState = digitalRead(buttonPin);

  if (currentButtonState == HIGH && lastButtonState == LOW) {
    ledState = !ledState;
    digitalWrite(ledPin, ledState);
    delay(200);
  }

  lastButtonState = currentButtonState;
}

Actividad 5: Controlar dos LEDs con dos botones

¿Y si queremos controlar más de un componente? Aquí expandimos lo aprendido para manejar dos botones y dos LEDs independientes.

Objetivo

Practicar el uso de múltiples pines de entrada y salida digital.

Conexionado

Tutorial 1: Uso del LED y botones.

Código

const int led1 = 3;
const int led2 = 5;
const int button1 = 2;
const int button2 = 4;

void setup() {
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(button1, INPUT);
  pinMode(button2, INPUT);
}

void loop() {
  digitalWrite(led1, digitalRead(button1));
  digitalWrite(led2, digitalRead(button2));
}

Comentarios Tutorial

¿Tienes dudas o ideas?

Comparte tus comentarios en el tutorial o revisa las experiencias de otros usuarios en el kit.

Comentar este Tutorial Ver Comentarios del Kit

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *