Después de trabajar por separado con el botón y el potenciómetro, llega un ejercicio más interesante: combinar ambos en un mismo proyecto.
En este artículo aprenderás a usar un botón para encender o apagar un LED y un potenciómetro para controlar su brillo, introduciendo así la lógica combinada entre entrada digital, entrada analógica y salida PWM.
🎯 Objetivo
Encender un LED con un botón y, cuando esté encendido, controlar su brillo con un potenciómetro usando analogRead() y analogWrite().
🧩 ¿Qué se va a combinar?
En este ejercicio intervienen tres elementos importantes:
- Botón → entrada digital
- Potenciómetro → entrada analógica
- LED → salida PWM
El botón decide si el LED debe estar encendido o apagado, mientras que el potenciómetro define qué tan fuerte brillará.
🛠️ Materiales
- 1 Arduino Uno
- 1 LED
- 1 resistencia de 220Ω
- 1 pulsador
- 1 resistencia de 10kΩ
- 1 potenciómetro de 10kΩ
- Protoboard y cables
⚡ Conexión
Botón:
- Un terminal → 5V
- Otro terminal → Pin 7
- Resistencia de 10kΩ entre Pin 7 y GND
Potenciómetro:
- Pin izquierdo → 5V
- Pin derecho → GND
- Pin central → A0
LED:
- Ánodo → Pin 9 (~PWM)
- Cátodo → Resistencia de 220Ω → GND
💻 Código Arduino
int boton = 7;
int pot = A0;
int led = 9;
int estadoBoton = 0;
int valorPot = 0;
int brillo = 0;
void setup() {
pinMode(boton, INPUT);
pinMode(led, OUTPUT);
}
void loop() {
estadoBoton = digitalRead(boton);
valorPot = analogRead(pot);
brillo = valorPot / 4;
if (estadoBoton == HIGH) {
analogWrite(led, brillo);
} else {
analogWrite(led, 0);
}
}
📖 Explicación
- digitalRead(boton) lee si el botón está presionado
- analogRead(pot) obtiene un valor entre 0 y 1023
- Ese valor se divide entre 4 para convertirlo a un rango de 0 a 255
- analogWrite(led, brillo) ajusta el brillo del LED
- Si el botón no está presionado, el LED permanece apagado
⚙️ ¿Qué está pasando?
Aquí Arduino está trabajando con dos tipos de entrada al mismo tiempo:
- Entrada digital → botón
- Entrada analógica → potenciómetro
Y con base en ambas controla una sola salida:
- Salida PWM → LED
La lógica es esta:
- Si el botón está presionado, el LED se enciende con el brillo indicado por el potenciómetro
- Si el botón no está presionado, el LED permanece apagado
Este ejercicio ya no depende de una sola condición, sino de la combinación de dos entradas.
🚀 Mejora del ejercicio
Puedes ampliar este proyecto de varias formas:
- Mostrar el valor del potenciómetro en el monitor serial
- Hacer que el botón funcione como interruptor de encendido y apagado
- Controlar varios LEDs con diferentes niveles de brillo
- Reemplazar el LED por un buzzer o un motor pequeño
⚠️ Errores comunes
❌ Conectar mal el botón
❌ No colocar la resistencia pull-down de 10kΩ
❌ Olvidar la resistencia del LED
❌ Usar un pin que no tenga PWM para controlar el brillo
❌ Pensar que analogWrite() entrega voltaje analógico real
✅ Conclusión
Este proyecto es importante porque introduce la lógica combinada en Arduino. Ya no se trata solo de leer una entrada o activar una salida, sino de hacer que varios componentes trabajen juntos dentro del mismo programa.
Con un botón que habilita el encendido y un potenciómetro que controla el brillo, empiezas a desarrollar una forma de programar más cercana a proyectos reales, donde varias condiciones determinan el comportamiento de un sistema.
[warning title="Simulación en Wokwi" icon="check-circle"]
https://wokwi.com/projects/458844627181408257
[/warning]


Publicar un comentario