Control de entrada analógica y salida PWM

En este artículo vamos a variar la intensidad de luz de un diodo led a partir de un potenciómetro (Resistencia variable).

Las entradas analógicas son aquellas que pueden cambiar su valor a lo largo del tiempo, en Arduino pueden ir desde 0v-5v cogiendo hasta 1024 valores distintos. La entrada analógica normalmente se utiliza para sensores o potenciómetros.

Las salidas PWM emulan una señal analógica a partir de una señal digital, el rango es de 0 a 255 (0v-5v), esta se puede utilizar para variar la velocidad de un motor, controlar los grados de giro de un servomotor o variar la intensidad de la luz.
 
PWM viene de Pulse Width Modulation, o Modulación de Ancho de Pulso.

Ejemplo de funcionamiento PWM

Material necesario:

 •    Una placa Arduino
•    Una Protoboard
•    Un diodo LED
•    Una resistencia de 220 Ohms
•    Un potenciómetro 1k Ohms

Esquema de montaje:

Esquema PWM arduino

Las salidas digitales que podemos hacer servir en modo PWM con la placa Arduino UNO son: 11,10,9,6,5 y 3. Las entradas analógicas van del A0 al A5.

Programa:

// Variables estáticas

int Sensor = A0; // Declaramos la variable del potenciómetro
int Led = 9; // Declaramos la variable del led

// Variables dinámicas

int datoSensor = 0; // Variable para el valor del sensor

void setup() {
 
  pinMode(Led, OUTPUT); // Asigna el pin del led como salida

}

void loop() {
 
 datoSensor = analogRead(Sensor); //Leemos el dato del sensor y lo guardamos en la variable
 
 analogWrite(Led, datoSensor / 4); //Valor analogico para la salida
 
 delay(25); //Detenemos el programa 25 milisegundos
 
}

En el programa, el valor de la salida PWM es el valor del sensor entre 4 esto se debe a que la entrada tiene un rango de 0 a 1023 y la salida de 0 a 254. Entonces hay que escalar el valor.

Demostración:


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *