Tabla de contenido:

LED con sensor de movimiento: 8 pasos
LED con sensor de movimiento: 8 pasos

Video: LED con sensor de movimiento: 8 pasos

Video: LED con sensor de movimiento: 8 pasos
Video: Secuencial de leds con Arduino | 8 Secuencias, Explicacion paso a paso 2024, Mes de julio
Anonim
Image
Image

Fondo:

¿Alguna vez se olvidó de apagar una luz antes de ir a clase o al trabajo o antes de irse a la cama? Esas horas con las luces encendidas cuando no las está usando realmente pueden sumar costos y pérdida de energía. Por ejemplo, según solarcity.com, ¡dejar las luces encendidas toda la noche durante una semana puede agregar $ 25 a su factura de electricidad! Para nuestro proyecto CPE133, diseñamos una luz con sensor de movimiento para ayudar a las personas a conservar energía en sus hogares y usar sus luces de manera eficiente.

Nuestro sistema en la práctica:

En la práctica, las luces solo se encienden cuando un sensor detecta movimiento en la habitación. Luego, las luces permanecerán encendidas durante un período de tiempo determinado, como alrededor de 30 minutos, y luego se apagarán automáticamente. Pero digamos que estaba de paso o quería salir temprano de la habitación antes de que terminara la cantidad de tiempo establecida. Para esos casos, instalamos un botón donde puedes encender o apagar las luces manualmente. Tenga en cuenta que las luces permanecerán encendidas durante 30 minutos incluso cuando las luces se enciendan manual o automáticamente (a menos que las luces se apaguen manualmente).

Simulación a bordo:

Para ver que el temporizador funciona cambiamos el temporizador a 1 minuto.

Materiales:

  • 1 tablero Basys (puede encontrar uno aquí de Digilent)
  • 1 sensor de movimiento PIR (puede encontrar uno aquí en Amazon)
  • 1 tablero y kit (sugerimos usar este de Amazon)
  • Del kit de arriba
    • 1 LED
    • 3 cables de puente hembra a macho
    • 6 cables de puente macho a macho

Paso 1: temporizador

Para que el LED permanezca encendido durante 1 minuto, primero debemos crear un temporizador. La placa Basys 3 tiene una frecuencia interna de 100MHz, por lo que 100 millones de ciclos equivalen a 1 segundo. Esto luego se usa como una variable que actuará como un número máximo para el "t_cnt". El t_cnt aumenta en 1 a medida que la placa Basys 3 completa un ciclo. Una vez que alcance la marca de 100 millones, se reiniciará y otra variable, "sec", aumentará en 1. Esta variable "sec" representa el número de segundos transcurridos y una vez que esa variable es igual a 60, ha pasado un minuto completo.

Copie el código siguiente en un archivo fuente vhdl llamado Timer.

la entidad COUNT_8B es

puerto (RESET: en std_logic;

CLK: en std_logic; T: out std_logic: = '0');

finaliza COUNT_8B;

arquitectura my_count de COUNT_8B es

conteo_máx constante: entero: = (100000000); --señal t_cnt: std_logic_vector (7 downto 0): = "00000000"; señal t_cnt: integer: = (0); iniciar proceso (CLK, RESET, t_cnt) variable sec: integer: = 0; begin if (rising_edge (CLK)) then if (RESET = '1') then t_cnt <= (0); - borre elsif (t_cnt = max_count) luego - max_count es 100 millones, que es igual a 1 segundo t_cnt <= (0); - Restablece el reloj interno a 0 seg: = seg + 1; - Aumenta nuestro 'reloj lento' en 1 si (seg = 60) entonces - Una vez que llega a 60 segundos, entonces ha alcanzado el tiempo máximo seg: = 0; - Restablece el "reloj lento" a 0 T <= '1'; terminara si; si no t_cnt <= t_cnt + 1; - aumenta el reloj interno T <= '0'; terminara si; terminara si; proceso finalizado; end my_count;

Paso 2: Optimización de botones

DIRIGIÓ
DIRIGIÓ

Dado que la frecuencia en las placas Basys es tan alta (alrededor de 100 MHz) cuando presiona durante lo que cree que es un corto período de tiempo en la placa Basys, lo estaría presionando 100, 000 veces. Esto hace que la luz parpadee rápidamente entre el estado encendido y apagado. Intentamos optimizar el botón creando un diagrama de estado para reducir el parpadeo.

Los d-flip-flops mantendrán cada estado y luego especificaremos las transiciones de estado en la declaración del proceso.

Copie el código siguiente en un archivo fuente vhdl llamado Button.

biblioteca IEEE; use IEEE. STD_LOGIC_1164. ALL;

el botón de entidad es

Puerto (btn: en STD_LOGIC; clk: en STD_LOGIC; E: fuera de STD_LOGIC); botón de finalización;

arquitectura El comportamiento del botón es

type state_type es (PRESSED, NP); señal PS, NS: state_type: = NP;

empezar

seq_proc: proceso (NS, clk) comienza si (aumento_edge (clk)) luego PS <= NS; terminara si; finalizar proceso seq_proc;

ns_proc: proceso (btn, PS)

comenzar el caso PS es cuando NP => if (btn = '1') then NS <= PRESSED; E <= '1'; si no NS <= NP; E si (btn = '0') entonces NS <= NP; E <= '0'; si no NS <= PRESIONADO; E <= '0'; terminara si; caso final; finalizar el proceso ns_proc;

end Behavioral;

Paso 3: LED

El LED tiene dos estados: APAGADO (o INACTIVO) y ENCENDIDO. Como se dijo antes, los estados se almacenan en un d-flip-flop. La luz se encenderá si el sensor detecta movimiento (S = 1) o cuando se presiona un botón (E = 1). El LED se apagará automáticamente si el temporizador llega a 1 minuto (T = 1) o manualmente cuando se presiona un botón (E = 1).

Copie el código siguiente en un archivo fuente vhdl llamado LED.

entidad motion_sensored_light es Puerto (S: en STD_LOGIC; - sesnor; Puerto JA10 / Pin G3 E: en STD_LOGIC; - botón externo para función manual; Botón central T: en STD_LOGIC; - cuando el temporizador alcanza el tiempo máximo; Desde el LED del temporizador: out STD_LOGIC; - luz TRST: out STD_LOGIC; - reinicia el temporizador clk: en STD_LOGIC); - clk para flip flop que contiene los estados end motion_sensored_light;

arquitectura El comportamiento de motion_sensored_light es

tipo state_type es (ST0, ST1); --ST0 = IDLE, ST1 = LED ALTO

señal PS, NS: state_type: = ST0; - ESTADO ACTUAL Y ESTADO SIGUIENTE, comienza en ST0 IDLE

empezar

- bloque de proceso del flip flop - actualiza el estado en el flanco ascendente del reloj. terminara si; finalizar proceso seq_proc;

ns_proc: proceso (S, E, T, PS)

caso de inicio PS es cuando ST0 => LED <= '0'; - salidas para estado inactivo TRST <= '1'; si (S = '0' OR E = '1') entonces - entradas para la transición de st0 a st1 NS <= ST1; si no NS LED <= '1'; - salidas para estado TRST <= '0'; si (E = '1' OR T = '1') entonces - entradas a para transición de st1 a st0 NS <= ST0; si no NS <= ST1; terminara si; caso final; finalizar el proceso ns_proc;

end Behavioral;

Paso 4: Archivo superior

Ahora vamos a hacer un mapa de puertos de todos nuestros otros archivos en uno.

Copie el código siguiente en un archivo fuente vhdl llamado Top_File.

biblioteca IEEE; use IEEE. STD_LOGIC_1164. ALL;

entidad Top_File es

Puerto (S: en STD_LOGIC: = '1'; - sesnor; Puerto JA10 / Pin G3 btn: en STD_LOGIC: = '0'; - botón externo para función manual; Botón central LED: fuera STD_LOGIC; - luz clk: en STD_LOGIC); - clk para flip flop que contiene los estados end Top_File;

arquitectura El comportamiento de Top_File es

el componente COUNT_8B es

puerto (RESET: en std_logic: = '0'; CLK: en std_logic; T: fuera std_logic: = '0'); componente final; componente motion_sensored_light es Puerto (S: en STD_LOGIC; - sesnor; Puerto JA10 / Pin G3 E: en STD_LOGIC; - botón externo para función manual; Botón central T: en STD_LOGIC; - cuando el temporizador alcanza el tiempo máximo; Desde el LED del temporizador: out STD_LOGIC; - luz TRST: out STD_LOGIC; - reinicia el temporizador clk: en STD_LOGIC); - clk para flip flop que contiene el componente de estado final; el botón del componente es Puerto (btn: en STD_LOGIC; clk: en STD_LOGIC; E: fuera de STD_LOGIC); componente final; señal t_reached_c: std_logic; - señal r_time_c: std_logic; - señal button_c: std_logic;

empezar

temporizador: COUNT_8B mapa de puertos (RESET => r_time_c, CLK => CLK, T => t_reached_c); sensor_movimiento: mapa de puerto de luz_sensored_movimiento (S => S, E => button_c, T => t_reached_c, LED => LED, TRST => r_time_c, clk => clk); button_controller: mapa del puerto del botón (btn => btn, clk => clk, E => button_c); end Behavioral;

Paso 5: archivo de restricciones

Ahora tenemos que definir dónde estarán nuestras entradas y salidas en el tablero.

Copie el código siguiente en un archivo de restricciones vhdl denominado Restricciones.

## Este archivo es un.xdc general para la placa Basys3 rev B ## Para usarlo en un proyecto: ## - descomenta las líneas correspondientes a los pines usados ## - cambia el nombre de los puertos usados (en cada línea, después de get_ports) según a los nombres de las señales de nivel superior en el proyecto

## Señal de reloj

set_property PACKAGE_PIN W5 [get_ports clk] set_property IOSTANDARD LVCMOS33 [get_ports clk] create_clock -add -name sys_clk_pin -period 10.00 -waveform {0 5} [get_ports clk] ## Switches #set_property PACKAGE] get_ }IN # V17 set_property IOSTANDARD LVCMOS33 [get_ports {sw [0]}] #set_property PACKAGE_PIN V16 [get_ports {sw [1]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [1]}] #set_property PACKAGE_PIN W16 [get_ports {sw [2] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [2]}] #set_property PACKAGE_PIN W17 [get_ports {sw [3]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [3]}] #set_property PACKAGE_PIN W15 [get_ports {sw]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [4]}] #set_property PACKAGE_PIN V15 [get_ports {sw [5]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [5]}] #set_property PACKAGE_PIN W14 [get_ports [6]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [6]}] #set_property PACKAGE_PIN W13 [get_ports {sw [7]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [7]}] #set_property PACKAGE_PIN V2 [get_ports {sw [8]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [8]}] #set_property PACKAGE_PIN T3 [get_ports {sw [9]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [9]}] #set_property PACKAGE_PIN T2 [get_ports {sw [10]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [10]}] #set_property PACKAGE_PIN R3 [get_ports {sw [11]}] # set_property IOSTANDARD LVCMOS33 [get_ports {sw [11]}] #set_property PACKAGE_PIN W2 [get_ports {sw [12]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [12]}] #set_property PACKAGE_PIN U1 [get_ports {sw [13]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [13]}] #set_property PACKAGE_PIN T1 [get_ports {sw [14]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [14]}] #set_property PACKAGE_PIN R2 [get_ports {sw [sw]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [15]}]

## LED

#set_property PACKAGE_PIN U16 [get_ports {led [0]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [0]}] #set_property PACKAGE_PIN E19 [get_ports {led [1]}] #set_property IOSTANDARD LVCMOS33 1] }] #set_property PACKAGE_PIN U19 [get_ports {led [2]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [2]}] #set_property PACKAGE_PIN V19 [get_ports {led [3]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led 3]}] #set_property PACKAGE_PIN W18 [get_ports {led [4]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [4]}] #set_property PACKAGE_PIN U15 [get_ports {led [5]}] #set_property IOSTANDARD LVCMOS33 [get_ports led [5]}] #set_property PACKAGE_PIN U14 [get_ports {led [6]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [6]}] #set_property PACKAGE_PIN V14 [get_ports {led [7]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [7]}] #set_property PACKAGE_PIN V13 [get_ports {led [8]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [8]}] #set_property PACKAGE_PIN V3 [get_ports {led [9]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [9]}] #set_property PACKAGE_PIN W3 [get_ports {led [10]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [10]}] #set_property PACKAGE_PIN {led [11]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [11]}] #set_property PACKAGE_PIN P3 [get_ports {led [12]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [12]}] #set_property PACKAGE_PIN N3 [get_property PACKAGE_PIN N3 {led [13]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [13]}] #set_property PACKAGE_PIN P1 [get_ports {led [14]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [14]}] #set_property PACKAGE_PIN L1 [get_ports {led [15]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [15]}] ## Pantalla de 7 segmentos #set_property PACKAGE_PIN W7 [get_ports {seg [0]}] #set_property IOSTANDARD LVCMOS33 [get_ports {seg [0]}] #set_property PACKAGE_PIN W6 [get_ports {seg [1]}] #set_property IOSTANDARD LVCMOS33 [get_ports {seg [1]}] #set_property PACKAGE_PIN U8 [get_ports {seg [2]}] #set_property IOSTA NDARD LVCMOS33 [get_ports {seg [2]}] #set_property PACKAGE_PIN V8 [get_ports {seg [3]}] #set_property IOSTANDARD LVCMOS33 [get_ports {seg [3]}] #set_property PACKAGE_PIN U5 [get_ports {seg [4]}] #set_property IOSTANDARD LVCMOS33 [get_ports {seg [4]}] #set_property PACKAGE_PIN V5 [get_ports {seg [5]}] #set_property IOSTANDARD LVCMOS33 [get_ports {seg [5]}] #set_property PACKAGE_PIN U7 [get_ports] }] #set_property IOSTANDARD LVCMOS33 [get_ports {seg [6]}]

#set_property PACKAGE_PIN V7 [get_ports dp]

#set_property IOSTANDARD LVCMOS33 [get_ports dp]

#set_property PACKAGE_PIN U2 [get_ports {an [0]}]

#set_property IOSTANDARD LVCMOS33 [get_ports {an [0]}] #set_property PACKAGE_PIN U4 [get_ports {an [1]}] #set_property IOSTANDARD LVCMOS33 [get_ports {an [1]}] #set_property PACKAGE_PIN V4 [2 get_ports {an [2] }] #set_property IOSTANDARD LVCMOS33 [get_ports {an [2]}] #set_property PACKAGE_PIN W4 [get_ports {an [3]}] #set_property IOSTANDARD LVCMOS33 [get_ports {an [3]}]

##Botones

set_property PACKAGE_PIN U18 [get_ports btn] set_property IOSTANDARD LVCMOS33 [get_ports btn] #set_property PACKAGE_PIN T18 [get_ports btnU] #set_property IOSTANDARD LVCMOS33 [get_ports btnU] #set_property_property_property_property LVCMOS33 [get_ports btnU] #set_property_property PACK_property LVCMOS33 [get_ports btnR] #set_property IOSTANDARD LVCMOS33 [get_ports btnR] #set_property PACKAGE_PIN U17 [get_ports btnD] #set_property IOSTANDARD LVCMOS33 [get_ports btnD]

## Encabezado Pmod JA

## Sch name = JA1 #set_property PACKAGE_PIN J1 [get_ports {JA [0]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JA [0]}] ## Sch name = JA2 #set_property PACKAGE_PIN L2 [get_ports {JA [1]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JA [1]}] ## Sch name = JA3 #set_property PACKAGE_PIN J2 [get_ports {JA [2]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JA [2]}] ## Sch name = JA4 #set_property PACKAGE_PIN G2 [get_ports {JA [3]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JA [3]}] ## Sch name = JA7 #set_property PACKAGE_PIN H1 [get_ports {JA [4]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JA [4]}] ## Sch name = JA8 set_property PACKAGE_PIN K2 [get_ports LED] set_property IOSTANDARD LVCMOS33 [get_ports LED] ## Sch name = JA9 #set_property PACKAGE_PIN H2 [get_ports {JA [6]}] # set_property IOSTANDARD LVCMOS33 [get_ports {JA [6]}] ## Sch name = JA10 set_property PACKAGE_PIN G3 [get_ports S] set_property IOSTANDARD LVCMOS33 [get_ports S]

## Encabezado Pmod JB

## Sch name = JB1 #set_property PACKAGE_PIN A14 [get_ports {JB [0]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JB [0]}] ## Sch name = JB2 #set_property PACKAGE_PIN A16 [get_ports {JB [1]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JB [1]}] ## Sch name = JB3 #set_property PACKAGE_PIN B15 [get_ports {JB [2]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JB [2]}] ## Sch name = JB4 #set_property PACKAGE_PIN B16 [get_ports {JB [3]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JB [3]}] ## Sch name = JB7 #set_property PACKAGE_PIN A15 [get_ports {JB [4]}] #setANDARD_property LVCMOS33 [get_ports {JB [4]}] ## Sch name = JB8 #set_property PACKAGE_PIN A17 [get_ports {JB [5]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JB [5]}] ## Sch name = JB9 #set_property PACKAGE_PIN C15 [get_ports {JB [6]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JB [6]}] ## Sch name = JB10 #set_property PACKAGE_PIN C16 [get_ports {JB [7]}] #set_property IOSTANDARD LVCMOS33 [get_property IOSTANDARD LVCMOS33 JB [7]}]

## Encabezado Pmod JC

## Sch name = JC1 #set_property PACKAGE_PIN K17 [get_ports {JC [0]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JC [0]}] ## Sch name = JC2 #set_property PACKAGE_PIN M18 [get_ports {JC [1]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JC [1]}] ## Sch name = JC3 #set_property PACKAGE_PIN N17 [get_ports {JC [2]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JC [2]}] ## Sch name = JC4 #set_property PACKAGE_PIN P18 [get_ports {JC [3]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JC [3]}] ## Sch name = JC7 #set_property PACKAGE_PIN L17 [get_ports {JC [4]}] #setANDARD_property LVCMOS33 [get_ports {JC [4]}] ## Sch name = JC8 #set_property PACKAGE_PIN M19 [get_ports {JC [5]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JC [5]}] ## Sch name = JC9 #set_property PACKAGE_PIN P17 [get_ports {JC [6]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JC [6]}] ## Sch name = JC10 #set_property PACKAGE_PIN R18 [get_ports {JC [7]}] #set_property IOSTANDARD LVCMOS33 [get_property IOSTANDARD LVCMOS33 JC [7]}]

## Encabezado Pmod JXADC

## Sch name = XA1_P #set_property PACKAGE_PIN J3 [get_ports {JXADC [0]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JXADC [0]}] ## Sch name = XA2_P #set_property PACKAGE_PIN L3 [get_ports] #set_property IOSTANDARD LVCMOS33 [get_ports {JXADC [1]}] ## Sch name = XA3_P #set_property PACKAGE_PIN M2 [get_ports {JXADC [2]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JXADC [2]}] ## = XA4_P #set_property PACKAGE_PIN N2 [get_ports {JXADC [3]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JXADC [3]}] ## Nombre de Sch = XA1_N #set_property PACKAGE_PIN K3 [get_ports {JXADOST] [4] LVCMOS33 [get_ports {JXADC [4]}] ## Sch name = XA2_N #set_property PACKAGE_PIN M3 [get_ports {JXADC [5]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JXADC [5]}] ##_N Sch name = XA3 #set_property PACKAGE_PIN M1 [get_ports {JXADC [6]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JXADC [6]}] ## Sch name = XA4_N #set_property PACKAGE_PIN N1 [get_ports {JXADC [7]}] #setARD_property LVCMOS IOST [get_ports {JXADC [7]}]

## Conector VGA

#set_property PACKAGE_PIN G19 [get_ports {vgaRed [0]}] #set_property IOSTANDARD LVCMOS33 [get_ports {vgaRed [0]}] #set_property PACKAGE_PIN H19 [get_ports {vgaRed [1]}] #set_property IOSTANDARD_LVCMOS }] #set_property PACKAGE_PIN J19 [get_ports {vgaRed [2]}] #set_property IOSTANDARD LVCMOS33 [get_ports {vgaRed [2]}] #set_property PACKAGE_PIN N19 [get_ports {vgaRed [3]}] #set_property IOSTANDARD_CMOS 3]}] #set_property PACKAGE_PIN N18 [get_ports {vgaBlue [0]}] #set_property IOSTANDARD LVCMOS33 [get_ports {vgaBlue [0]}] #set_property PACKAGE_PIN L18 [get_ports {vgaBlue [1]}] #setANDARD_ LVCMOS IOST vgaBlue [1]}] #set_property PACKAGE_PIN K18 [get_ports {vgaBlue [2]}] #set_property IOSTANDARD LVCMOS33 [get_ports {vgaBlue [2]}] #set_property PACKAGE_PIN J18 [get_ports {vgaBlue [3]}] IOSTAND_property get_ports {vgaBlue [3]}] #set_property PACKAGE_PIN J17 [get_ports {vgaGreen [0]}] #set_property IOSTANDARD LVCMOS33 [get_p orts {vgaGreen [0]}] #set_property PACKAGE_PIN H17 [get_ports {vgaGreen [1]}] #set_property IOSTANDARD LVCMOS33 [get_ports {vgaGreen [1]}] #set_property PACKAGE_PIN G17 [get_ports {vgaGreenANDARD_property] LVCMOS33 [get_ports {vgaGreen [2]}] #set_property PACKAGE_PIN D17 [get_ports {vgaGreen [3]}] #set_property IOSTANDARD LVCMOS33 [get_ports {vgaGreen [3]}] #set_property PACKAGE_PIN P19CM [get_OSTAND get_property Hsync] #set_property PACKAGE_PIN R19 [get_ports Vsync] #set_property IOSTANDARD LVCMOS33 [get_ports Vsync]

## Interfaz USB-RS232

#set_property PACKAGE_PIN B18 [get_ports RsRx] #set_property IOSTANDARD LVCMOS33 [get_ports RsRx] #set_property PACKAGE_PIN A18 [get_ports RsTx] #set_property IOSTANDARD LVCMOS33 [get_ports RsTx]

## USB HID (PS / 2)

#set_property PACKAGE_PIN C17 [get_ports PS2Clk] #set_property IOSTANDARD LVCMOS33 [get_ports PS2Clk] #set_property PULLUP true [get_ports PS2Clk] #set_property PACKAGE_PIN B17 [get_ports PS2Data] #setANDARD_property_datos_de_Ps2_property [get_ports PS2Data] #setANDARD_property_LVCMOS_Daperty PS3.

## Flash cuádruple SPI

## Tenga en cuenta que CCLK_0 no se puede colocar en dispositivos de la serie 7. Puede acceder a él usando la primitiva ## STARTUPE2. #set_property PACKAGE_PIN D18 [get_ports {QspiDB [0]}] #set_property IOSTANDARD LVCMOS33 [get_ports {QspiDB [0]}] #set_property PACKAGE_PIN D19 [get_ports {QspiDB [1]}] #set_PROPIEDAD_LVCMOS 1 IOST }] #set_property PACKAGE_PIN G18 [get_ports {QspiDB [2]}] #set_property IOSTANDARD LVCMOS33 [get_ports {QspiDB [2]}] #set_property PACKAGE_PIN F18 [get_ports {QspiDB [3]}] #setpiARD_Bperty IOS 3]}] #set_property PACKAGE_PIN K19 [get_ports QspiCSn] #set_property IOSTANDARD LVCMOS33 [get_ports QspiCSn]

Paso 6: cableado del sensor de movimiento PIR

Cableado del sensor de movimiento PIR
Cableado del sensor de movimiento PIR
Cableado del sensor de movimiento PIR
Cableado del sensor de movimiento PIR

El sensor de movimiento PIR tiene tres pines: alimentación, tierra y alarma respectivamente (vea la primera imagen). El sensor de movimiento sugerido en este instructivo se puede conectar directamente a la placa de pruebas. Pero para el sensor que usamos, tuvimos que cortar y pelar los cables y luego soldar los extremos expuestos para evitar que se deshilachen. En la placa de pruebas, inserte un cable de puente macho a hembra en serie con los pines de alimentación y tierra y luego un cable de puente macho a macho en serie con el pin de alarma (vea la segunda imagen).

Paso 7: cableado del LED en la placa de pruebas

Cableado del LED en la placa de pruebas
Cableado del LED en la placa de pruebas
Cableado del LED en la placa de pruebas
Cableado del LED en la placa de pruebas

Conecte el LED a la placa de pruebas. Inserte un cable de puente negro macho a macho en serie con el cable corto del LED. Luego conecte un cable de puente macho a macho de diferentes colores en serie con el cable largo del LED.

Paso 8: Conexiones de la placa Basys

Conexiones de la placa Basys
Conexiones de la placa Basys

Conecte los extremos hembra del sensor de movimiento PIR en la fuente de voltaje de 5 voltios en la placa basys. Luego, conecte el cable de tierra del LED macho a la tierra del puerto lateral, luego el cable de alarma del sensor de movimiento PIR y luego el cable de entrada del LED (como se ve en la imagen).

Recomendado: