manual de programación arduina Manual+Programacion+Arduino | Page 47
Arduino: Manual de Programación
digitalWrite (), generamos la señal PWM a una determinada frecuencia de
salida=261Hz*/
int digPin = 10; // pin digital 10
int PW=1915; // valor que determina el tiempo que el pulso va a estar en on/off
void setup() {
pinMode(digPin, OUTPUT); // pin digital en modo salida
}
void loop() {
delayMicroseconds(PW);
// espera el valor de PW
digitalWrite(digPin, LOW); // asigna el valor LOW al pin
delayMicroseconds(PW);
// espera el valor de PW
digitalWrite(digPin, HIGH); // asigna el valor HIGH al pin
}
Ejemplo 2:
En Arduino la señal de salida PWM (pines 9,10) es una señal de frecuencia constante
(30769 Hz) y que sólo nos permite cambiar el "duty cycle" o el tiempo que el pulso está
activo (on) o inactivo (off), utilizando la función analogWrite().
Usaremos la característica “Pulse Width” con “analogWrite” para cambiar el volumen.
analogWrite(, value)
value: representa al parámetro "duty cycle" (ver PWM) y puede tomar valores entre 0 y
255.
0 corresponde a una señal de salida de valor constante de 0 v (LOW) o 0% de
"duty cycle";
255 es una señal de salida de valor constante de 5 v (HIGH) o 100% de "duty
cycle"; .
Para valores intermedios, el pin rápidamente alterna entre 0 y 5 voltios - el valor más
alto, lo usual es que el pin esté en high (5 voltios).
La frecuencia de la señal PWM es constante y aproximadamente de 30769 Hz.
int speakerOut = 9; int volume = 300; // máximo volume es 1000 ¿?
int PW=1915;
void loop() {
analogWrite(speakerOut, 0);
analogWrite(speakerOut,volume);
delayMicroseconds(PW);
analogWrite(speakerOut, 0);
delayMicroseconds(PW); }
47