Salidas analógicas.

Si queremos alimentar una salida conectada a un pin de arduino, con tensiones entre 0 y 5, por ejemplo para dar mas o menos intensidad a un led, velocidad a un motor cc … los haremos mediante una salida PWM, que es dara valores de tensión de salida medios entre 0V y 5 V.

Pasa saber mas recomiendo la pagina de Luis Llamas https://www.luisllamas.es/salidas-analogicas-pwm-en-arduino/

En Arduino Uno, Mini y Nano, disponemos de 6 salidas PWM de 8bits en los pines 3, 5, 6, 9, 10 y 11. si te fijas en tu placa arduino, estos pines estas marcado con el símbolo de corriente alterna. ~ (126 de la tabla ascii, para imprimirlo en pantalla pulsa la tecla alt y sin soltar escribe el numero 126, y obtendras el caracter ascii 126)

En Arduino Mega disponemos de 15 salidas PWM de 8bis en los pines 2 a 13 y 44 a 46

La tensión que suministra la salida PWM de arduino son valores de 0 a 255 de manera que el incremento de un unidad equivales a 5V/256= 0.0195V.

Un valor 0 equivale a una salida de 0V

un valor de 30 equivale a 30*0.0195=0,585V

un valor de 128 equivale 128*0.0195 = 2,5V

Utilizando el circuito de la entrada anterior, vamos ha realizar un programa que cambiara la iluminación del led rojo cuando giremos el potenciometro.

Como el valor del potenciometro suminitra un valor entre 0 y 1024 y la salida PWM toma valores entre 0 y 256. divideremos el valor de la entrada analógica por 4 y asi utilizar para la regulación todo el angulo del potenciometro

int Vpot;//la varible  sera uVpot temdra un valor entre 0 y 1023 en función de la posición del potenciometro
int Vled;
int led_r=3;// led rojo al pin3
void setup()
{
pinMode(led_r,OUTPUT);
Serial.begin(9600);
}
 
void loop()
{
Vpot= analogRead(A0);//lee el valor de tensión 0-5V0 lo  convierte un nuemro entre 0-1023 y lo almacena en la varialbe Vpotenciometro  
Vled=Vpot/4; //divide el valor entre 4 para que Vled tenga un rango entre 0 y 255
analogWrite(led_r,Vled);// la iluminación del led rojo depende del valor Vled
//para ver la tension que suminista el led  
Serial.print("Tension salida pin analogico  ");
Serial.println(Vled*0.0195);  
delay(500);
  
}

Deja una respuesta

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