Tabla de contenido:

Despertador Basys 3: 9 pasos
Despertador Basys 3: 9 pasos

Video: Despertador Basys 3: 9 pasos

Video: Despertador Basys 3: 9 pasos
Video: La unión de Maximals 🔥 | Transformers: El Despertar De Las Bestias | Clip en Español 2024, Octubre
Anonim
Despertador Basys 3
Despertador Basys 3

Nuestro proyecto crea un reloj despertador usando la placa Basys 3 FPGA, un Arduino y una placa de controlador de altavoz. El usuario puede ingresar la hora actual en el tablero usando 11 interruptores de entrada en el Basys 3 y bloquear el valor usando el botón central en el tablero. Luego, el usuario puede ingresar la hora de la alarma usando los mismos interruptores, pero presione el botón izquierdo para bloquear la hora de la alarma. Si se ingresa la hora incorrecta, se puede presionar el botón de reinicio (botón superior) y la hora actual del reloj y la hora de la alarma se establecerán en 00:00. El usuario puede entonces poner en marcha el reloj usando el interruptor más a la izquierda y encender la alarma usando el siguiente interruptor. Cuando la alarma está encendida, el despertador emitirá un sonido cuando la hora del reloj y la hora configurada coincidan.

Paso 1: Diagrama de caja negra

Diagrama de caja negra
Diagrama de caja negra
Diagrama de caja negra
Diagrama de caja negra

Comenzamos nuestro proyecto dibujando un diagrama de caja negra para visualizar las entradas y salidas necesarias en nuestro programa. Las siguientes entradas para nuestro programa, como la entrada de 5 bits (Hour_in) se inicializaron para especificar el tiempo de 24 horas, la entrada de 6 bits (Min_in) para mostrar hasta 60 minutos, un botón de reinicio (Rst_b) para permitir al usuario cambiar su entrada de tiempo, una entrada de 1 bit (alm_en) que carga la entrada de alarma, una entrada de 1 bit (alarm_sw) para apagar el despertador cuando se activa, una entrada de 1 bit (e_sec) que controla cuando el contador de segundos se ejecutará, una entrada de 1 bit (Led_btn) que establece la hora actual, y por último una entrada de 1 bit (clk) que controla la hora mostrada por la placa Basys 3. Las salidas son (alm_on) que envía la señal al Arduino, la salida sseg que muestra el tiempo de entrada en el Basys 3 y la salida del ánodo que controla dónde se muestran las entradas en la pantalla de siete segmentos.

Paso 2: reloj lento

Reloj lento
Reloj lento

El reloj lento o el archivo clock_div2 crea un reloj cuya frecuencia es de 2 hz. Si alimentamos este reloj a nuestro contador de segundos, el valor de los segundos aumentará en uno por segundo. El reloj lento se usa para crear una señal de reloj confiable que cambia de baja a alta una vez por segundo.

Paso 3: Contador

Encimera
Encimera
Encimera
Encimera

Contador de componentes (minutos y segundos):

La función básica de los minutos y los segundos es que son contadores. El contador de minutos toma la entrada (Vin) que es la señal de las entradas (Min_in), y luego cuenta hasta que llega a la entrada deseada ingresada. Los segundos solo toman la entrada del interruptor (e_Sec) ya que no se puede mostrar en el segmento siete, y cuentan en el fondo una vez que el interruptor es alto '1'. Ambos envían su valor a (Qout), y luego se almacena en (datos) que lo envía a SSEG, lo que se hace en el archivo de vinculación. Además, cuando los minutos y los segundos alcanzan los valores de 59, se reinicia y la salida de ellos es "1" para incrementar los minutos / hora. También se puede asignar con un reinicio (rst_b) a sus entradas.

Paso 4: Contador de horas

Contador de horas
Contador de horas
Contador de horas
Contador de horas

Hora del contador de componentes

De manera similar, para el contador de componentes de los minutos y segundos, el componente de la hora toma entradas como (Vin) que es una señal de la entrada del archivo de vinculación (Hour_in), y tiene salidas que están vinculadas de la misma manera con los minutos y los segundos. Cuando el valor de recuento de horas llega a 24 00, se restablece a 00 00.

Paso 5: alarma

Alarma
Alarma
Alarma
Alarma
Alarma
Alarma
Alarma
Alarma

El archivo.vhd de alarma se compone de d-flip-flops que son dispositivos de almacenamiento que pueden almacenar datos digitales. El archivo de alarma se utiliza para almacenar la hora a la que se activará la alarma. Para almacenar los datos de horas (entrada de 5 bits) y minutos (entrada de 6 bits) debemos eliminar 11 d-flip-flops dentro de nuestro archivo de alarma. Para hacer esto, primero debemos importar la lógica que gobierna el funcionamiento de los d-flip-flops y mapear los componentes. Cada uno de los 11 d-flip-flops almacenará un bit de datos de las entradas y permitirá que los datos se asignen a las salidas del archivo de alarma. Debido a que los d-flip-flops almacenan datos, podemos usar los datos en un momento posterior incluso si se han cambiado los interruptores de entrada.

Paso 6: controlador de pantalla universal de siete segmentos

Controlador de pantalla universal de siete segmentos
Controlador de pantalla universal de siete segmentos
Controlador de pantalla universal de siete segmentos
Controlador de pantalla universal de siete segmentos
Controlador de pantalla universal de siete segmentos
Controlador de pantalla universal de siete segmentos

El controlador de pantalla universal de siete segmentos recibe las entradas del reloj y el reloj y puede enviarlas a la pantalla de siete segmentos de la placa. El controlador puede generar dos recuentos separados en la placa a la vez. Usamos esta función para mostrar tanto la hora como el minuto por separado. La pantalla de siete segmentos solo puede activar un número a la vez, por lo que el archivo sseg debe usar multiplexación para mostrar todos los números del tiempo simultáneamente. La señal de reloj de la placa se alimenta al sseg para mantener la hora correcta de multiplexación. Es necesario un codificador decimal codificado de binario a binario para convertir las entradas al archivo a una forma que pueda enviarse a la pantalla de siete segmentos. La salida final del archivo sseg se asigna a la pantalla de siete segmentos y la hora correcta se muestra en la pantalla.

Paso 7: Vincular archivo

Archivo de enlace
Archivo de enlace
Archivo de enlace
Archivo de enlace
Archivo de enlace
Archivo de enlace

El archivo de enlace conecta todos los demás aspectos del programa y asigna las señales a su ubicación correcta. Cada componente se incorpora y se crea una instancia dentro del archivo. Las señales se utilizan para transferir datos de un componente a otro. La asignación de puertos seguirá el diagrama de caja negra mencionado anteriormente. El archivo de enlace también contiene la lógica que gobierna cuando se activa la alarma. La mayor parte del proyecto ya estará terminado en este punto. El trabajo restante es enrutar cada señal a la ubicación adecuada.

Paso 8: Arduino

Arduino
Arduino
Arduino
Arduino

El arduino se utiliza para activar el altavoz, así como para controlar el tono y la duración de la nota que se reproduce a través del altavoz. El arduino lee una señal digital de la placa Basys 3. Cuando esta señal es alta, el arduino emitirá una señal PWM que controla el tono y la duración de la alarma. La señal de salida del arduino se conecta a la señal de entrada de una placa de controlador de altavoz que aumenta el volumen del altavoz. El arduino hace este proceso muy rápido repitiendo muchas veces por segundo.

Paso 9: Enrutamiento de cables

Tendido de cables
Tendido de cables

La placa arduino y Basys 3 debe estar conectada físicamente para transferir señales entre las placas. El primer cable a conectar será el del pin de tierra del JA PMOD del Basys 3 al pin de tierra del arduino. A continuación, conecte un cable desde el pin 1 del JA PMOD del Basys 3 al pin digital 7 del arduino. A continuación, conecte dos pines de tierra del arduino a los pines de tierra del controlador del altavoz. A continuación, conecte la salida de 3.3 V del arduino al pin Vcc del controlador del altavoz. A continuación, conecte el pin digital 9 del arduino al pin In del controlador del altavoz.

Recomendado: