Kazalo:
- Korak: Časovnik
- 2. korak: Optimizacija gumbov
- 3. korak: LED
- 4. korak: zgornja datoteka
- 5. korak: Datoteka omejitev
- 6. korak: Priključite senzor gibanja PIR
- 7. korak: Priključite LED na ploščici
- 8. korak: Povezave Basys Board
Video: LED senzor gibanja: 8 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:07
Ozadje:
Ali ste kdaj pozabili ugasniti luč, preden se odpravite v razred ali službo ali pred spanjem? Tiste ure pri prižganih lučeh, ko jih ne uporabljate, lahko resnično povečajo stroške in izgubo energije. Na primer, glede na solarcity.com, če lučke prižgete celo noč en teden, lahko svojemu računu za elektriko dodate 25 USD! Za naš projekt CPE133 smo oblikovali svetlobo senzorja gibanja, ki ljudem pomaga prihraniti energijo v svojih domovih in učinkovito uporabljati luči.
Naš sistem v praksi:
V praksi bi se luči prižgale le, če senzor zazna gibanje v prostoru. Potem bodo luči ostale prižgane določen čas, na primer približno 30 minut, nato pa se samodejno izklopijo. Recimo, da ste ravno hodili mimo ali ste želeli zapustiti sobo zgodaj, preden je minilo določeno časovno obdobje. V teh primerih smo namestili gumb, kjer lahko ročno vklopite ali izklopite luči. Upoštevajte, da bodo luči ostale vklopljene 30 minut, tudi če se luči vklopijo ročno ali samodejno (razen če se luči izklopijo ročno).
Simulacija na krovu:
Da bi videli, da časovnik deluje, smo ga spremenili na 1 minuto.
Materiali:
- 1 Basys board (enega najdete tukaj pri Digilentu)
- 1 senzor gibanja PIR (enega najdete tukaj na Amazonu)
- 1 plošča in komplet (predlagamo uporabo te iz Amazona)
- Iz zgornjega kompleta
- 1 LED
- 3 moški moški kabli
- 6 moških moških mostičnih kablov
Korak: Časovnik
Da LED dioda ostane prižgana 1 minuto, moramo najprej ustvariti časovnik. Plošča Basys 3 ima notranjo frekvenco 100 MHz, zato je 100 milijonov ciklov enako 1 sekundi. Ta se nato uporabi kot spremenljivka, ki bo delovala kot največje število za "t_cnt". Ko se plošča Basys 3 dokonča cikel, se t_cnt poveča za 1. Ko doseže oznako 100 milijonov, se ponastavi in druga spremenljivka, "sec", se poveča za 1. Ta "sec" spremenljivka predstavlja število preteklih sekund in ko je spremenljivka enaka 60, je minila celotna minuta.
Kopirajte spodnjo kodo v izvorno datoteko vhdl z imenom Timer.
entiteta COUNT_8B je
vrata (RESET: v std_logic;
CLK: v std_logic; T: out std_logic: = '0');
konec COUNT_8B;
arhitektura my_count COUNT_8B je
konstanta max_count: celo število: = (100000000); --signal t_cnt: std_logic_vector (7 downto 0): = "00000000"; signal t_cnt: celo število: = (0); začetek procesa (CLK, RESET, t_cnt) spremenljivka sec: celo število: = 0; začni if (vzhajajoč rob (CLK)) potem if (RESET = '1') potem t_cnt <= (0); - počisti elsif (t_cnt = max_count) nato- max_count je 100 milijonov, kar je enako 1 sekundi t_cnt <= (0); - Ponastavi notranjo uro na 0 sek: = sek + 1; - poveča našo "počasno uro" za 1, če (sec = 60) potem- Ko doseže 60 sekund, potem doseže največji čas sec: = 0; - ponastavi "počasno uro" na 0 T <= '1'; konec če; drugače t_cnt <= t_cnt + 1; - poveča notranjo uro T <= '0'; konec če; konec če; zaključni postopek; končaj my_count;
2. korak: Optimizacija gumbov
Ker je frekvenca v Basysovih ploščah tako visoka (okoli 100 MHz), ko pritisnete, kar mislite, da je kratek čas do Basysove plošče, bi jo pritisnili 100.000 krat. Zaradi tega svetloba hitro utripa med vklopljenim in izklopljenim stanjem. Gumb smo poskušali optimizirati z ustvarjanjem diagrama stanja za zmanjšanje utripanja.
D-japonke bodo imele vsako stanje, nato pa bomo v stavku procesa določili prehode stanja.
Kopirajte spodnjo kodo v izvorno datoteko vhdl z imenom Button.
knjižnica IEEE; uporabite IEEE. STD_LOGIC_1164. ALL;
gumb entiteta je
Vrata (btn: v STD_LOGIC; clk: v STD_LOGIC; E: izhod STD_LOGIC); gumb za konec;
arhitektura Vedenje gumba je
tip state_type je (PRESSED, NP); signal PS, NS: stanje_tip: = NP;
začeti
seq_proc: proces (NS, clk) se začne, če (vzhajajoči_red (clk)) potem PS <= NS; konec če; končaj proces seq_proc;
ns_proc: proces (btn, PS)
začetni primer PS je, ko je NP => če (btn = '1'), potem je NS <= PRITISANO; E <= '1'; drugače NS <= NP; E, če je (btn = '0'), potem je NS <= NP; E <= '0'; else NS <= PRITISANO; E <= '0'; konec če; zaključni primer; končaj proces ns_proc;
konec vedenjskega;
3. korak: LED
LED ima dva stanja: OFF (ali IDLE) in ON. Kot smo že povedali, so stanja shranjena v d-flip-flopu. Lučka se bo vklopila, če senzor zazna gibanje (S = 1) ali ko pritisnete gumb (E = 1). LED se bo samodejno izklopil, če časovnik doseže 1 minuto (T = 1) ali ročno, ko pritisnete gumb (E = 1).
Kopirajte spodnjo kodo v izvorno datoteko vhdl z imenom LED.
entiteta motion_sensored_light je Port (S: v STD_LOGIC; - sesnor; Port JA10/Pin G3 E: v STD_LOGIC; - zunanji gumb za ročno funkcijo; Sredinski gumb T: v STD_LOGIC; - ko časovnik doseže največji čas; Od LED časovnika: out STD_LOGIC; - luč TRST: out STD_LOGIC; - ponastavi časovnik clk: v STD_LOGIC); - clk za japonke, ki zadržujejo stanja na koncu motion_sensored_light;
arhitektura Vedenjsko gibanje_senzorirane_svetlosti je
tip state_type je (ST0, ST1); --ST0 = IDLE, ST1 = LED VISOKO
signal PS, NS: stanje_tip: = ST0; - ZDRAVNO DRŽAVO IN NASLEDNJE DRŽAVO, se začne v ST0 IDLE
začeti
- procesni blok flip flopa- posodobitev stanja na naraščajočem robu ure seq_proc: proces (NS, clk) start- d flip flop, ki vsebuje stanja if (rise_edge (clk)) potem PS <= NS; konec če; končaj proces seq_proc;
ns_proc: proces (S, E, T, PS)
začetni primer PS je, ko je ST0 => LED <= '0'; - izhodi za stanje mirovanja TRST <= '1'; če (S = '0' OR E = '1') potem - vhodi za prehod iz st0 v st1 NS <= ST1; else NS LED <= '1'; - izhodi za stanje TRST <= '0'; če (E = '1' OR T = '1') potem - vhodi v za prehod iz st1 v st0 NS <= ST0; drugače NS <= ST1; konec če; zaključni primer; končaj proces ns_proc;
konec vedenjskega;
4. korak: zgornja datoteka
Zdaj bomo vse druge datoteke preslikali v eno.
Kopirajte spodnjo kodo v izvorno datoteko vhdl z imenom Top_File.
knjižnica IEEE; uporabite IEEE. STD_LOGIC_1164. ALL;
entiteta Top_File je
Vrata (S: v STD_LOGIC: = '1'; - sesnor; Vrata JA10/Pin G3 btn: v STD_LOGIC: = '0'; - zunanji gumb za ročno funkcijo; LED sredinskega gumba: ven STD_LOGIC; - lučka clk: v STD_LOGIC); - clk za flip flop, ki drži stanja na vrhu Top_File;
vedenjska arhitektura Top_File je
komponenta COUNT_8B je
vrata (RESET: v std_logic: = '0'; CLK: v std_logic; T: ven std_logic: = '0'); končna komponenta; komponenta motion_sensored_light je Port (S: v STD_LOGIC; - sesnor; Port JA10/Pin G3 E: v STD_LOGIC; - zunanji gumb za ročno funkcijo; Sredinski gumb T: v STD_LOGIC; - ko časovnik doseže največji čas; Od LED časovnika: out STD_LOGIC; - luč TRST: out STD_LOGIC; - ponastavi časovnik clk: v STD_LOGIC); - clk za flip flop, ki vsebuje komponento stanja stanja; komponentni gumb je Port (btn: v STD_LOGIC; clk: v STD_LOGIC; E: ven STD_LOGIC); končna komponenta; signal t_reached_c: std_logic; - signal r_time_c: std_logic; - signal button_c: std_logic;
začeti
časovnik: zemljevid vrat COUNT_8B (RESET => r_time_c, CLK => CLK, T => t_reached_c); senzor gibanja: zemljevid vrat za osvetlitev gibanja (S => S, E => gumb_c, T => t_dosežen_c, LED => LED, TRST => r_time_c, clk => clk); gumb_krmilnik: zemljevid vrat gumbov (btn => btn, clk => clk, E => gumb_c); konec vedenjskega;
5. korak: Datoteka omejitev
Zdaj moramo določiti, kje bodo naši vhodi in izhodi na plošči.
Kopirajte spodnjo kodo v datoteko omejitev vhdl z imenom Constraints.
## Ta datoteka je splošni.xdc za ploščo Basys3 rev B ## Za uporabo v projektu: ## - odkomentirajte vrstice, ki ustrezajo uporabljenim zatičem ## - preimenujte uporabljena vrata (v vsaki vrstici, po get_ports) v skladu do imen signalov najvišje ravni v projektu
## Signal ure
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] ## Stikala #set_property PACKAGE_PIN {17 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]}]
## 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 [get_ports {led] }] #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_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 segmentni prikaz #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 [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]}]
## Gumbi
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 PACK_PIN_PIN [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]
## Glava 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 ime = 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]
## Pmod Glava 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 ime = 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 IOSTARD 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 IOSTANDARD LVCMOS33 [get_ports IOSTANDARD LVCMOS33 [get_ports 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 ime = 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 IOSTANDARD LVCMOS33 [get_ports IOSTANDARD LVCMOS33 [get_ports IOSTANDARD LVCMOS33 JC [7]}]
## Glava 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 {JXC] #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 {JXADCARD] [4] [IXADCARD] [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]}] ## Ime Schip = XA3_N # 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 IOSTAND [get_ports {JXADC [7]}]
## VGA priključek
#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
## Vmesnik 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] #set_PORT_POSTI
## Quad SPI Flash
## Upoštevajte, da CCLK_0 ni mogoče namestiti v naprave serije 7. Do njega lahko dostopate s primitivom ## 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 [IOSANDARD] }] #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 QPOS [IOSAND] 3]}] #set_property PACKAGE_PIN K19 [get_ports QspiCSn] #set_property IOSTANDARD LVCMOS33 [get_ports QspiCSn]
6. korak: Priključite senzor gibanja PIR
Senzor gibanja PIR ima tri zatiče: napajanje, gnd in alarm (glej prvo sliko). Senzor gibanja, predlagan v tem navodilu, se lahko poveže neposredno na ploščo. Toda za senzor, ki smo ga uporabili, smo morali prerezati in odtrgati žice ter nato spajkati izpostavljene konce, da se ne pokvarijo. Na ploščico vstavite zaporedno moško in žensko mostično žico z napajalnimi in ozemljitvenimi zatiči ter nato zaporedno moško moško žico z alarmnim zatičem (glejte drugo sliko).
7. korak: Priključite LED na ploščici
Priključite LED v mizo. Vstavite črni moški moški kabel za zaporedje s kratkim kablom LED. Nato zaporedno priključite moški moški moški kabel različnih barv z dolgim vodilom LED.
8. korak: Povezave Basys Board
Priključite ženska konca senzorja gibanja PIR v 5 -voltni vir napetosti na plošči basys. Nato priključite moško ozemljitveno žico LED v ozemljitev stranskih vrat, nato alarmno žico s senzorja gibanja PIR in nato vhodno žico LED (kot je prikazano na sliki).
Priporočena:
Senzor gibanja za vodovodno pipo z arduinom in elektromagnetnim ventilom - DIY: 6 korakov
Vodna pipa senzorja gibanja z uporabo Arduina in elektromagnetnega ventila - DIY: V tem projektu vam bom pokazal, kako z uporabo elektromagnetnega ventila sestaviti pipo za senzor gibanja. Ta projekt vam lahko pomaga pretvoriti obstoječo ročno pipo za vodo v pipo, ki jo je mogoče nadzorovati na podlagi zaznavanja gibanja. Uporaba vmesnika IR senzorja
Senzor gibanja ESP-01 z globokim spanjem: 5 korakov
Senzor gibanja ESP-01 z globokim spanjem: Delal sem na izdelavi domačih senzorjev gibanja, ki ob sprožitvi pošiljajo e-poštno sporočilo. Obstaja veliko primerov navodil in drugih primerov tega. Pred kratkim sem to moral storiti z baterijskim senzorjem gibanja PIR in ESP
Senzor gibanja PIR: 5 korakov
Senzor gibanja PIR: Pasivni infrardeči senzor (PIR senzor) je elektronski senzor, ki meri infrardečo (IR) svetlobo, ki seva od predmetov v njegovem vidnem polju. Najpogosteje se uporabljajo v detektorjih gibanja na osnovi PIR. Senzorji PIR se običajno uporabljajo v
Senzor gibanja PIR: Kako uporabljati PIR z Arduino in Raspberry Pi: 5 korakov
Senzor gibanja PIR: Kako uporabljati PIR z Arduino in Raspberry Pi: To in druge neverjetne vaje lahko preberete na uradni spletni strani ElectroPeak V tej vadnici se boste naučili uporabljati senzor gibanja PIR za zaznavanje gibanja. Na koncu te vadnice se boste naučili: Kako delujejo senzorji gibanja PIR Kako uporabljati
Izhod z nadzorom gibanja - iz luči zaznavanja gibanja: 6 korakov
Izhod z nadzorom gibanja - iz svetlobe zaznavanja gibanja: Predstavljajte si, da ste prevaranti in se odpravite v najbolj strašno hišo v bloku. Ko greste mimo vseh duhov, duhov in pokopališč, končno pridete na zadnjo pot. Pred vami je sladica v posodi! A potem nenadoma gho