Inicio » Componentes para Arduino » Potenciómetros para Arduino » Regular la intensidad de un led con un potenciómetro

En este tutorial vamos a ver cómo regular la intensidad de un led con un potenciómetro.

La idea es que el led se ilumine con más intensidad cuando el dial del potenciómetro gire en un sentido y disminuya la intensidad cuando gire en el opuesto.

Materiales

Voy a usar un potenciómetro de ajuste (pot trimmer), pero si tú prefieres usar otro potenciómetro no habrá ningún problema puesto que las conexiones son iguales y el sketch también.

Aquí te dejo todos los materiales necesarios:

Una placa Arduino (Yo usaré Arduino UNO)
Un led de 5 mm
Una resistencia de 330Ω
Un pot trimmer de 10kΩ (103)
Cables
Una protoboard
Un ordenador con el IDE de Arduino instalado

Conexiones

Tenemos que conectar el potenciómetro y el led con Arduino tal y como se ve en la siguiente imagen:

conexiones potenciómetro y led con Arduino

Fíjate que he conectado un pin GND de Arduino (cable negro) y el pin de 5V (cable rojo) a la protoboard para que sea todo más cómodo.

El ánodo del led (positivo, pata larga) lo he conectado con el pin digital 3 (cable azul). He elegido este pin porque soporta PWM. Esto es importante, porque sino no podremos variar la intensidad del led. Si prefieres usar otro pin no hay problema, pero asegúrate que soporta PWM (debe tener una virgulilla al lado ~).

El cátodo (negativo, pata corta) lo he conectado a una resistencia de 330Ω y el otro extremo de la resistencia a tierra (GND).

Ahora es el turno del potenciómetro. Los terminales de la resistencia variable (los dos inferiores en el esquema) deben ir conectados, uno a GND y el otro a 5V. Da igual cómo los conectes, solo ten en cuenta que los valores se invertirán.

Si lo conectas como yo, izquierdo a GND y derecho a 5V, el valor que recibirá el Arduino a través del pin analógico cuando esté el dial totalmente girado a la izquierda será 0:

dial potenciómetro rotado a la izquierda

Y el valor será 1023 cuando esté totalmente girado a la derecha:

dial potenciómetro rotado a la derecha

Si intercambias GND y 5V entonces los valores serán totalmente los opuestos: izquierda devolverá 1023 y derecha devolverá 0.

En realidad da igual, la única diferencia es el sentido en el que tendrás que girar el dial del potenciómetro para cambiar la intensidad del led.

Y ya solo nos falta el tercer terminal del potenciómetro, el terminal de conexión ajustable (cable verde). Este es el que debe ir conectado con un pin analógico del Arduino para enviarle el valor que irá variando cuando giremos el dial. Yo he elegido el pin A5, pero puedes usar cualquiera de los analógicos.

¡Listo! Con esto tenemos el circuito completo. Vamos a por el sketch.

Sketch

El sketch es bastante sencillo, te lo dejo aquí completo y a continuación lo comentamos:

//DECLARACIONES
const int POT_TRIMMER = A5;
const int LED = 3;

//CONFIGURACIÓN
void setup() {
  pinMode(LED, OUTPUT);
}

//FUNCIÓN LOOP
void loop() {
  int valor = analogRead(POT_TRIMMER);
  valor = valor/4;
  analogWrite(LED, valor);
}

Declaraciones

He declarado 2 constantes enteras: POT_TRIMMER y LED.

La primera es el pin analógico en el que he contado el potenciómetro. En mi caso el A5:

const int POT_TRIMER = A5;

La segunda constante es el pin digital PWM en el que he conectado el led. En mi caso el 3:

const int LED = 3;

Si estás usando otros pines cambia los valores por los que correspondan.

Configuración

Dentro de la función setup() solo tenemos que configurar el pin digital en el que está el led conectado como salida:

pinMode(LED, OUTPUT);

El pin analógico no hay que configurarlo puesto que solo tienen un modo, que es el de entrada.

Función loop

En la función loop() lo que tenemos que hacer es leer el valor que entra por el pin analógico POT_TRIMMER:

int valor = analogRead(POT_TRIMER);

El valor leído lo almacenamos en la variable entera valor. Recuerda que será un número entre 0 y 1023 dependiendo de la posición del dial del potenciómetro.

Ahora tenemos que modificar la intensidad del led en función de este valor. Es tan sencillo como dividir la variable valor entre 4:

valor = valor/4;

¿Por qué hago esto? Porque el rango de valores que podemos enviar a un pin PWM está comprendido entre 0 y 255. Si pruebas a dividir el valor máximo del potenciómetro, es decir 1023, entre 255 verás que el resultado de la división entera es 4. Por lo tanto, si divides 1023 entre 4 obtendrás el valor máximo de PWM que es 255. De esta forma, cualquier otro valor comprendido entre 0 y 1023 se transformará en el equivalente dentro del rango PWM permitido.

Como puedes apreciar el resultado de la división lo vuelvo a guardar en la misma variable, así no será necesario declarar nada más.

Una vez tenemos el valor correcto solo tenemos que enviarlo al pin digital LED. Para que cambie la intensidad necesitamos usar la función analogWrite() pasándole el valor que hemos calculado:

analogWrite(LED, valor);

Recuerda que estamos usando PWM para cambiar la intensidad, por lo que no debes usar digitalWrite().

Y con esto hemos terminado el sketch.

Cárgalo en tu Arduino y gira poco a poco el dial del potenciómetros en ambos sentidos para ver cómo varia la intensidad del led.


Te avisaré cuando publique nuevo contenido en paraarduino.com y en mi canal de YouTube (@ParaArduino).

No hemos podido validar tu suscripción.
¡Se ha realizado tu suscripción!

Newsletter

Suscríbete para que te avise cuando publique nuevo contenido.

Usamos Brevo como plataforma de marketing. Al hacer clic a continuación para enviar este formulario, consiente que la información proporcionada sea transferida a Brevo para su procesamiento de acuerdo con sus términos de uso