ARDUINO: Fade de un LED con Potenciómetro



Se vio como aumentar o disminuir el brillo de un led con PWM y con el uso de una sentencia for en "Fade de un LED", ahora lo haremos usando un potenciómetro, la explicación del circuito será muy simple y vaga ya que la mayoría de lo que se usa se vio en prácticas anteriores.

Como en sensores analógicos ya se vio como leer los valores de un potenciómetro y almacenarlos en una variable para su uso posterior y  ya se vio el uso de PWM con analogWrite, recuerde que para usar el PWM solo se deben de conectar los actuadores indicados en "actuadores analógicos".

 
fade led con pot.png
 

Materiales:

  • 1x Arduino

  • 1x LED

  • 1x Resistor de 220Ω

  • 1x Potenciómetro de 10K

  • 1x Protoboard

  • Jumpers

Esquema de montaje

Como pueden observar el esquema de nuestro circuito es muy simple, estamos utilizando la configuración de lectura de un potenciómetro y el uso de un LED. 

Clic en la imagen para ampliar.

Código

La explicación es bastante simple, se definieron los pines a usar, en este caso el 3 y A0, se creó una variable para almacenar los datos del potenciómetro, en el setup inicializamos los pines y cargamos el Serial para visualizar los datos.

En el loop leemos los datos del potenciómetro y se almacenan en la varíale valor, después con el uso del Serial.println imprimimos esos valores. Y se preguntarán, ¿por qué se divide entre 4?, es muy simple, recuerden que la resolución del Arduino para el ADC es de 10 bits así que nos entregará un máximo de 1024 - 1, pero la resolución del PWM es de 8 bits y acepta un valor máximo de 255, así que  , por eso se divide entre 4 para obtener el valor máximo de la resolución del PWM. Esto también se hace en la función analogWrite, pues es ahí donde enviaremos esos valores al LED para que aumente y disminuya su brillo cada 100 milisegundos por medio del potenciómetro, esto con ayuda del delay.

#define LED 3
#define POT A0

void setup() {
  Serial.begin(9600);
  pinMode(POT,INPUT);
  pinMode(LED,OUTPUT);
}

void loop() {
  int valor = analogRead(POT);

  Serial.print("Valor POT: ");
  Serial.print(valor);
  Serial.print(" | Valor PWM: ");
  Serial.println(valor/4);
  
  analogWrite(LED,valor/4);
  delay(100);
}

Ahora pueden mover el potenciómetro y podrán apreciar cómo cambia el brillo del led, además de visualizar los datos en el monitor serial.

Con esto vemos cómo podemos manipular el PWM con sensores, en este caso un potenciómetro y como siempre esto es la base para proyectos más avanzados.