Índice:
- Etapa 1: cronômetro
- Etapa 2: Otimização do botão
- Etapa 3: LED
- Etapa 4: Arquivo principal
- Etapa 5: Arquivo de restrições
- Etapa 6: Fiação do sensor de movimento PIR
- Etapa 7: conectando o LED na placa de ensaio
- Etapa 8: Conexões da placa Basys
Vídeo: LED com sensor de movimento: 8 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:38
Fundo:
Você já se esqueceu de desligar a luz antes de sair para a aula ou para o trabalho ou antes de ir para a cama? As horas com as luzes acesas, quando você não as está usando, podem realmente aumentar o custo e a perda de energia. Por exemplo, de acordo com solarcity.com, deixar as luzes acesas a noite toda por uma semana pode adicionar $ 25 à sua conta de luz! Para o nosso projeto CPE133, projetamos uma luz com sensor de movimento para ajudar as pessoas a conservar energia em suas casas e usar suas luzes com eficiência.
Nosso sistema na prática:
Na prática, as luzes só acendem quando um sensor detecta movimento na sala. Em seguida, as luzes permanecerão acesas por um determinado período de tempo, como cerca de 30 minutos, e depois desligarão automaticamente. Mas digamos que você esteja apenas de passagem ou queira sair da sala mais cedo, antes que o tempo definido termine. Para esses casos, instalamos um botão onde você pode ligar ou desligar as luzes manualmente. Observe que as luzes permanecerão acesas por 30 minutos, mesmo quando forem ligadas manualmente ou automaticamente (a menos que as luzes sejam desligadas manualmente).
Simulação a bordo:
Para ver se o cronômetro funciona, mudamos o cronômetro para 1 minuto.
Materiais:
- 1 quadro Basys (você pode encontrar um aqui da Digilent)
- 1 sensor de movimento PIR (você pode encontrar um aqui na Amazon)
- 1 placa de ensaio e kit (sugerimos usar este da Amazon)
- Do kit acima
- 1 LED
- 3 cabos jumper fêmea para macho
- 6 cabos jumper macho para macho
Etapa 1: cronômetro
Para que o LED permaneça aceso por 1 minuto, devemos primeiro criar um temporizador. A placa Basys 3 tem uma frequência interna de 100 MHz, tornando 100 milhões de ciclos iguais a 1 segundo. Isso é então usado como uma variável que atuará como um número máximo para o “t_cnt”. O t_cnt aumenta em 1 conforme a placa Basys 3 completa um ciclo. Assim que atingir a marca de 100 milhões, ele será zerado e outra variável, “sec”, aumentará em 1. Essa variável “sec” representa o número de segundos passados e uma vez que a variável seja igual a 60, um minuto completo se passou.
Copie o código abaixo em um arquivo de origem vhdl denominado Timer.
entidade COUNT_8B é
porta (RESET: em std_logic;
CLK: em std_logic; T: out std_logic: = '0');
fim COUNT_8B;
arquitetura my_count de COUNT_8B é
max_count constante: inteiro: = (100000000); --signal t_cnt: std_logic_vector (7 até 0): = "00000000"; sinal t_cnt: inteiro: = (0); iniciar o processo (CLK, RESET, t_cnt) variável sec: inteiro: = 0; começar if (rise_edge (CLK)) then if (RESET = '1') then t_cnt <= (0); - limpar elsif (t_cnt = max_count) então - max_count é 100 milhões que é igual a 1 segundo t_cnt <= (0); - Redefine o relógio interno para 0 seg: = seg + 1; - Aumenta nosso 'relógio lento' em 1 se (seg = 60) então - Uma vez que atinge 60 segundos, então ele atingiu o tempo máximo seg: = 0; - Reinicia o "relógio lento" para 0 T <= '1'; fim se; else t_cnt <= t_cnt + 1; - aumenta o relógio interno T <= '0'; fim se; fim se; fim do processo; end my_count;
Etapa 2: Otimização do botão
Como a frequência nas placas Basys é tão alta (cerca de 100 MHz), quando você pressiona o que pensa ser um curto período de tempo na placa Basys, você pressiona 100.000 vezes. Isso faz com que a luz pisque rapidamente entre o estado ligado e desligado. Tentamos otimizar o botão criando um diagrama de estado para reduzir a cintilação.
Os d-flip-flops manterão cada estado e então especificaremos as transições de estado na instrução do processo.
Copie o código abaixo em um arquivo de origem vhdl denominado Button.
biblioteca IEEE; use IEEE. STD_LOGIC_1164. ALL;
botão de entidade é
Porta (btn: in STD_LOGIC; clk: in STD_LOGIC; E: out STD_LOGIC); botão de fim;
arquitetura O comportamento do botão é
tipo state_type é (PRESSED, NP); sinal PS, NS: tipo_estado: = NP;
começar
seq_proc: processo (NS, clk) começa se (crescendo_edge (clk)) então PS <= NS; fim se; fim do processo seq_proc;
ns_proc: processo (btn, PS)
iniciar caso PS é quando NP => if (btn = '1') then NS <= PRESSED; E <= '1'; senão NS <= NP; E se (btn = '0') então NS <= NP; E <= '0'; senão NS <= PRESSED; E <= '0'; fim se; caso final; fim do processo ns_proc;
fim Comportamental;
Etapa 3: LED
O LED tem dois estados: DESLIGADO (ou IDLE) e LIGADO. Como dito antes, os estados são armazenados em um d-flip-flop. A luz acenderá se o sensor detectar movimento (S = 1) ou quando um botão for pressionado (E = 1). O LED desligará automaticamente se o cronômetro atingir 1 minuto (T = 1) ou manualmente quando um botão for pressionado (E = 1).
Copie o código abaixo em um arquivo de origem vhdl denominado LED.
entidade motion_sensored_light é a porta (S: em STD_LOGIC; - sesnor; Porta JA10 / Pin G3 E: em STD_LOGIC; - botão externo para função manual; Botão central T: em STD_LOGIC; - quando o temporizador atinge o tempo máximo; Do LED do temporizador: out STD_LOGIC; - luz TRST: out STD_LOGIC; - zera temporizador clk: in STD_LOGIC); - clk para flip-flop que mantém os estados e motion_sensored_light;
arquitetura O comportamento de motion_sensored_light é
tipo state_type é (ST0, ST1); --ST0 = IDLE, ST1 = LED ALTO
sinal PS, NS: tipo_estado: = ST0; - ESTADO ATUAL E PRÓXIMO ESTADO, começa em ST0 IDLE
começar
- bloco de processo do flip-flop - atualiza o estado na borda ascendente do relógio seq_proc: process (NS, clk) begin - flip flop d que mantém os estados if (seed_edge (clk)) then PS <= NS; fim se; fim do processo seq_proc;
ns_proc: processo (S, E, T, PS)
iniciar caso PS é quando ST0 => LED <= '0'; - saídas para estado inativo TRST <= '1'; if (S = '0' OR E = '1') então - entradas para a transição de st0 para st1 NS <= ST1; senão NS LED <= '1'; - saídas para o estado TRST <= '0'; if (E = '1' OR T = '1') então - entradas para para fazer a transição de st1 para st0 NS <= ST0; senão NS <= ST1; fim se; caso final; fim do processo ns_proc;
fim Comportamental;
Etapa 4: Arquivo principal
Agora vamos mapear a porta de todos os nossos outros arquivos em um.
Copie o código abaixo em um arquivo de origem vhdl denominado Top_File.
biblioteca IEEE; use IEEE. STD_LOGIC_1164. ALL;
entidade Top_File é
Porta (S: em STD_LOGIC: = '1'; - sesnor; Porta JA10 / Pin G3 btn: em STD_LOGIC: = '0'; - botão externo para função manual; LED do botão central: saída STD_LOGIC; - clique leve: em STD_LOGIC); - clk para flip-flop que mantém os estados end Top_File;
arquitetura Comportamental de Top_File é
componente COUNT_8B é
porta (RESET: em std_logic: = '0'; CLK: em std_logic; T: out std_logic: = '0'); componente final; componente motion_sensored_light é a porta (S: em STD_LOGIC; - sesnor; Porta JA10 / Pin G3 E: em STD_LOGIC; - botão externo para função manual; Botão central T: em STD_LOGIC; - quando o temporizador atinge o tempo máximo; Do LED do temporizador: out STD_LOGIC; - luz TRST: out STD_LOGIC; - zera temporizador clk: in STD_LOGIC); - clk para flip-flop que mantém o componente final dos estados; o botão do componente é a porta (btn: in STD_LOGIC; clk: in STD_LOGIC; E: out STD_LOGIC); componente final; sinal t_reached_c: std_logic; - sinal r_time_c: std_logic; - sinal botão_c: std_logic;
começar
temporizador: mapa da porta COUNT_8B (RESET => r_time_c, CLK => CLK, T => t_reached_c); sensor_movimento: mapa da porta motion_sensored_light (S => S, E => botão_c, T => t_reached_c, LED => LED, TRST => r_time_c, clk => clk); button_controller: mapa da porta do botão (btn => btn, clk => clk, E => button_c); fim Comportamental;
Etapa 5: Arquivo de restrições
Agora temos que definir onde nossas entradas e saídas estarão no quadro.
Copie o código abaixo em um arquivo de restrições vhdl denominado Constraints.
## Este arquivo é um.xdc geral para a placa Basys3 rev B ## Para usá-lo em um projeto: ## - descomente as linhas correspondentes aos pinos usados ## - renomeie as portas usadas (em cada linha, após get_ports) de acordo para os nomes dos sinais de nível superior no projeto
## Sinal do relógio
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_PIN] 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_property} {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]}] #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 [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 [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_property} {] #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 [15 get_ports]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [15]}]
## LEDs
#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 [get_ports33 [get_ports33] }] #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_port 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 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 U3 [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 {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_PIN1 [get_ports {led [15]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [15]}] ## display 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 [6] }] #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 [get_ }] #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]}]
## Botões
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 btn [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]
## Pmod Header 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]}] #OSTANDARD 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]
## Pmod Header 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]}] #OSTANDARD_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 JB [7]}]
## Pmod Header 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]}] #OSTANDARD_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 JC [7]}]
## Pmod Header 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_property PACKAGE_PIN L3] #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 name {JXADC [2] = XA4_P #set_property PACKAGE_PIN N2 [get_ports {JXADC [3]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JXADC [3]}] ## Sch name = XA1_N #set_property PACKAGE_PIN K3 [# get_set_property {JXADCARD] [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]}] ## Sch name = XA3_Noperty_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 {JXADCAND33 [7]}] #set_property IOSTCAND33 [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 IOSTANDARD33 LVCMOS33 }] #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 {vgaRed [3]}] #set_property {vgaRedCOSTAR_vgaRed [2]}] #set_property PACKAGE_PIN N19 [get_ports {vgaRed_vgaRed [3]}] #set_property_vgaRedCOST [get_property_vgaRed33 IOST33 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 {vgaBlue33 {vgaBlue_property_property_property_ LVCMOS33] 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_setOS {vgaBlue] Ioperty33 [3] 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_set_property {vgaGreenARD] [2] 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 PACKAGE_PIN P19 [get_property_property33] [get_property_property33SetC] PACKAGE_PIN P19 [get_OSTARDSetCOST33] [get]OSTARDset33 HOSTARCSet [get_portset33] HOSTARCSet [get_portsset33]. Hsync] #set_property PACKAGE_PIN R19 [get_ports Vsync] #set_property IOSTANDARD LVCMOS33 [get_ports Vsync]
## Interface 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 verdadeiros [get_ports PS2Clk] #set_property PACKAGE_PIN B17 [get_ports PS2Data] #set_property IOSTANDARD LVCMOS33 [get_ports PS2Data] #set_property pullup verdadeiros [get_ports PS2Data]
## Flash Quad SPI
## Observe que CCLK_0 não pode ser colocado em dispositivos da série 7. Você pode acessá-lo usando a 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_property_QSpiDBCMOS33 [getpiDB [0]}] #set_property PACKAGE_PIN D19 [get_ports {QspiDB [1]}].] 3]}] #set_property PACKAGE_PIN K19 [get_ports QspiCSn] #set_property IOSTANDARD LVCMOS33 [get_ports QspiCSn]
Etapa 6: Fiação do sensor de movimento PIR
O sensor de movimento PIR tem três pinos: power, gnd e alarm respectivamente (veja a primeira foto). O sensor de movimento sugerido neste instrutível pode se conectar diretamente na placa de ensaio. Mas, para o sensor que usamos, tivemos que cortar e descascar os fios e depois soldar as pontas expostas para evitar que se desgastassem. Na placa de ensaio, insira um fio jumper macho para fêmea em série com os pinos de alimentação e aterramento e, em seguida, um fio jumper macho para macho em série com o pino de alarme (veja a segunda foto).
Etapa 7: conectando o LED na placa de ensaio
Conecte o LED na placa de ensaio. Insira um cabo de jumper preto macho para macho em série com o cabo curto do LED. Em seguida, conecte o cabo de jumper de cor diferente de macho para macho em série com o fio longo do LED.
Etapa 8: Conexões da placa Basys
Conecte as extremidades fêmeas do sensor de movimento PIR na fonte de tensão de 5 volts na placa basys. Em seguida, conecte o fio terra do LED macho no aterramento da porta lateral, depois o fio do alarme do sensor de movimento PIR e o fio de entrada do LED (como visto na imagem).
Recomendado:
Luz noturna LED com sensor de movimento automático DIY: 6 etapas (com fotos)
DIY Luz Noturna LED com Sensor de Movimento Automático: Olá Pessoal, sejam bem vindos a mais um instrutível que sempre vai te ajudar no seu dia a dia e agregando uma comodidade para tornar sua vida mais fácil. Isso às vezes pode ser um salvador de vidas no caso de pessoas idosas que têm dificuldade em se levantar da cama
DIY: Mini caixa de sensor montada no teto com sensor de movimento focalizável: 4 etapas
DIY: Mini caixa de sensor montada no teto com sensor de movimento focalizável: Olá. Há algum tempo, ajudei meu amigo com o conceito de casa inteligente e criei uma caixa de minissensor com um design personalizado que poderia ser montada no teto em um orifício de 40x65mm. Esta caixa ajuda a: • medir a intensidade da luz • medir a umidade
Quem está à minha porta? Projeto de sensor de movimento / sensor de alcance PIR: 5 etapas
Quem está à minha porta? Projeto Sensor de Movimento PIR / Sensor de Alcance: Nosso projeto tem como objetivo detectar movimento via PIR e sensores de distância. O código do Arduino produzirá um sinal visual e de áudio para informar ao usuário que alguém está por perto. O código MATLAB enviará um sinal de e-mail para alertar o usuário de que alguém está por perto. Este dispositivo
Faixa de LED ativada por sensor de movimento com temporizador: 6 etapas (com imagens)
Faixa de LED ativada por sensor de movimento com temporizador: Olá a todos! Estou muito feliz por escrever outro instrutível agora. Este projeto surgiu quando fui contatado por um colega instrutível-er (?!) (David @dducic) vários meses atrás pedindo ajuda para design. Então, aqui estava a especificação original: & q
Saída controlada por movimento - De uma luz com detecção de movimento: 6 etapas
Tomada controlada por movimento - a partir de uma luz com detecção de movimento: Imagine que você é um doce ou travessura indo para a casa mais assustadora do quarteirão. Depois de passar por todos os ghouls, fantasmas e cemitérios, você finalmente chega ao último caminho. Você pode ver o doce em uma tigela à sua frente! Mas de repente um gho