miércoles, 9 de mayo de 2012

Arduino PWM y comunicación serial.

En esta entrada hablaremos de la modulación por ancho de pulso (PWM) y de comunicación serial. si bien el arduino dice tener salidas analógicas estas no son mas que salidas de PWM que se pueden convertir en valores de voltaje estático con un circuito extra, PERO NO LO SON. sin embargo es muy practico utilizar estas salidas para controlar el brillo de un led, la velocidad de un motor, o la temperatura de un generador de calor eléctrico. 

El circuito propuesto para esta experiencia es el siguiente.

Con capturaremos el valor analógico del potenciometro este sera de 10 bits (0-1023) como lo hicimos en el montaje anterior, y lo manejaremos matemáticamente para adaptarlo a los valores de pwm que van desde 0 a 255 y observaremos ambos valores a través del puerto serial. también variaremos el brillo de un led y controlaremos la velocidad de un pequeño motor DC.

el software que estaremos utilizando es el siguiente.

/*
 lectura analogica serial
 lee un valor por la entrada analogia A0 y la envia de forma serial
 para ser visualizada por el monitor serial
 
 */

void setup() {
  Serial.begin(115200); // configura la velocidad del puerto serial
}

void loop() {
  int sensorValue = analogRead(A0); // guarda el valor de la lectura del puerto analógico en sensorValue
  analogWrite(9,sensorValue/4); // divide el valor analogico el PWM es de solo hasta 255
  Serial.print("sensor "); // envia el string sensor a el puerto serial
  Serial.print(sensorValue); // envia el valor del sensorValue a el puerto serial
  Serial.print(" PWM "); // envia el string PWM a el puerto serial
  Serial.println(1024-sensorValue); // envia el valor del PWM a el puerto serial y salta una linea
 
}

y el vídeo del montaje a continuación.


hasta la próxima...

1 comentario:

  1. Olha Khe aCxHes???? H3xP3r0 7u r3zphueztha ;) No copi loka solo samber epa epa colombia :* 11a cR33 l4 cuant4.

    ResponderEliminar