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:
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".
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