
Tabla de contenido:
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-23 14:39

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


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

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


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


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




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



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



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


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

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:
Luz de despertador: 7 pasos (con imágenes)

Wakeup Light: mientras escribo este instructivo, estamos en pleno invierno en el hemisferio norte y eso significa días cortos y noches largas. Estoy acostumbrado a levantarme a las 06:00 y en verano el sol estará brillando para entonces. Sin embargo, en invierno, amanece a las 09:00 si
Luz de despertador LED de alta potencia (+/- 15 vatios): 5 pasos

Luz de despertador LED de alta potencia (+/- 15 vatios): * Nota de edición 2020: En primer lugar, ya no uso el ventilador y eso parece estar bien. Hace calor, pero todavía no se ha quemado nada. Con algunas ideas nuevas y dado que estos leds son tan baratos, usaría más de 2 y agregaría algunos LED individuales de 3W
Reloj despertador inteligente: un reloj despertador inteligente hecho con Raspberry Pi: 10 pasos (con imágenes)

Reloj despertador inteligente: un reloj despertador inteligente hecho con Raspberry Pi: ¿Alguna vez has querido un reloj inteligente? Si es así, ¡esta es la solución para usted! Hice Smart Alarm Clock, este es un reloj que puede cambiar la hora de la alarma de acuerdo con el sitio web. Cuando suene la alarma, habrá un sonido (zumbador) y 2 luces
LED regulable con placa Basys 3: 5 pasos

LED regulable con placa Basys 3: En esta guía vamos a construir y controlar un sistema de atenuación LED externo. Con los botones disponibles, el usuario puede atenuar la bombilla LED a cualquier brillo deseado. El sistema usa la placa Basys 3 y está conectado a una placa que contiene
Decodificador Basys 3 Morse: 11 pasos

Decodificador Basys 3 Morse: este es un proyecto para una clase universitaria. Este proyecto está escrito en VHDL en un programa llamado Vivado. Las tareas para crear todos los módulos necesarios para implementar un decodificador Morse utilizando la placa Basys 3. El tablero se usa para tomar el código morse de un swi