
Control de LEDs mediante un potenciómetro con la ZUM Core 2.0 y Arduino IDE en C++
Control de LEDs mediante un potenciómetro con la ZUM Core 2.0
Introducción
En esta práctica vamos a utilizar un potenciómetro como dispositivo de entrada y dos LEDs como dispositivos de salida para crear un sencillo indicador de nivel.
La idea es muy simple:
- Cuando el potenciómetro esté en una posición baja, no se encenderá ningún LED.
- Cuando alcance una posición intermedia, se encenderá el primer LED.
- Cuando alcance una posición alta, se encenderán los dos LEDs.
Este tipo de sistemas se utiliza habitualmente en indicadores de batería, depósitos de agua, sensores industriales y multitud de aplicaciones de robótica.
Material necesario
- 1 placa ZUM Core 2.0
- 1 potenciómetro
- 2 LEDs
- 2 resistencias de 220 Ω
- Cables de conexión
- Arduino IDE
Conexiones
Potenciómetro
Realizaremos las siguientes conexiones:
- Pin izquierdo → 3V3
- Pin central → A0
- Pin derecho → GND
El pin central del potenciómetro proporciona una tensión variable que será leída por la entrada analógica A0.
Primer LED
- Ánodo (+) → Pin D2
- Cátodo (-) → Resistencia de 220 Ω → GND
Segundo LED
- Ánodo (+) → Pin D3
- Cátodo (-) → Resistencia de 220 Ω → GND
Código del programa
int potenciometro = A0;
int valor;
void setup()
{
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
Serial.begin(9600);
}
void loop()
{
valor = analogRead(potenciometro);
Serial.print("Valor: ");
Serial.println(valor);
if (valor < 342)
{
digitalWrite(2, LOW);
digitalWrite(3, LOW);
}
else if (valor < 683)
{
digitalWrite(2, HIGH);
digitalWrite(3, LOW);
}
else
{
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
}
delay(100);
}
Explicación del código
Declaración de variables
int potenciometro = A0;
int valor;
La variable potenciometro almacena el pin donde está conectado el sensor.
La variable valor almacenará la lectura obtenida mediante la entrada analógica.
Configuración inicial
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
Estas instrucciones indican a la placa que los pines D2 y D3 se utilizarán como salidas para controlar los LEDs.
Serial.begin(9600);
Inicializa la comunicación serie para poder visualizar los valores en el Monitor Serie de Arduino IDE.
Lectura del potenciómetro
valor = analogRead(potenciometro);
Esta instrucción lee la tensión presente en el pin A0.
La ZUM Core 2.0 convierte dicha tensión en un valor comprendido entre:
- 0 → posición mínima del potenciómetro.
- 1023 → posición máxima del potenciómetro.
Visualización de datos
Serial.print("Valor: ");
Serial.println(valor);
Muestra continuamente el valor leído en el Monitor Serie.
Por ejemplo:
Valor: 15
Valor: 250
Valor: 498
Valor: 731
Valor: 1023
Control de los LEDs
Primer tramo
if (valor < 342)
{
digitalWrite(2, LOW);
digitalWrite(3, LOW);
}
Si el valor es inferior a 342, ambos LEDs permanecen apagados.
Segundo tramo
else if (valor < 683)
{
digitalWrite(2, HIGH);
digitalWrite(3, LOW);
}
Si el valor se encuentra entre 342 y 682, se enciende únicamente el LED conectado al pin D2.
Tercer tramo
else
{
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
}
Si el valor supera 682, se encienden los dos LEDs.
Funcionamiento del sistema
El rango de lectura del potenciómetro se divide en tres zonas:
0 -------- 341 -------- 682 -------- 1023
Apagado 1 LED 2 LEDs
A medida que giramos el potenciómetro aumentará el valor leído por la placa y se activarán progresivamente los LEDs.

Conclusión
Esta práctica permite trabajar simultáneamente con:
- Entradas analógicas.
- Variables.
- Condicionales.
- Salidas digitales.
- Monitor Serie.
Además, introduce un concepto muy importante en robótica: utilizar la información proporcionada por un sensor para tomar decisiones y controlar actuadores de forma automática.
Etiqueta:arduino, Arduino IDE, c++, led, nivel, potenciómetro, zum core 2.0



