Tabla de contenido:
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-13 06:57
Es hora de ir a la cama. Te levantas para apagar las luces por la noche, y después de accionar el interruptor, te das cuenta de que tienes el viaje de regreso a la seguridad de tu cama delante de ti. Por suerte para ti, se inventaron las luces nocturnas, ¡y has venido al lugar correcto para encontrar una! Pero … ¿cómo puedes quedarte dormido cuando esa molesta luz nocturna está encendida toda la noche iluminando tu habitación? Además, ¿no estás cansado de esta oscuridad vacía que hace que tus luces nocturnas permanezcan encendidas y desperdicien energía? Bueno, TODAVÍA estás en el lugar correcto, ¡porque tenemos exactamente lo que necesitas!
Queremos iluminar tu vida ayudándote a crear una luz nocturna sostenible.
En este tutorial, lo guiaremos a través del proceso de construcción de una luz nocturna que se apagará con un temporizador. El sistema podrá reconocer cuándo se apaga la luz principal, a través de un sensor de luz, y encender la luz durante un tiempo establecido por el usuario y apagarse una vez transcurrido ese tiempo. Esta luz nocturna es diferente a otras luces nocturnas porque desperdicia energía al permanecer encendida cuando está dormido y no la necesita. Este proyecto utiliza dos tipos de placas, Basys 3 y Arduino, y un sensor de luz.
Creadores: Luke McDaniel, Erik Ramazzini, Monica Negrete, Hayley Young
Paso 1: Materiales y software
Materiales
Placa de entrenamiento Basys 3 Artix-7 FPGA
store.digilentinc.com/basys-3-artix-7-fpga…
Arduino Uno Rev3
store.arduino.cc/usa/arduino-uno-rev3
Tablero de circuitos
www.amazon.com/Elegoo-EL-CK-002-Electronic…
Resistencia de 10k Ω
Mismo enlace que la placa de pruebas
Cables de puente
Mismo enlace que la placa de pruebas
Sensor de luz (mini fotocélula)
www.sparkfun.com/products/9088
Software
Vivado HL WebPACK Edition (PDF adjunto incluye instrucciones)
www.xilinx.com/products/design-tools/vivad…
IDE de Arduino
www.arduino.cc/en/Main/Software
Paso 2: Arquitectura del sistema
El siguiente paso es comprender la arquitectura del sistema. Creamos un diagrama de caja negra y una máquina de estados finitos (mostrada arriba) para organizar la estructura de nuestro diseño antes de entrar en la logística
Diseño general
Entradas
Sensor de luz: determina la cantidad de luz en la habitación
Salidas
- Ánodos: determina qué pantallas de 7 segmentos se utilizarán
- Segmentos: muestra el temporizador
- LED: muestra las condiciones de luz nocturna de ENCENDIDO o APAGADO
Arduino
Aporte
Señal del sensor de luz: valor analógico de la cantidad de luz en la habitación
Producción
Entrada de luz (1 bit): señal que determina la condición de luz de la habitación
Basys 3
Aporte
- Entrada de luz (1 bit): señal que determina la condición de luz de la habitación
- Interruptores
- CLK
Producción
- Ánodos: determina qué pantallas de 7 segmentos se utilizarán
- Segmentos: muestra el temporizador
- LED: muestra las condiciones de luz nocturna de ENCENDIDO o APAGADO
Paso 3: hardware y código Arduino
Hardware
Para comprender el código Arduino, debemos comprender el hardware con el que interactúa el código. El circuito de nuestra placa de pruebas incluye una fotocélula, un diodo emisor de luz y varios cables y resistencias para completarlo. El circuito comienza enviando energía a la fotocélula, que luego lee la cantidad de luz que la rodea. Esta información se transfiere al pin analógico, A0, que la hace legible para la placa Basys. La placa Basys luego toma esta información, comienza a contar y envía una señal para que el LED se encienda.
Código Arduino
El propio código Arduino se comunica con la placa Basys enviándole una señal cuando la luz que rodea al dispositivo es más oscura que un umbral especificado. Esta señal activada por una habitación oscura con plomo en el LED se encenderá. A través de un experimento, descubrimos que el umbral promedio para nuestra fotocélula específica en habitaciones oscuras es de 30 a 60. Cada fotocélula tiene una cantidad diferente de sensibilidad, por lo que otras fotocélulas pueden tener diferentes umbrales. En nuestro código publicado, establecimos el umbral de 100 con fines de demostración.