Taula de continguts:
- Pas 1: temporitzador
- Pas 2: Optimització de botons
- Pas 3: LED
- Pas 4: Arxiu superior
- Pas 5: fitxer de restriccions
- Pas 6: Connexió del sensor de moviment PIR
- Pas 7: Connexió del LED a la placa de pa
- Pas 8: Connexions de la placa base
Vídeo: LED sensible al moviment: 8 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
Antecedents:
Has oblidat mai d’apagar un llum abans de sortir a classe o a la feina o abans d’anar a dormir? Les hores amb els llums encesos quan no les feu servir poden sumar costos i pèrdues d’energia. Per exemple, segons solarcity.com, deixar els llums encesos tota la nit durant una setmana pot afegir 25 dòlars a la vostra factura elèctrica. Per al nostre projecte CPE133, dissenyem una llum de sensor de moviment per ajudar les persones a conservar l'energia a casa i a utilitzar les llums de manera eficient.
El nostre sistema a la pràctica:
A la pràctica, els llums només s’encenien quan un sensor detecta moviment a l’habitació. Aleshores, els llums es mantindran engegats durant un temps determinat, com ara uns 30 minuts, i després s’apagaran automàticament. Però suposem que només passàveu o volíeu sortir de l’habitació abans d’acabar el temps establert. En aquests casos, hem instal·lat un botó on podeu encendre o apagar els llums manualment. Tingueu en compte que els llums es mantindran engegats durant 30 minuts, fins i tot quan s’encenguin manualment o automàticament (tret que els llums s’apaguin manualment).
Simulació a bord:
Per veure que el temporitzador funciona, hem canviat el temporitzador a 1 minut.
Materials:
- 1 tauler Basys (en podeu trobar un aquí de Digilent)
- 1 sensor de moviment PIR (en podeu trobar un aquí a Amazon)
- 1 tauler i kit (us recomanem que utilitzeu aquest d'Amazon)
-
Del kit anterior
- 1 LED
- 3 cables de pont femella a mascle
- 6 cables de pont masculí a masculí
Pas 1: temporitzador
Perquè el LED romangui encès durant 1 minut, primer hem de crear un temporitzador. La placa Basys 3 té una freqüència interna de 100 MHz donant així 100 milions de cicles igual a 1 segon. A continuació, s'utilitza com a variable que actua com a nombre màxim per al "t_cnt". El t_cnt augmenta 1 a mesura que el tauler Basys 3 completa un cicle. Un cop arribi als 100 milions, es restablirà i una altra variable, "seg", augmentarà en 1. Aquesta variable "sec" representa el nombre de segons passats i un cop aquesta variable és igual a 60, ha passat un minut complet.
Copieu el codi següent a un fitxer font vhdl anomenat Temporitzador.
l'entitat COUNT_8B és
port (RESET: a std_logic;
CLK: a std_logic; T: fora std_logic: = '0');
final COUNT_8B;
arquitectura meu_count de COUNT_8B és
constant max_count: enter: = (100000000); --signal t_cnt: std_logic_vector (7 downto 0): = "00000000"; senyal t_cnt: enter: = (0); comença el procés (CLK, RESET, t_cnt) variable sec: enter: = 0; començar if (rising_edge (CLK)) llavors if (RESET = '1') llavors t_cnt <= (0); - esborra elsif (t_cnt = max_count) llavors - max_count és de 100 milions, que és igual a 1 segon t_cnt <= (0); - Restableix el rellotge intern a 0 seg: = seg + 1; - Augmenta el nostre "rellotge lent" 1 si (seg = 60) i després - Un cop arriba als 60 segons, ha assolit el temps màxim de seg: = 0; - Restableix el "rellotge lent" a 0 T <= '1'; acabar si; altrament t_cnt <= t_cnt + 1; - augmenta el rellotge intern T <= '0'; acabar si; acabar si; finalitzar el procés; acabar el meu compte;
Pas 2: Optimització de botons
Com que la freqüència a les plaques Basys és tan elevada (al voltant de 100 MHz) quan premeu el que creieu que és un curt període de temps a la placa Basys, la premríeu 100.000 vegades. Això fa que la llum parpellegi ràpidament entre l'estat d'encesa i apagada. Hem intentat optimitzar el botó creant un diagrama d'estats per reduir el parpelleig.
Els d-flip-flops mantindran cada estat i, a continuació, especificarem les transicions d'estat a la declaració del procés.
Copieu el codi següent a un fitxer font vhdl anomenat Button.
biblioteca IEEE; utilitzeu IEEE. STD_LOGIC_1164. ALL;
el botó d'entitat és
Port (btn: in STD_LOGIC; clk: in STD_LOGIC; E: out STD_LOGIC); botó final;
arquitectura El comportament del botó és
tipus state_type és (PRESSED, NP); senyal PS, NS: tipus_estat: = NP;
començar
seq_proc: procés (NS, clk) comença si (rising_edge (clk)) llavors PS <= NS; acabar si; finalitzar el procés seq_proc;
ns_proc: procés (btn, PS)
començar el cas PS és quan NP => if (btn = '1') llavors NS <= PRESSED; E <= '1'; altrament NS <= NP; E if (btn = '0') llavors NS <= NP; E <= '0'; else NS <= PRESSED; E <= '0'; acabar si; cas final; finalitzar el procés ns_proc;
final Conductual;
Pas 3: LED
El LED té dos estats: OFF (o IDLE) i ON. Com s’ha dit abans, els estats s’emmagatzemen en un d-flip-flop. El llum s’encendrà si el sensor detecta moviment (S = 1) o quan es prem un botó (E = 1). El LED s’apagarà automàticament si el temporitzador arriba a 1 minut (T = 1) o manualment quan es prem un botó (E = 1).
Copieu el codi següent a un fitxer font vhdl anomenat LED.
entity motion_sensored_light és Port (S: a STD_LOGIC; - sesnor; Port JA10 / Pin G3 E: a STD_LOGIC; - botó extern per a la funció manual; Botó central T: a STD_LOGIC; - quan el temporitzador arriba al temps màxim; Des del LED del temporitzador: out STD_LOGIC; - light TRST: out STD_LOGIC; - restableix el temporitzador clk: a STD_LOGIC); - clk per xancles que contenen els estats finals motion_sensored_light;
arquitectura Comportament de motion_sensored_light és
tipus state_type és (ST0, ST1); --ST0 = IDLE, ST1 = LED ALT
senyal PS, NS: tipus_estat: = ST0; - ESTAT ACTUAL I ESTAT SEGÜENT, comença a ST0 IDLE
començar
- bloc de processos de xancletes - actualitza l'estat a la vora ascendent del rellotge seq_proc: procés (NS, clk) begin - d xanclet que manté els estats if (rising_edge (clk)) llavors PS <= NS; acabar si; finalitzar el procés seq_proc;
ns_proc: procés (S, E, T, PS)
comença el cas PS quan ST0 => LED <= '0'; - sortides per a l'estat d'inactivitat TRST <= '1'; if (S = '0' OR E = '1') llavors - entrades a la transició de st0 a st1 NS <= ST1; else NS LED <= '1'; - Sortides per a l'estat TRST <= '0'; if (E = '1' OR T = '1') llavors - entrades a la transició de st1 a st0 NS <= ST0; altrament NS <= ST1; acabar si; cas final; finalitzar el procés ns_proc;
final Conductual;
Pas 4: Arxiu superior
Ara farem un mapa de ports de tots els altres fitxers en un de sol.
Copieu el codi següent a un fitxer font vhdl anomenat Fitxer_ Top.
biblioteca IEEE; utilitzeu IEEE. STD_LOGIC_1164. ALL;
és l'entitat Fitxer_ superior
Port (S: in STD_LOGIC: = '1'; - sesnor; Port JA10 / Pin G3 btn: in STD_LOGIC: = '0'; - botó extern per a la funció manual; LED del botó central: out STD_LOGIC; - light clk: a STD_LOGIC); - clk per xancles que contenen els estats finals Top_File;
arquitectura Comportament de Top_File és
el component COUNT_8B és
port (RESET: in std_logic: = '0'; CLK: in std_logic; T: out std_logic: = '0'); component final; component motion_sensored_light és Port (S: a STD_LOGIC; - sesnor; Port JA10 / Pin G3 E: a STD_LOGIC; - botó extern per a la funció manual; Botó central T: a STD_LOGIC; - quan el temporitzador arriba al temps màxim; Des del LED del temporitzador: out STD_LOGIC; - light TRST: out STD_LOGIC; - restableix el temporitzador clk: a STD_LOGIC); - clk per xancles que contenen el component final dels estats; el botó de component és Port (btn: in STD_LOGIC; clk: in STD_LOGIC; E: out STD_LOGIC); component final; senyal t_reached_c: std_logic; - senyal r_time_c: std_logic; - senyal button_c: std_logic;
començar
temporitzador: mapa de ports COUNT_8B (RESET => r_time_c, CLK => CLK, T => t_reached_c); motion_sensor: mapa de ports motion_sensored_light (S => S, E => button_c, T => t_reached_c, LED => LED, TRST => r_time_c, clk => clk); button_controller: mapa de ports del botó (btn => btn, clk => clk, E => button_c); final Conductual;
Pas 5: fitxer de restriccions
Ara hem de definir on estaran les nostres entrades i sortides al tauler.
Copieu el codi següent a un fitxer de restriccions vhdl anomenat Restriccions.
## Aquest fitxer és un fitxer.xdc general per a la placa Basys3 rev B ## Per utilitzar-lo en un projecte: ## - descommenteu les línies corresponents als pins utilitzats ## - canvieu el nom dels ports utilitzats (a cada línia, després de get_ports) segons als noms de senyal de nivell superior del projecte
## Senyal de rellotge
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 V17 [get_ports] 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 [4]}] #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 [15]}] #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_ports {led [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 { 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 U3 [get_ports { [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_ports {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]}] ## 7 segment display #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 {seg [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_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]}]
## Botons
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 PACKAGE_Port_By [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]
## Capçalera 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 IOSTAND 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]
## Capçalera 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]}] #set_property IOSTAND 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_ports] JB [7]}]
## Capçalera 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]}] #set_property IOSTAND 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_ports] JC [7]}]
## Capçalera 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 {JXAD] #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]}] ## Sch name = XA1_N #set_property PACKAGE_PIN K3 [get_ports {JXADC_Property [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_N #set_ 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]}] #set_property IOSTANDARD [get_ports {JXADC [7]}]
## Connector 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 [1] }] #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 LVC 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]}] #set_property 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]}] 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 {vgaGreen [2]}] #set 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 P19 [get_ports Hsync] Hsync] #set_property PACKAGE_PIN R19 [get_ports Vsync] #set_property IOSTANDARD LVCMOS33 [get_ports Vsync]
## Interfície 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)
## Quad SPI Flash
## Tingueu en compte que CCLK_0 no es pot col·locar en dispositius de la sèrie 7. Podeu accedir-hi mitjançant 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_property IOSTANDARD LOST [V3] }] #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]}] #set_property IOSTAND [get_ports] 3]}] #set_property PACKAGE_PIN K19 [get_ports QspiCSn] #set_property IOSTANDARD LVCMOS33 [get_ports QspiCSn]
Pas 6: Connexió del sensor de moviment PIR
El sensor de moviment PIR té tres pins: alimentació, gnd i alarma respectivament (vegeu la primera imatge). El sensor de moviment suggerit en aquest instructiu es pot connectar directament a la taula de control. Però per al sensor que hem utilitzat hem hagut de tallar i despullar els cables i després soldar els extrems exposats per evitar que es desgastin. A la taula d’informació, inseriu un cable de pont masculí a femella en sèrie amb els pins d’alimentació i de terra i, a continuació, un cable de pont masculí a masculí en sèrie amb el passador d’alarma (vegeu la segona imatge).
Pas 7: Connexió del LED a la placa de pa
Connecteu el LED a la placa de control. Introduïu un cable de pont negre mascle a mascle en sèrie amb el cable curt del LED. A continuació, endolleu el cable de pont masculí a masculí de diferents colors en sèrie amb el cable llarg del LED.
Pas 8: Connexions de la placa base
Connecteu els extrems femenins del sensor de moviment PIR a la font de voltatge de 5 volts de la placa base. A continuació, connecteu el cable de terra LED masculí a la terra del port lateral, després el cable d'alarma del sensor de moviment PIR i, a continuació, el cable d'entrada LED (tal com es veu a la imatge).
Recomanat:
Parpelleig doble LED sensible a la llum: 13 passos
Parpelleig LED doble sensible a la llum: Hii amic, avui faré un circuit de parpelleig doble LED sensible a la llum, vol dir que els LED parpellejaran alternativament quan no caurà cap llum al LDR i els LED brillaran contínuament quan la llum estarà LDR. Comencem
Llanterna LED sensible al tacte: 15 passos (amb imatges)
Llanterna LED sensible al tacte: fa vint-i-cinc anys, el meu avi em va fabricar una llanterna soldant una bombeta als terminals flexibles d’una bateria plana de 4,5 V. Com a dispositiu, era cru i senzill, però no només va il·luminar el meu fort de coixins aquella nit. Va alimentar el meu desig de no
Sensor de freqüència cardíaca sensible a la tira LED Arduino: 5 passos
Sensor de freqüència cardíaca sensible a la tira LED Arduino: El primer que vaig fer va ser connectar el sensor de freqüència cardíaca Grove al meu Arduino mitjançant un tutorial molt fàcil de seguir a YouTube. https://www.youtube.com/watch?v=Dzq4tnJ0LjAhttps://www.kiwi-electronics.nl/grove-finger-clip
Jaqueta de seguretat de muntanya: jaqueta LED sensible al moviment: 11 passos (amb imatges)
Jaqueta de seguretat de muntanya: jaqueta LED sensible al moviment: les millores en l'electrònica lleugera i portable obren noves possibilitats per portar la tecnologia al camp i utilitzar-la per augmentar la seguretat dels que exploren. Per a aquest projecte, vaig aprofitar les meves pròpies experiències amb adv
Presa controlada pel moviment: des d’una llum de detecció de moviment: 6 passos
Presa controlada pel moviment: des d’una llum de detecció de moviment: Imagineu-vos que sou un enganyós que aneu a la casa més terrorífica de la casa. Després de passar per davant de tots els dimonis, fantasmes i cementiris, finalment arribareu al darrer camí. Podeu veure els caramels en un bol que teniu al davant! Però de sobte un gho