Arduino Uno: Control combinado de LED con Botón y Potenciómetro [10]

Arduino Uno: Control combinado de LED con Botón y Potenciómetro. El Blog de Joseca. Guayaquil - Ecuador.


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]


marzo 18, 2026

Publicar un comentario

[blogger]

MKRdezign

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Con tecnología de Blogger.
Javascript DisablePlease Enable Javascript To See All Widget