¿Qué vamos a hacer?
En este tutorial, aprenderás a trabajar con un potenciómetro y un buzzer (pasivo y activo) para controlar el sonido y la intensidad del LED de manera interactiva. A lo largo del tutorial, implementarás varias funcionalidades como:
- Leer valores analógicos con el potenciómetro.
- Controlar la intensidad del LED utilizando la lectura del potenciómetro.
- Generar tonos con el buzzer pasivo y activo (tú decides la frecuencia de los tonos).
- Crear una alarma sonora activada por un botón o sensor.
Actividad 1: Leer valores analógicos con el potenciómetro
Materiales que necesitas:
- ESP32-C3 SuperMini (1 unidad)
- Potenciómetro de 10kΩ (1 unidad)
- Cables de conexión
- Protoboard (opcional)
¿Qué es un potenciómetro?
El potenciómetro es un componente electrónico que permite ajustar su resistencia mediante un eje rotatorio. A medida que giras el eje, cambia la resistencia entre dos terminales del potenciómetro, lo que permite variar el voltaje en el terminal central (wiper). Este componente se usa comúnmente en circuitos para controlar el valor de una señal analógica.
Conexión del circuito:
- Conecta el VCC del potenciómetro al pin de 5V del ESP32-C3.
- Conecta el GND del potenciómetro al pin GND del ESP32-C3.
- Conecta el wiper (pin central) del potenciómetro a GPIO3 (puedes usar GPIO1 o GPIO2 si no deseas usar GPIO3) del ESP32-C3.
Conexiado
Código:
Este código leerá el valor del potenciómetro en el pin GPIO3 y lo mostrará en el monitor serial.
const int potPin = 3; // GPIO3 donde está conectado el wiper del potenciómetro void setup() { Serial.begin(115200); // Inicia la comunicación serial } void loop() { int potValue = analogRead(potPin); // Lee el valor del potenciómetro (0-4095) Serial.print("Valor del Potenciómetro: "); Serial.println(potValue); // Imprime el valor leído delay(500); // Espera de medio segundo antes de leer nuevamente }
Actividad 2: Controlar la intensidad de un LED
Objetivo: En esta actividad, controlarás el brillo de un LED utilizando el valor leído del potenciómetro.
Conexión del circuito:
- LED:
- Conecta el ánodo del LED al GPIO12 del ESP32-C3.
- Conecta el cátodo del LED a GND a través de una resistencia de 220Ω.
Conexionado
Código:
Este código utilizará el valor del potenciómetro para ajustar el brillo del LED en función de la posición del potenciómetro.
const int potPin = 3; // GPIO3 donde se conecta el wiper del potenciómetro const int ledPin = 10; // GPIO12 donde se conecta el LED void setup() { pinMode(ledPin, OUTPUT); // Configura el pin del LED como salida Serial.begin(115200); // Inicia la comunicación serial } void loop() { int potValue = analogRead(potPin); // Lee el valor del potenciómetro (0-4095) int brightness = map(potValue, 0, 4095, 0, 255); // Mapea el valor a un rango de 0 a 255 analogWrite(ledPin, brightness); // Controla el brillo del LED con PWM delay(500); // Espera medio segundo }
Actividad 3: Generar tonos con el buzzer pasivo y activo
Objetivo: En esta actividad, aprenderás a generar diferentes tonos con un buzzer (pasivo o activo), utilizando el potenciómetro para controlar la frecuencia del sonido.
¿Qué es un buzzer activo?
Un buzzer activo genera sonido por sí mismo cuando se le aplica voltaje. Este tipo de buzzer no requiere que se le envíe una señal de frecuencia; simplemente emite un sonido a una frecuencia fija cuando se le da corriente.
¿Qué es un buzzer pasivo?
Un buzzer pasivo requiere que se le envíe una señal de frecuencia específica para generar un tono. Puedes variar la frecuencia para generar diferentes tonos, lo que lo hace más versátil que el buzzer activo.
Conexión del circuito:
- Buzzer pasivo:
- Conecta el positivo del buzzer a GPIO4 del ESP32-C3.
- Conecta el negativo del buzzer a GND.
- Buzzer activo:
- Conecta el positivo del buzzer a GPIO5 del ESP32-C3.
- Conecta el negativo del buzzer a GND.
Conexionado
Código:
Este código utilizará el valor del potenciómetro para generar diferentes frecuencias de tono con el buzzer pasivo y activo.
const int potPin = 3; // GPIO3 donde está conectado el wiper del potenciómetro const int buzzerPin_pasivo = 4; // GPIO4 donde está conectado el buzzer pasivo const int buzzerPin_activo = 5; void setup() { pinMode(buzzerPin_pasivo, OUTPUT); // Configura el pin del buzzer como salida Serial.begin(115200); // Inicia la comunicación serial } void loop() { int potValue = analogRead(potPin); // Lee el valor del potenciómetro (0-4095) int frequency = map(potValue, 0, 4095, 100, 2000); // Mapea el valor a frecuencia (100Hz - 2000Hz) tone(buzzerPin_pasivo, frequency); // Genera el tono en el buzzer digitalWrite(buzzerPin_activo,HIGH); delay(250) digitalWrite(buzzerPin_activo,LOW); delay(250); // Espera medio segundo }
Actividad 4: Crear una alarma sonora activada por un botón o sensor
Objetivo: En esta actividad, utilizarás un botón o sensor para activar una alarma sonora en el buzzer. Cuando el botón se presione, el buzzer emitirá un sonido.
Material adicional:
- Botón (1 unidad)
Conexión del circuito:
- Conecta un botón entre GPIO6 (u otro pin disponible) y GND del ESP32-C3.
- Conecta el buzzer como en la actividad anterior.
Conexionado
Código:
Este código lee el estado del botón y activa el buzzer cuando el botón está presionado.
const int buttonPin = 6; // GPIO6 donde está conectado el botón const int buzzerPin = 4; // GPIO4 donde está conectado el buzzer void setup() { pinMode(buzzerPin, OUTPUT); // Configura el pin del buzzer como salida pinMode(buttonPin, INPUT_PULLUP); // Configura el pin del botón con pull-up interno Serial.begin(115200); // Inicia la comunicación serial } void loop() { int buttonState = digitalRead(buttonPin); // Lee el estado del botón if (buttonState == LOW) { // Si el botón está presionado tone(buzzerPin, 1000); // Emite un tono de 1000Hz } else { noTone(buzzerPin); // Detiene el buzzer si el botón no está presionado } }