miércoles, 15 de junio de 2011

EJERCICIO Nº 5: Timbres y zumbadores electrónicos

Los timbres emiten un sonido cuando están conectados a una fuente de alimentación. Este sonido normalmente es “fijo” a una frecuencia determinada; así, los timbres sólo pueden emitir un solo “tono”. Los zumbadores electrónicos usan un tipo de sistema diferente para emitir sonidos y pueden ser utilizados para emitir sonidos en diferentes tonos al proveerlos de una salida “pulsada”.


Para probar este programa se debe instalas un zumbador electrónico (SPE002) en el tablero tutorial. Para hacer esto, se instalan los conectores del zumbador, en la entrada marcada con la palabra PIEZO, ubicada aproximadamente en el centro del tablero tutorial. Luego, se suelda el cable rojo en el agujero marcado “+” y el cable negro en el agujero marcado con “-”.
El sistema PICAXE puede crear automáticamente sonidos de diferentes frecuencias utilizando el comando sound.


main:

sound 6, (50,100) `emitir un sonido en salida 6 con tono 50 y duración 100
sound 6, (100,100) `emitir un sonido en salida 6 con
sound 6, (120,100) `emitir un sonido en sali

pause 1000 `esperar 1 segundo
goto main `saltar al inicio del programa (main)

En el programa, el primer número indica el número de pin (en el tablero tutorial el pin de salida 6 es el utilizado). El siguiente número es el tono, seguido por último de la duración del sonido. Mientras más alto sea el número de tono, mayor será la “altura tonal” del sonido (hay que tener precaución porque algunos zumbadores no pueden reproducir sonidos mayores de 127 y puede que no sean escuchados).
El siguiente programa utiliza un bucle for…next para producir 120 sonidos diferentes.

main:

for b0 = 1 to 120 `iniciar un bucle for.next

sound 6, (b0,50) `emitir sonido en la salida 6 con tono b0 y duración 50

next b0 `siguiente b0

end

El número almacenado en la variable b0 aumenta 1 unidad en cada bucle (1-2-3, etc.). Por consiguiente, al utilizar la variable b0 para asignar el tono, el mismo puede ser cambiado en cada bucle.
El siguiente programa realiza la misma función pero cambiando el tono en orden descendente, es decir de 120 a 1.

main:

for b0 = 120 to 1 step -1 `iniciar bucle for.next (en cuenta regresiva)

sound 6, (b0,50) `emitir sonido salida 6 (tonob0- durac.50)

next b0 `siguiente b0

end

El siguiente programa emite todos los 256 sonidos posibles:

main:

sound 6, (b0,50) `emitir sonido en la salida 6

let b0 = b0 + 1 `sumar 1 al valor de la variable b0

goto main `ir a inicio del programa (main)

En este último caso el programa es ejecutado indefinidamente. Sin embargo, es importante comprender como el PICAXE ejecuta las operaciones matemáticas.
El PICAXE sólo interpreta números bytes, o sea números enteros del 0 al 255. No pude interpretar fracciones, ni números negativos, ni números mayores de 255. Así, si se trata de sumar 1 a 255, el PICAXE saltará de nuevo a 0. Por consiguiente, en el programa anterior, el valor de la variable b0 se comportará de la siguiente manera mientras el programa se ejecuta: …252-253-254-255-0-1-2-etc.

No hay comentarios:

Publicar un comentario