Full Mecánica

Para todos los amantes de la Tecnología Mecánica

Definiciones y conceptos de Mecánica ==>>

El comando analogWrite en arduino

El comando "analogWrite" en Arduino

El comando analogWrite es muy similar al comando “digitalWrite”  solo que en lugar de devolver un estado alto o bajo, devuelve (por el pin designado) un valor comprendido entre 0-255.

Syntaxis:

               AnalogWrite(#Pin, Valor)

Donde:

  • #Pin: se refiere al número del Pin que devuelve el pulso de salida (leer más abajo). Este #Pin, puede ser directamente un entero como tal, o, un valor algébrico sea de una constante o de una variable.
  • Valor: número de unidades comprendido entre 0-255 escritas directamente ó como una variable.

 

Ejemplo 1:

int pwma=3; //define a pwma como un entero y le asigna el valor de 3                            

int LED; //define a LED como un entero

analogWrite(pwma,192); //entregue por el pin 3 el valor 192

 

Ejemplo 2:

analogWrite(LED, i); // i puede tener diferentes valores que pueden ser de un lazo                                                   

Const int LED=9;

Void setup()

{

pinMode (LED, OUTPUT);

}

Void loop()

{

For (int i=0; I<256; i+1)

{analogWrite(LED, i);

Delay(10)

}

 

Con el comando analogWrite, Arduino puede generar pulsos de 5v de forma contínua y con una duración máxima de 1/488=2.05 ms* lo que significa que Arduino puede controlar el tiempo que dura el pulso en el intervalo de 0-2,05 ms (0-0.00205s). Es decir, puede hacer que el pulso dure 0, 0.2, 0.5, 0.7, ó 2.052 milisegundos como máximo por lo tanto si se fija una duración del pulso de 2.052ms, se obtendrá un voltaje continuo de 5v.

En la instrucción AnalogWrite se escribe la duración del pulso en unidades comprendidas entre 0-255. Arduino divide el tiempo de 2.05ms* en 2E8=256 fracciones (0-255 unidades). Si se fijan 255/4=64u, el puso alto (5v) durara 25% de 2.05ms es decir 0.5125ms, si son 128u, el pulso durara 50% de 2.05ms, con 192u durara 75% de 2.05ms, con 255u el pulso será prácticamente continuo, el porcentaje mencionado se llama "Duty Cycle".

  • * Aunque el periodo de los pulsos varia de de tarjeta a tarjeta, y ocasionalmente de pin a pin, en el Arduino Mega, el periodo para los pines 2-3-5-12 es de 2.05ms (1/488Hz), y para los pines 4 y 13 es de aproximadamente 1.025ms (976Hz). Es posible cambiar el PWM en el Arduino Mega con un código especial que no es por el momento nuestro propósito.

En el Arduino uno, los pines 3-5-6-9-10-11 son salidas o pines analógicos (PWM) es decir pueden proporcionar voltajes comprendidos entre 0 a 5v//pg27-Jeremy Blum, Exploring ARDUINO.

La relación entre el ancho del pulso y el periodo del mismo se llama el ciclo de trabajo o Duty Cycle.

 

El siguiente programa produce una señal PWM cuyo Duty Cycle cambia desde 0%, a 25%, 50%, y 75%.

Int pwm_pin=13; // asigna un nombre al pin 13

Void setup() {

pinMode(pwm_pin, OUTPUT); // configure el pin 13 como salida

}

Void loop {

AnalogWrite(pwm_pin, 0); // fija el Duty Cicle a 0%

Delay(1000); // espere un segundo

analogWrite(pwm_pin, 64); // fija el DC a 25%

delay(1000);

analogWrite(pwm_pin, 128);

delay(1000);

analogWrite(pwm_pin, 192); // DC 75% esto es 192/256 * 100

}

 

Si te gusto el artículo, da un click en una publicidad, de esta manera ayudaras a mantener esta pagina.

Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.

Ambato 190602

Fullmecanica 2014 - Todos los Derechos Reservados