Aprender sobre microcontroladores (16 / 18 paso)

Paso 16: Haga un sonido alegre.

Para nuestra siguiente serie de experimentos, necesitamos conectar la bocina. Siguiendo el diagrama anterior, añadir uno más cable de puente desde Puerto B.3. El diagrama muestra este nuevo cable de color morado. Una vez más, la belleza de un kit de desarrollo que es más del altavoz circuitos ya está ahí; para añadir el circuito de altavoces todo, todo lo que necesitas es un cable puente simple.

Considerar, por un minuto, el electroimán que hiciste cuando eras un niño (si no recuerda que el imán se hace envolviendo un alambre alrededor de un clavo. Mira el diagrama de arriba. Cuando conecte los extremos del cable a una batería, la uña se magnetiza y usted puede recoger cosas como clips de papel.) Un altavoz es muy parecido a un electroimán; al realizar el flujo de corriente y parada que fluye a través de la bobina de un altavoz, produce una membrana que vibra, hacer el sonido.

Ahora, mira el diagrama esquemático del circuito altavoz. Ahora, manteniendo nuestro precedente de utilizar puerto B de salida y puerto D para la entrada, B.3 Puerto de control del altavoz. Echa un vistazo en el esquema arriba. Cuando B.3 de puerto está establecido en alto, la corriente fluirá de la tierra a través del altavoz y el pin de salida. Esto actuará igual que cuando usted conecta los extremos del cable en el electroimán a una batería y activa el electroimán dentro del altavoz. Cuando imprima un bajo en el Pin B.3, no habrá ningún punto positivo en el circuito, por lo que ninguna corriente fluirá y se desactivará el electroimán.

De la misma manera que utilizamos bucles para encender los LEDs y apagar repetidamente, nos nuevo utilizará bucles para magnetizar y se magnetice el electroimán dentro del altavoz. La principal diferencia será que vamos a utilizar mucho más corto tiempo dentro de nuestros lazos. Utilizando tu plantilla, agregue el siguiente programa y luego guardarlo con un nombre como prueba de altavoz.

Config PortB = salida

' Programa principal
Hacer ' alternar línea de altavoces
PortB.3 Set
waitms 1
restablecer PortB.3
waitms 1
Lazo

Una vez más, echa un vistazo a este programa: aquí vemos un circuito estándar, nada nuevo. También, vemos que, dentro del bucle, fijar puerto B.4 (el pin del altavoz) alto, esperar 1millisecond y luego reiniciarlo de nuevo a la baja y esperar a que otro 1 milisegundo. Porque estas declaraciones son dentro de un bucle, esta voluntad de repetición, el imán del altavoz de encendido y apagado en 500 veces por segundo, dos milisegundos encendiendo y apagando y repetido.

Compilar el programa y descargarlo a la 2313. ¿Qué pasa? Con el altavoz activar a 500 Hz (hercios, o veces por segundo) le debe oír un sonido procedente del altavoz. ¿Trate de cambiar los tiempos de retardo, lo que pasa? Ver cuán grande puede llegar el tiempo de retardo antes de que ya no suena como un tono, sino una serie de clics. Trate de usar diferentes valores para los tiempos de dos retardo; ¿Qué hace a los tonos?

Hay un sistema de declaración más que quiero introducir; el lazo de for...next. Este circuito incluye la capacidad para el regulador mantener la cuenta de cuántas veces se ejecuta el bucle. En formato básico, el ciclo comienza con una de declaración y luego termina con una instrucción next. Se puede entender mejor este bucle con un ejemplo:

Para cntr = 1 a 100
Set PortB.4
waitms 1
restablecer PortB.4
waitms 1
Siguiente cntr ' alternar línea de altavoces 100 veces

Observe la semejanza con otros lazos que ya hemos cubierto; hay un principio para el lazo (la declaración) y fin (la siguiente instrucción) y todo dentro consigue repitieron varias veces. Al principio del bucle, el de instrucción utiliza un área especial de la memoria, llamado una variable que contenga un número. La variable se da el nombre de "centro", y en primer lugar se encuentra igual al primer número de la declaración (en este caso 1). Entonces se ejecutan los comandos dentro del lazo de for...next. Al final del bucle, con la siguiente instrucción, suceden dos cosas: en primer lugar la variable se compara con el número más alto en la declaración (en este caso 100), si el número es igual (o superior) luego la instrucción next sale del bucle, y el programa continúa después del bucle. En segundo lugar, si la variable, "centro", es menor que el límite de número (100), luego "cntr" se incrementa, y flujo de programa lazos a la declaración.

Para poder utilizar una variable, debe configurar la zona especial de memoria. Para hacer esto usted tendrá que añadir una nueva declaración de configuración. Después de la declaración de la configuración de salida, agregue la siguiente línea:

Cntr DIM como byte

Esto anulará un byte de memoria (ubicación de una memoria) para mantener el número que llamamos cntr. Un byte puede contener cualquier número entero entre 0 y 255. Utilizamos esta extraña ortografía del contador porque el contador de la palabra sí mismo está reservado para que básica a utilizar. Tan sólo cambiar su nombre y todo funciona bien. Si durante tu experimentación, desea utilizar más de 255 en su ciclo de for...next, Recuerde cambiar el parámetro byte – trate de usar durante mucho tiempo. (Fijate en el manual BASCOM para más información sobre variables y el byte y tipos largos.)

Por lo tanto, la primera vez por el bucle, la variable "cntr" llevará a cabo el número uno. Al final del bucle, la siguiente instrucción comprobará y ver que "cntr" es menos de 100 (el límite establecido por la declaración,) se incrementan "cntr" a 2, y luego tener el programa loop a la declaración.

La próxima vez a través del lazo, todo se repite, excepto que "cntr" contiene el número 2. Esto se repite, con la variable "cntr" se incrementa cada vez, hasta llegar a 100. Cuando "cntr" es igual a 100, entonces la siguiente instrucción dirá "que es suficientes veces a través del lazo, ir la próxima declaración."

Como se puede ver, esto es una manera de repetir algunos pasos un cierto número de veces. ¿¿Que nos ayuda a aquí? ¿Qué tal si escribimos un bucle para cambiar el imán del altavoz encendido y apagado un número específico de veces? Ya que sabemos cuánto tiempo deja el imán en y cuánto dejar el imán, podemos calcular cuánto tiempo durará el tono. Tomar otra mirada en el bucle de arriba; ¿Cuánto tiempo duran? Si tenemos en cuenta que el imán es de 1 milisegundo y se apaga para otro 1 milisegundo, y luego coloca para 100 veces, nos encontramos con que el tono debería durar 200 milisegundos o 1/5 th de un segundo. En realidad, tendrá una duración de unos 200 milisegundos ya que cada una de las declaraciones, incluyendo las declaraciones de bucle, se toma una pequeña cantidad de tiempo. Sin embargo, para los efectos de esta clase, podemos ignorar la sobrecarga de tiempo – apenas mantener en su mente, en caso de necesitar más tiempo más adelante.

Sugerencia: para frecuencias de mayor tono, mira el BASCOM-AVR manual bajo la declaración waitus.

Creo que mi vieja linterna apenas escapó con vergüenza!

Artículos Relacionados

Aprender sobre el diseño moderno de mediados de siglo

Aprender sobre el diseño moderno de mediados de siglo

aprender sobre diseño moderno de mediados de siglo (Eames Era)Esto es donde diseño moderno comenzó a gente, no se olvide de ver el video entero!Todos los fabricantes de mod'ers y constructores definitivamente deben investigar diseño moderno de mediad
Vamos a aprender sobre condensadores Super! (Una guía práctica para condensadores estupendos)

Vamos a aprender sobre condensadores Super! (Una guía práctica para condensadores estupendos)

Hola comunidad Instructables!  VEA NUESTRA CAMPAÑA DE KICKSTARTER LINTERNA SUPER CAPACITOR:http://www.Kickstarter.com/projects/172204344/The-Forever-Rechargeable-Talking-super-capacitor-f?Ref=LiveVamos a hablar de condensadores estupendos!¡ Gracias p
Aprender sobre el 555

Aprender sobre el 555

en este instructable te enseñaré todo lo que se necesita saber sobre el temporizador 555 IC. Si ya sabes de la viruta se puede comprobar hacia fuera mi diapositivas titulado "47 proyectos para hacer con un 555" te enseñará cada proyecto básico p
Aprender sobre el tablero de arranque de L3GD20

Aprender sobre el tablero de arranque de L3GD20

El sensor de L3GD20 es un chip de baja potencia que mide la velocidad angular. En otras palabras, es un componente que detecta movimiento y cambios de orientación. Se puede comunicar con otros chips usando I2C o SPI (interfaz periférica Serial) proto
Vamos a aprender sobre terrarios: Un guía para terrarios

Vamos a aprender sobre terrarios: Un guía para terrarios

Qué es un terrario:Terrario: una colección de plantas compatibles en un cerrado o parcialmente cerrado, claro envase.Hay muchas maneras diferentes que usted puede ir sobre el diseño de un terrario. Tu imaginación es la clave! Este ' ible es la más fá
Cómo aprender sobre el Corán

Cómo aprender sobre el Corán

El Corán e Kareem es tomado como el texto más importante de la religión en el Islam. Los musulmanes intentan memorizar este texto y creer en él para ser el centro de leyes de orientación, las leyes y última revelación de Dios.Paso 1: Entender el Corá
Aprender sobre los mejores casinos y torneos

Aprender sobre los mejores casinos y torneos

Aprende los mejores juegos de casino y torneos en el camino con este video. Los australianos pueden unirse a la floreciente comunidad de poker online usando su móvil y la experiencia que estos sitios elite tienen que ofrecer en la palma de su mano. R
Usando objetos comunes para aprender sobre el perímetro, área y volumen

Usando objetos comunes para aprender sobre el perímetro, área y volumen

Las matemáticas son que todo alrededor de nosotros y de objetos cotidianos proporcionan una manera fácil de ilustrarlo. Las aplicaciones son infinitas y si usted está decidiendo cuántas cosas caben en tu mochila, planificar un jardín, o rellenar una
Aprende sobre aceleración con coches del cohete.

Aprende sobre aceleración con coches del cohete.

Un motor de cohete miniatura, tubos pen, una rueda caliente y un poco de pegamento caliente será la ayuda perfecta para conocer la aceleración!Paso 1: materialesLo esencial:-Caliente el coche de ruedas o un coche de igual valor (sólido, no un product
Programador de PIC de la tarjeta

Programador de PIC de la tarjeta

este fue mi entrada para el concurso de Hack A Day tarjetas tamaño circuito. Acabo de comprimir los archivos y ponerlos en mi página web. Les dejo lo aquí porque todas las entradas parecen estar en un blog de fácil acceso. Esperemos que esto que el p
Botellas de leche direccionable (iluminación LED + Arduino)

Botellas de leche direccionable (iluminación LED + Arduino)

EPI hacer botellas de leche en buena busca luces de LED y usar un Arduino para controlar. Esto recicla una cantidad de cosas, principalmente las botellas de leche y utiliza una cantidad muy baja de energía: los LED al parecer disipan menos de 3 vatio
Paquete de sistema de alerta (mediante correo electrónico)

Paquete de sistema de alerta (mediante correo electrónico)

FONDO y generación de una IDEA / /Si trabajas en una oficina pequeña, tal vez tiene algunos de los mismos problemas que tenemos. Una de las cosas frustrantes que se produce cada vez que realizo el pedido de un paquete es un retraso entre cuando llega
Solver de ecuación de segundo grado con arduino

Solver de ecuación de segundo grado con arduino

este instuctable trata de hacer especie de una calculadora que permite al usuario mediante un teclado analógico de 12 dígitos y 4 botones para introducir el a, b, c variables en una ecuación y obtener la solución por si hay alguna. (bien si no sabes
Over The Rainbow iluminado diamante princesa cama

Over The Rainbow iluminado diamante princesa cama

este fue un proyecto que se inició con la idea de mi esposa para crear una cama de princesa con un diamante de cristal colocado en la parte superior de cada poste de la cama. Entonces, un amigo llamado Tom sugirió podríamos hacer el diamante iluminan