Tartalomjegyzék:
- 1. lépés: Időzítő
- 2. lépés: Gomboptimalizálás
- 3. lépés: LED
- 4. lépés: Felső fájl
- 5. lépés: Kényszerfájl
- 6. lépés: A PIR mozgásérzékelő bekötése
- 7. lépés: A LED bekötése a kenyértáblán
- 8. lépés: Basys Board kapcsolatok
Videó: Mozgásérzékelt LED: 8 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:43
Háttér:
Elfelejtette valaha lekapcsolni a villanyt, mielőtt az osztályba vagy a munkába indul, vagy lefekvés előtt? Azok az órák, amikor a lámpák fel vannak kapcsolva, amikor nem használja őket, valóban növelhetik a költségeket és az energiaveszteséget. Például a solarcity.com szerint, ha a lámpákat egész héten át égve hagyjuk, egy dollárral 25 dollárral növelhetjük a villanyszámlát! CPE133 projektünkhöz olyan mozgásérzékelő lámpát tervezünk, amely segíti az embereket az otthoni energiatakarékosságban és a fények hatékony használatában.
Rendszerünk a gyakorlatban:
A gyakorlatban a lámpák csak akkor kapcsolnak be, ha egy érzékelő mozgást észlel a szobában. Ezután a lámpák meghatározott ideig, például körülbelül 30 percig égnek, majd automatikusan kikapcsolnak. De tegyük fel, hogy éppen átutazott, vagy korán el akarta hagyni a szobát, mielőtt a meghatározott idő letelt volna. Ezekben az esetekben telepítettünk egy gombot, amellyel manuálisan kapcsolhatja be vagy ki a lámpákat. Ne feledje, hogy a lámpák 30 percig égnek akkor is, ha manuálisan vagy automatikusan kapcsolják be a lámpákat (kivéve, ha a lámpákat manuálisan kapcsolják ki).
Szimuláció a fedélzeten:
Annak érdekében, hogy az időzítő működjön, megváltoztattuk az időzítőt 1 percre.
Anyagok:
- 1 Basys tábla (itt talál egyet a Digilent -től)
- 1 PIR mozgásérzékelő (itt találhat egyet az Amazon -on)
- 1 kenyérlap és készlet (javasoljuk, hogy ezt használja az Amazon -tól)
-
A fenti készletből
- 1 LED
- 3 hüvely -férfi áthidaló kábel
- 6 hüvely -férfi áthidaló kábel
1. lépés: Időzítő
Annak érdekében, hogy a LED 1 percig világítson, először létre kell hoznia egy időzítőt. A Basys 3 kártya belső frekvenciája 100 MHz, így 100 millió ciklus 1 másodperccel egyenlő. Ezt a változót használják, amely a t_cnt maximális számaként fog működni. A t_cnt 1 -gyel nő, ahogy a Basys 3 tábla befejezi a ciklust. Amint eléri a 100 milliós határt, alaphelyzetbe áll, és egy másik, „sec” változó 1 -gyel növekszik. Ez a „sec” változó az eltelt másodpercek számát jelzi, és ha ez a változó 60, akkor egy teljes perc telt el.
Másolja ki az alábbi kódot egy vhdl forrásfájlba, melynek neve Timer.
a COUNT_8B entitás
port (RESET: std_logic -ban;
CLK: std_logic -ban; T: out std_logic: = '0');
vége COUNT_8B;
az architektúrám COUNT_8B saját_száma
állandó max_count: integer: = (100000000); -jel t_cnt: std_logic_vector (7-től 0-ig): = "00000000"; jel t_cnt: egész: = (0); start process (CLK, RESET, t_cnt) változó sec: integer: = 0; start if (emelkedő szél (CLK)), majd ha (RESET = '1'), akkor t_cnt <= (0); - törölje elsif (t_cnt = max_count), akkor- max_count 100 millió, ami egyenlő 1 másodperc t_cnt <= (0); - Visszaállítja a belső órát 0 mp-re: = sec + 1; - Növeli a „lassú órát” 1-gyel, ha (sec = 60), akkor- Ha eléri a 60 másodpercet, akkor elérte a maximális időt sec: = 0; - Visszaállítja a "lassú órát" 0 T <= '1' -re; fejezze be, ha; egyébként t_cnt <= t_cnt + 1; - növeli a belső órát T <= '0'; fejezze be, ha; fejezze be, ha; folyamat befejezése; end my_count;
2. lépés: Gomboptimalizálás
Mivel a Basys tábla frekvenciája olyan magas (körülbelül 100 MHz), ha a Basys táblához rövid idő alatt megnyomja a véleményét, 100 000 alkalommal nyomja meg. Ez azt eredményezi, hogy a fény gyorsan villog a be- és kikapcsolt állapot között. Megpróbáltuk optimalizálni a gombot egy állapotdiagram létrehozásával, hogy csökkentsük a villódzást.
A d-flip-flopok minden állapotot megtartanak, majd az állapotátmeneteket a folyamat utasításban határozzuk meg.
Másolja az alábbi kódot egy Button nevű vhdl forrásfájlba.
könyvtár IEEE; használja az IEEE. STD_LOGIC_1164. ALL;
entitás gomb
Port (btn: STD_LOGIC; clk: STD_LOGIC; E: out STD_LOGIC); vége gomb;
architektúra A gomb viselkedése
type state_type is (PRESSED, NP); jel PS, NS: állapot_típus: = NP;
kezdődik
seq_proc: folyamat (NS, clk) akkor kezdődik, ha (emelkedő szél (clk)), akkor PS <= NS; fejezze be, ha; vége folyamat seq_proc;
ns_proc: folyamat (btn, PS)
a PS kezdet esete, amikor NP => if (btn = '1'), akkor NS <= PRESSED; E <= '1'; más NS <= NP; E ha (btn = '0'), akkor NS <= NP; E <= '0'; else NS <= PRESSED; E <= '0'; fejezze be, ha; vég tok; folyamat befejezése ns_proc;
vége Viselkedés;
3. lépés: LED
A LED -nek két állapota van: OFF (vagy IDLE) és ON. Mint korábban említettük, az állapotokat egy d-flip-flopban tároljuk. A fény akkor világít, ha az érzékelő mozgást észlel (S = 1), vagy ha megnyom egy gombot (E = 1). A LED automatikusan kikapcsol, ha az időzítő eléri az 1 percet (T = 1), vagy manuálisan, amikor megnyom egy gombot (E = 1).
Másolja az alábbi kódot egy LED nevű vhdl forrásfájlba.
entitás motion_sensored_light a Port (S: STD_LOGIC -ban; - sesnor; JA10 -es port/G3 E -tű: STD_LOGIC -ban; - külső gomb a kézi funkcióhoz; T középső gomb: STD_LOGIC; - amikor az időzítő eléri a maximális időt; Az időzítő LED -jéről: ki STD_LOGIC; - világos TRST: ki STD_LOGIC; - visszaállítja az időzítő clk -t: STD_LOGIC -ban); - clk a flip flophoz, amelyek az állapotok végét mozgatják_érzékelt_fény;
architektúra A motion_sensored_light is viselkedése
type state_type is (ST0, ST1); --ST0 = IDLE, ST1 = LED HIGH
jel PS, NS: állapot_típus: = ST0; - JELEN ÁLLAPOT ÉS KÖVETKEZŐ ÁLLAPOT, ST0 IDLE-ben kezdődik
kezdődik
- flip flop folyamatblokk- frissíti az állapotot az óra emelkedő szélén seq_proc: folyamat (NS, clk) kezdődik- d flip flop, amely az if (emelkedő_szél (clk)), majd PS <= NS állapotokat tartja meg fejezze be, ha; vége folyamat seq_proc;
ns_proc: folyamat (S, E, T, PS)
a PS kezdete, amikor ST0 => LED <= '0'; - kimenetek üresjáratban TRST <= '1'; ha (S = '0' VAGY E = '1') akkor - bemenetek az st0 -ról az st1 -re való átmenetre NS <= ST1; else NS LED <= '1'; - kimenetek a TRST állapothoz <= '0'; ha (E = '1' VAGY T = '1') akkor - bemenet az st1 -ről az st0 -ra való átmenetre NS <= ST0; egyébként NS <= ST1; fejezze be, ha; vég tok; folyamat befejezése ns_proc;
vége Viselkedés;
4. lépés: Felső fájl
Most az összes többi fájlunkat egybe portoljuk.
Másolja az alábbi kódot egy Top_File nevű vhdl forrásfájlba.
könyvtár IEEE; használja az IEEE. STD_LOGIC_1164. ALL;
entitás Top_File is
Port (S: STD_LOGIC -ban: = '1'; - sesnor; JA10 -es port/G3 -as btn: STD_LOGIC -ban: = '0'; - külső gomb a kézi működéshez; Középső gomb LED: ki STD_LOGIC; - fényjelzés: a STD_LOGIC -ban); - clk flip flop esetén, amely a Top_File állapotok végét tartja;
architektúra A Top_File viselkedése is
a COUNT_8B komponens az
port (RESET: std_logic: = '0'; CLK: std_logic; T: out std_logic: = '0'); végkomponens; a motion_sensored_light komponens a Port (S: STD_LOGIC -ban; - sesnor; JA10 -es/G3 -as érintkező: STD_LOGIC; - külső gomb a kézi funkcióhoz; T középső gomb: STD_LOGIC; - amikor az időzítő eléri a maximális időt; Az időzítő LED -jéről: ki STD_LOGIC; - világos TRST: ki STD_LOGIC; - visszaállítja az időzítő clk -t: STD_LOGIC -ban); - clk flip flop esetén, amely az állapotok végösszetevőjét tartja; komponens gomb Port (btn: az STD_LOGIC -ban; clk: az STD_LOGIC -ban; E: out STD_LOGIC); végkomponens; jel t_reaches_c: std_logic; - jel r_time_c: std_logic; - jelzőgomb_c: std_logic;
kezdődik
időzítő: COUNT_8B porttérkép (RESET => r_time_c, CLK => CLK, T => t_reyed_c); motion_sensor: motion_sensored_light porttérkép (S => S, E => button_c, T => t_reaches_c, LED => LED, TRST => r_time_c, clk => clk); gombvezérlő: gombport térkép (btn => btn, clk => clk, E => button_c); vége Viselkedés;
5. lépés: Kényszerfájl
Most meg kell határoznunk, hogy a be- és kimenetek hol lesznek a táblán.
Másolja az alábbi kódot egy vhdl kényszerfájlba.
## Ez a fájl egy általános.xdc fájl a Basys3 rev B táblához a projekt legfelső szintű jelneveire
## Órajel
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 #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_port}] #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 WAP [get] [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_ARD Property I 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_port}] #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]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [15]}]
## LED -ek
#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_port Property] }] #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 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 LVCMOS 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 LVC 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 U
#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_port] }] #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]}]
## Gombok
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_PIN W19 [get_ports btnL] #set_property IOSTANDARD LVCMOS33 [get_ports btnL] #set_property PACKAGE_PIN T17 [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 fejléc 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_ARD Property IAND 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 fejléc 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]}] 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 LVCport JB [7]}]
## Pmod fejléc 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]}] 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 LVCport JC [7]}]
## Pmod fejléc 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_port] #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 {JXAD #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_port_Sport] JX 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 nameN_pr3 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_LET_tulajdon [get_ports {JXADC [7]}]
## VGA csatlakozó
#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_propertySOS33 }] #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_ARDRportsOS 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] LV_SET] {1} 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 {vga} Ib [_] 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 {vgayreen] 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 P19s [get_port] Hsync] #set_property PACKAGE_PIN R19 [get_ports Vsync] #set_property IOSTANDARD LVCMOS33 [get_ports Vsync]
## USB-RS232 interfész
#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 PS2_dokumentumok]
## Quad SPI Flash
## Vegye figyelembe, hogy a CCLK_0 nem helyezhető el 7 sorozatú eszközben. Hozzáférhet a ## STARTUPE2 primitív használatával. #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 [LEVELT] }] #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]}] 3]}] #set_property PACKAGE_PIN K19 [get_ports QspiCSn] #set_property IOSTANDARD LVCMOS33 [get_ports QspiCSn]
6. lépés: A PIR mozgásérzékelő bekötése
A PIR mozgásérzékelőnek három érintkezője van: tápellátás, gnd és riasztás (lásd az első képet). Az ebben az utasításban javasolt mozgásérzékelő közvetlenül csatlakoztatható a kenyértáblához. De az általunk használt érzékelőhöz levágtuk és lecsupaszítottuk a vezetékeket, majd forrasztottuk a szabadon lévő végeket, hogy ne kopjanak el. A kenyértáblára illesszen sorba egy hüvely -női áthidaló vezetéket a tápfeszültséggel és a földelőcsapokkal, majd egy soros hüvely -férfi áthidaló vezetéket a riasztótüskével (lásd a második képet).
7. lépés: A LED bekötése a kenyértáblán
Csatlakoztassa a LED -et a kenyértáblához. Csatlakoztasson sorban egy fekete dugasz -dugó kábelt a LED rövid vezetékével. Ezután csatlakoztassa a különböző színű dugó -férfi áthidaló kábelt sorba a LED hosszú vezetékével.
8. lépés: Basys Board kapcsolatok
Csatlakoztassa a PIR mozgásérzékelő hüvelyi végeit a basys -panel 5 voltos feszültségforrásához. Ezután csatlakoztassa a férfi LED földelővezetéket az oldalsó port földeléséhez, majd a riasztóvezetéket a PIR mozgásérzékelőből, majd a LED bemeneti vezetéket (amint az a képen is látható).
Ajánlott:
DC - DC feszültség Lépés lekapcsoló mód Buck feszültségátalakító (LM2576/LM2596): 4 lépés
DC-DC feszültség Lépés lekapcsoló üzemmód Buck feszültségátalakító (LM2576/LM2596): A rendkívül hatékony bakkonverter készítése nehéz feladat, és még a tapasztalt mérnököknek is többféle kivitelre van szükségük, hogy a megfelelőt hozzák létre. egy DC-DC áramátalakító, amely csökkenti a feszültséget (miközben növeli
Akusztikus levitáció az Arduino Uno-val Lépésről lépésre (8 lépés): 8 lépés
Akusztikus lebegés az Arduino Uno-val Lépésről lépésre (8 lépés): ultrahangos hangátvivők L298N Dc női adapter tápegység egy egyenáramú tűvel Arduino UNOBreadboard és analóg portok a kód konvertálásához (C ++)
A Neopixel Ws2812 LED vagy LED STRIP vagy LED gyűrű használata Arduino -val: 4 lépés
A Neopixel Ws2812 LED vagy LED STRIP vagy LED gyűrű használata Arduino -val: Sziasztok, mivel a Neopixel led Strip nagyon népszerűek, és ws2812 led szalagnak is nevezik. Nagyon népszerűek, mert ezekben a LED szalagokban minden egyes ledet külön kezelhetünk, ami azt jelenti, hogy ha azt szeretné, hogy kevés led egy színben világítson
ESP8266 RGB LED STRIP WIFI vezérlés - NODEMCU IR távirányítóként a Wifi -n keresztül vezérelt LED szalaghoz - RGB LED STRIP okostelefon -vezérlés: 4 lépés
ESP8266 RGB LED STRIP WIFI vezérlés | NODEMCU IR távirányítóként a Wifi -n keresztül vezérelt LED szalaghoz | RGB LED STRIP okostelefon -vezérlés: Sziasztok, ebben az oktatóanyagban megtanuljuk, hogyan kell használni a nodemcu -t vagy az esp8266 -ot infravörös távirányítóként az RGB LED -szalag vezérléséhez, és a Nodemcu -t okostelefonon keresztül wifi -n keresztül kell irányítani. Tehát alapvetően okostelefonjával vezérelheti az RGB LED STRIP -et
Mozgásérzékelt e -mail értesítés DVR vagy NVR esetén: 4 lépés
Mozgásérzékelt e -mail értesítés DVR -hez vagy NVR -hez: Ebben az oktatóanyagban megmutatjuk, hogyan kell beállítani a mozgásérzékelt e -mail értesítéseket a DVR -n vagy az NVR -n. Szinte bárki, aki betör bármely épületbe, tudja, hogy az emberek CCTV -rendszerek telepítéséhez folyamodtak, hogy megvédjék a tulajdonukat