Anda di halaman 1dari 2

EJEMPLO 1: PWM

Es el ejemplo ms sencillo que se me ha ocurrido. En la variable potencia


cargamos el tanto por % de la potencia deseada. La variable ciclo se carga con
el valor del ciclo til de la seal PWM que queremos sacar por la lnea D6,
conectada con el led blanco de la tarjeta de experimentacin.

Dicho valor debe estar comprendido entre 0 y 255. Se obtiene a partir de la


potencia que hemos indicado. Segn el ejemplo:

255 25 255
= = = 64
100 100
Este sera el cuerpo principal del programa:

Ya ves que el uso de la sentencia analogWrite() es muy sencillo. Basta con


indicar la lnea de salida y el valor que expresa la duracin del ciclo til.

Un truco. Observa la sentencia while(1). Qu hace? Es un bucle que est


evaluando constantemente la expresin 1, (TRUE o VERDADERO). Como dicha
expresin no vara, el bucle es infinito y nunca finaliza. Nos sirve para comprobar
que una vez encargamos una seal PWM, sta se mantiene estable aunque el
arduino est ejecutando otra tarea que, como en este caso, est ejecutando un
bucle sin fin.

EJEMPLO 2: EFECTOS

Un ejemplo que consigue un bonito efecto luminoso. Mediante el empleo de dos


bucles for, el brillo del led blanco conectado con la lnea D6 va variando
dinmicamente. Este es el primer bucle for

La variable ciclo empieza con 5 y evoluciona hasta llegar a 255 en incrementos


de +5 (5, 10, 15.). Los distintos valores que va adquiriendo esta variable se
emplean para generar una seal PWM cuyo ciclo til, lgicamente, va
aumentando hasta llegar al 100% (255). El led ir aumentando de brillo. Para
poder apreciar estas variaciones, se intercala una temporizacin entre incremento
e incremento. Y este es el segundo bucle for, justo detrs del primero:

Ahora la variable ciclo empieza con 255 y evoluciona hasta llegar a 0 en


decremento de -5 (255, 250, 245). Los distintos valores que va adquiriendo esta
variable se emplean para generar una seal PWM cuyo ciclo til, lgicamente, va
disminuyendo hasta llegar al 0% (0). El led ir reduciendo el brillo.
EJEMPLO 3: PWM ALEATORIO

Vamos a generar una seal PWM cuyo ciclo til se obtiene a partir de un nmero
aleatorio comprendido entre 0 y 255. La seal se aplica a la lnea D6 conectada
con el led blanco, con lo que observars una llamativa y aleatoria variacin de su
brillo. Ese mismo nmero se utiliza para obtener frecuencias o tonos aleatorios
que se aplicarn al altavoz. Podrs as escuchar el sonido de la seal PWM en
todo momento.

Ya ves que se trata de un programa muy sencillo. Se genera un numero aleatorio


entre 0 y 255 (B=random(255);) que se emplea para generar una seal PWM por
la lnea D6 (analogWrite(6,B);). Tambin se emplea para generar un tono por el
altavoz, mediante la sentencia tone(2,B);.

EJEMPLO 4: LUCES ALEATORIAS

Como consecuencia de lo anterior podemos impresionar a nuestros familiares con


este curioso juego de luces. Se trata de obtener 4 nmeros aleatorios que se
almacenan en las variables B, V, A, R. se emplean para generar otras tantas
seales PWM que se aplican a los leds blanco, verde, mbar y rojo
respectivamente. No hay mucho que destacar. Simplemente decir que todos los
nmeros aleatorios estn comprendidos entre 0 y 255 excepto el del valor para la
seal PWM que gobierna el led blanco. En este caso el nmero est comprendido
entre 0 y 20. De esta forma compensamos as el exceso de brillo de este led
respecto al resto.

La figura 8-9 muestra la solucin mediante las fichas de ardublock. Su equivalente


en el lenguaje arduino es prcticamente lo mismo.

EJEMPLO 5: REGULACIN

Aqu te presento un interesante ejemplo que te permite regular manualmente la


duracin del ciclo til de la seal PWM que controla el led blanco, conectado a la
lnea D6. Mediante los pulsadores conectados a las lneas D4 Y D7 esa potencia
se incrementa o decrementa en pasos de 10 en 10. Si le echas un vistazo al
programa veras que no es muy difcil. La variable ciclo se inicia con 0 y su valor
actual servir para generar la seal PWM.

Anda mungkin juga menyukai