Skip to Content

How use Arduino to control an LED with a Potentiometer

How use Arduino to control an LED with a Potentiometer

Este tutorial proporcionará los detalles esenciales sobre el potenciómetro y cómo utilizar Arduino para controlar el brillo del LED con el potenciómetro.

Aprenderás a generar la modulación de ancho de pulso (PWM) con diferentes ciclos de trabajo para ajustar el brillo del LED con el potenciómetro.

Con las señales PWM se puede establecer una potencia diferente para el LED y por lo tanto el brillo del LED variará.

Componentes de hardware

Arduino Uno Rev3x1Amazon
Arduino Mega (opcional)x1Amazon
LEDx1Amazon
Resistencia de 220Ωx1Amazon
Potenciómetro de 10Kx1Amazon
Tablero de pruebasx1Amazon
Cables de puentex15Amazon
Cable USB tipo A/Bx1Amazon

Software

Arduino IDEArduino IDE

Makerguides.com participa en el Programa de Asociados de Amazon Services LLC, un programa de publicidad de afiliados diseñado para proporcionar un medio para que los sitios ganen honorarios de publicidad mediante la publicidad y los enlaces a productos en Amazon.com.

¿Qué es una resistencia?

La resistencia es un componente eléctrico que regula o reduce el flujo de corriente eléctrica en los circuitos eléctricos.

Hay muchos tipos diferentes de resistencias. Algunas son para aplicaciones especiales, como ser utilizadas como resistencias variables.

No tiene un valor específico, y los valores pueden cambiar con la ayuda de un dial, una perilla y un tornillo.

¿Qué es un potenciómetro?

Un potenciómetro, o pote, es una resistencia electromecánica. Contiene tres terminales y es la resistencia variable más utilizada. 

La resistencia se varía manualmente para controlar el flujo de la corriente eléctrica. Actúa como un divisor de tensión ajustable.

Qué es un potenciómetro
Potenciómetro

Configuración de los pines del potenciómetro

Pin No.Nombre de la clavijaDescripción
1TierraEste extremo Para conectar la tierra
2SalidaEste extremo se conecta a la escobilla para proporcionar una tensión variable
3VCCEste extremo es necesario para alimentar el módulo.

¿Cómo se utiliza un potenciómetro con un Arduino con LED?

Diagrama de cableado

La siguiente sección proporciona los detalles sobre el cableado del LED y el potenciómetro con la placa Arduino Uno.

Cómo añadir un LED con la placa Arduino

Es sencillo conectar los LEDs a la placa Arduino.

Paso 1: En primer lugar, conecte el cátodo del LED (-) a la tierra. 

Paso 2: Conecta el ánodo (+) del LED a la resistencia de 220 Ohmios al pin digital 10 del Arduino.

Es mejor tomar tierra común para todos, y puedes conectar la tierra del Arduino, y el cátodo del LED a la protoboard.

Con esta conexión, puedes encender y apagar el LED con Arduino Uno.

Encender y apagar el LED con Arduino Uno

Cómo añadir un potenciómetro con la placa Arduino

Paso 1: Conecta las tres patas del potenciómetro en tres líneas diferentes de la protoboard.

Paso 2: Conecte el terminal 1 del potenciómetro a la tierra.

Paso 3: Conecte el terminal 3 del potenciómetro a +5V VCC en el Arduino.

Paso 4: Y el terminal 2 se conecta al pin A0 de la placa Arduino Uno. Puedes leer la salida del terminal 2 del potenciómetro.

¿Cómo se ilumina un LED con un potenciómetro?

Al girar el mando del potenciómetro, la tensión de salida cambia, y el Arduino Uno lee esta tensión de salida cambiante como la tensión de entrada.

Y los LEDs conectados se iluminan, y también varía el brillo.

¿Cómo se ilumina un potenciómetro con un LED?

Después de los pasos anteriores, su hardware está listo para usar para controlar el brillo del LED con el potenciómetro.

Código Arduino para Potenciómetro con LED

#define Blink_LED 10
#define POT_PIN   A0

void setup() {
  Serial.begin(9600);
  pinMode(Blink_LED, OUTPUT);
}

void loop() {
  // reads the input on analog pin A0 (value between 0 and 1023)
  int In_POT_Value = analogRead(POT_PIN);

  // scales it to brightness (value between 0 and 255)
  int Brightness = map(In_POT_Value, 0, 1023, 0, 255);

  // sets the brightness LED that connects to  pin 3
  analogWrite(Blink_LED, Brightness);

  // print out the value
  if((In_POT_Value >= 0 && In_POT_Value <=1023) || (Brightness>=0 && Brightness<=255)) {
    Serial.print("POT Value: ");
    Serial.print(In_POT_Value);
    Serial.print(", Brightness Value: ");
    Serial.println(Brightness);
  }
  else
  {
    Serial.println("Undefined value");
  }
  
  delay(500);
  Serial.println("*******************************************");
}

Cómo funciona el código

Paso 1: Primero, defino el LED en el Pin 10 de Arduino. El Potenciómetro determina un Pin A0 de Arduino, que es un pin Analógico.

#define Blink_LED 10
#define POT_PIN A0

Paso 2:

void setup() {
  Serial.begin(9600);
  pinMode(Blink_LED, OUTPUT);
}

En la función setup(), configure la tasa de baudios a 9600 de velocidad utilizando la función Serial.begin();.

Quieres controlar el LED, así que debes elegir el modo OUTPUT usando la función pinMode();.

Paso 3:

void loop() {
  // reads the input on analog pin A0 (value between 0 and 1023)
  int In_POT_Value = analogRead(POT_PIN);

  // scales it to brightness (value between 0 and 255)
  int Brightness = map(In_POT_Value, 0, 1023, 0, 255);

  // sets the brightness LED that connects to  pin 3
  analogWrite(Blink_LED, Brightness);

  // print out the value
  if((In_POT_Value >= 0 && In_POT_Value <=1023)|| (Brightness>=0 && Brightness<=255)) {
    Serial.print("POT Value: ");
    Serial.print(In_POT_Value);
    Serial.print(", Brightness Value: ");
    Serial.println(Brightness);
  }
  else
  {
    Serial.println("Undefined value");
  }
  
  delay(500);
  Serial.println("*******************************************");
}

int In_POT_Value = analogRead(POT_PIN);

En la función void loop(), lee el valor del pin analógico conectado al potenciómetro.

Este valor está entre 0 y 1023.

¿Cómo controla un Arduino el brillo del LED mediante un potenciómetro?

Toma una muestra del potenciómetro con un pin A0 del Arduino, que tiene una resolución de 1024 valores (10 bits), y convierte la tensión de salida del potenciómetro en un valor entero entre el rango de 0 a 1023 voltios como entrada.

Para ello, he utilizado la función analogRead().

Utilizar la función analogRead(); para leer los valores de tensión de entrada por el potenciómetro, y luego utilizar la función analogWrite() para controlar el brillo de la luz LED.

Paso 4: int Brillo = map(In_POT_Value, 0, 1023, 0, 255);

La función map( ) convierte fácilmente un valor de un rango en un valor proporcional de otro rango.

Y un uso común es leer la entrada analógica y cambiar la salida a un byte para que la salida sea de 0 a 255.

He leído el valor del potenciómetro. Con la función map(), mapea los valores analógicos 0-1024 para cambiar los valores de modulación de ancho de pulso 0-255.

Puedes entender la profundidad siguiendo este enlace Función Arduino map().

Paso 5: analogWrite(Blink_LED, Brightness);

¿Cómo se genera la modulación por ancho de pulso?

Puedes generar el PWM usando la función analogWrite().

La función analogWrite() se utiliza para encender un LED con diferentes brillos.

Después de una llamada a analogWrite(), el pin generará una onda cuadrada del ciclo de trabajo especificado hasta la siguiente llamada a analogWrite().

analogWrite(0) significa una señal de ciclo de trabajo del 0%.

analogWrite(127) significa una señal de ciclo de trabajo del 50%.

analogWrite(255) significa una señal de ciclo de trabajo del 100%.

Paso 6: 

  if((In_POT_Value >= 0 && In_POT_Value <=1023) || (Brightness>=0 && Brightness<=255))
  {
    Serial.print("POT Value: ");
    Serial.print(In_POT_Value);
    Serial.print(", Brightness Value: ");
    Serial.println(Brightness);
  }
  else
  {
    Serial.println("Undefined value");
  }

Si el valor del potenciómetro es de 0 a 1023 y la luminosidad es de 0 a 255, entonces imprime el valor en el terminal serie.

En caso contrario, el mensaje en el terminal serie es un valor Indefinido.

Salida en el terminal de serie

Salida en el terminal de serie

¿Cómo puedo encender el LED de mi Arduino?

Al girar el cambio de posición del eje del potenciómetro, el brillo del LED varía según la posición del eje.

Usando la función digitalWrite (); el LED se enciende. Si el valor de analogWrite(); es 255, el brillo del LED es máximo.

Puede referirse a la SALIDA del monitor en serie.

¿Cómo puedo encender el LED de mi Arduino?

¿Cómo puedo apagar el LED de mi Arduino?

Usando la función digitalWrite (); el LED se apaga. Si el valor de analogWrite( ); es 0, el brillo del LED es mínimo.

¿Cómo puedo apagar el LED de mi Arduino?

Conclusión

En este artículo, usted ha aprendido acerca de los fundamentos de un potenciómetro y cómo utilizar un potenciómetro con una placa Arduino Uno para controlar el brillo del LED.

Espero que hayas encontrado este artículo informativo. Me encantaría saber qué proyecto planeas construir o ya has hecho con el Arduino.

Si tienes alguna duda o sugerencia o crees que faltan cosas en este tutorial, por favor, comenta abajo.

Tenga en cuenta que los comentarios son retenidos por la moderación para evitar el spam.