Sisukord:
- Samm: taimer
- 2. samm: nuppude optimeerimine
- Samm: LED
- Samm: ülemine fail
- Samm: piirangute fail
- 6. samm: PIR -liikumisanduri ühendamine
- Samm 7: LED -i ühendamine leivalaual
- 8. samm: põhiplaadi ühendused
Video: Liikumisanduriga LED: 8 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:49
Taust:
Kas unustate kunagi enne klassi või tööle minekut või enne magamaminekut tule välja lülitada? Need tunnid, kui tuled on sisse lülitatud, kui te neid ei kasuta, võivad tõesti suurendada kulusid ja energiakadu. Näiteks, vastavalt saidile solarcity.com, võib nädalaks tulede põlema jätmine nädalaks teie elektriarvele 25 dollarit lisada! Projekti CPE133 jaoks kavandame liikumisanduri valguse, mis aitab inimestel kodudes energiat säästa ja oma tulesid tõhusalt kasutada.
Meie süsteem praktikas:
Praktikas süttiksid tuled alles siis, kui andur tuvastab ruumis liikumise. Seejärel jäävad tuled kindlaks ajaks, näiteks umbes 30 minutiks, põlema ja lülituvad seejärel automaatselt välja. Aga oletame, et sa olid just läbimas või tahtsid ruumist varem lahkuda, enne kui määratud aeg läbi sai. Nendel juhtudel paigaldasime nupu, mille abil saate tuled käsitsi sisse või välja lülitada. Pange tähele, et tuled jäävad põlema 30 minutiks isegi siis, kui tuled lülitatakse sisse käsitsi või automaatselt (kui tuled ei lülitata käsitsi välja).
Simulatsioon pardal:
Et näha, et taimer töötab, muutsime taimeriks 1 minuti.
Materjalid:
- 1 Basys -plaat (selle leiate siit Digilentist)
- 1 PIR -liikumisandur (selle leiate siit Amazonist)
- 1 leivalaud ja komplekt (soovitame kasutada seda Amazonist)
-
Ülaltoodud komplektist
- 1 LED
- 3 naissoost isast kaablit
- 6 isast kuni isasesse hüppajakaablit
Samm: taimer
Selleks, et LED jääks 1 minutiks põlema, peame esmalt looma taimeri. Basys 3 plaadi sisemine sagedus on 100 MHz, seega on 100 miljonit tsüklit võrdne 1 sekundiga. Seejärel kasutatakse seda muutujana, mis toimib t_cnt maksimaalse arvuna. T_cnt suureneb 1 võrra, kui Basys 3 plaat lõpetab tsükli. Kui see jõuab 100 miljoni märgini, lähtestatakse see ja teine muutuja “sec” suureneb 1 võrra. See “sec” muutuja tähistab möödunud sekundite arvu ja kui see muutuja on võrdne 60 -ga, on möödunud terve minut.
Kopeerige allolev kood vhdl lähtefaili nimega Taimer.
olem COUNT_8B on
port (RESET: std_logic;
CLK: std_logic; T: out std_logic: = '0');
lõpp COUNT_8B;
arhitektuur minu_arv COUNT_8B on
konstant max_count: täisarv: = (100000000); --signaali t_cnt: std_logic_vector (7 kuni 0): = "00000000"; signaal t_cnt: täisarv: = (0); algus protsess (CLK, RESET, t_cnt) muutuja sec: täisarv: = 0; alusta kui (tõusev serv (CLK)), siis kui (RESET = '1'), siis t_cnt <= (0); - tühjendage elsif (t_cnt = max_count), siis- max_count on 100 miljonit, mis võrdub 1 sekundiga t_cnt <= (0); - lähtestab sisemise kella 0 sekundile: = sek + 1; - Suurendab meie "aeglast kella" 1 võrra, kui (sek = 60), siis- kui see jõuab 60 sekundini, on see saavutanud maksimaalse aja sek: = 0; - lähtestab "aeglase kella" väärtuseks 0 T <= '1'; lõpetada, kui; muidu t_cnt <= t_cnt + 1; - suurendab sisemist kella T <= '0'; lõpetada, kui; lõpetada, kui; protsessi lõpetamine; end my_count;
2. samm: nuppude optimeerimine
Kuna Basys -tahvlite sagedus on nii kõrge (umbes 100 MHz), kui vajutate Basys -tahvlile lühikest aega, siis vajutate seda 100 000 korda. See põhjustab valguse kiiret vilkumist sisse- ja väljalülitatud oleku vahel. Püüdsime nuppu optimeerida, luues väreluse vähendamiseks olekuskeemi.
D-flip-flops hoiab igat olekut ja seejärel määrame oleku üleminekud protsessi avalduses.
Kopeerige allolev kood vhdl lähtefaili nimega Button.
raamatukogu IEEE; kasutage IEEE. STD_LOGIC_1164. ALL;
oleminupp on
Port (btn: STD_LOGIC; clk: STD_LOGIC; E: out STD_LOGIC); lõpetamise nupp;
arhitektuur Nupu käitumine on
tüüp olekutüüp on (PRESSED, NP); signaal PS, NS: olekutüüp: = NP;
alustada
seq_proc: protsess (NS, clk) algab, kui (tõusev serv (clk)), siis PS <= NS; lõpetada, kui; protsessi lõpp seq_proc;
ns_proc: protsess (btn, PS)
algusjuht PS on siis, kui NP => kui (btn = '1'), siis NS <= PRESSED; E <= '1'; muidu NS <= NP; E kui (btn = '0'), siis NS <= NP; E <= '0'; else NS <= PRESSED; E <= '0'; lõpetada, kui; lõppjuhtum; protsessi lõpp ns_proc;
lõpp Käitumine;
Samm: LED
Valgusdioodil on kaks olekut: VÄLJAS (või TÜHJE) ja SEES. Nagu varem öeldud, salvestatakse olekud d-flip-flopis. Tuli süttib, kui andur tuvastab liikumise (S = 1) või kui vajutate nuppu (E = 1). LED lülitub automaatselt välja, kui taimer jõuab 1 minutini (T = 1) või käsitsi nupu vajutamisel (E = 1).
Kopeerige allolev kood vhdl -lähtefaili nimega LED.
üksuse motion_sensored_light on port (S: STD_LOGIC -s; - sesnor; port JA10/tihvt G3 E: STD_LOGIC -is; - väline nupp käsitsifunktsiooniks; kesknupp T: STD_LOGIC -s; - kui taimer jõuab maksimaalse ajani; taimeri LED -ilt: väljas STD_LOGIC; - kerge TRST: väljas STD_LOGIC; - lähtestab taimer clk: STD_LOGIC -is); - clk flip flopi jaoks, mis hoiab oleku lõppu motion_sensored_light;
arhitektuur Liikumise_andurivalguse käitumine on
tüüp olekutüüp on (ST0, ST1); --ST0 = Tühikäik, ST1 = LED HIGH
signaal PS, NS: olekutüüp: = ST0; - OLEV SEIS JA JÄRGMINE SEIS, algab ST0 TÜHJENDUSEST
alustada
- flip flopi protsessiplokk- värskendab olekut kella tõusvas servas seq_proc: protsess (NS, clk) start- d flip flop, mis hoiab olekuid if (tõusev serv (clk)), siis PS <= NS; lõpetada, kui; protsessi lõpp seq_proc;
ns_proc: protsess (S, E, T, PS)
algusjuht PS on siis, kui ST0 => LED <= '0'; - väljundid jõudeolekus TRST <= '1'; kui (S = '0' VÕI E = '1') siis - sisendid üleminekuks st0 -lt st1 -le NS <= ST1; muidu NS LED <= '1'; - väljundid olekus TRST <= '0'; kui (E = '1' VÕI T = '1'), siis - sisendid üleminekuks st1 -st0 muidu NS <= ST1; lõpetada, kui; lõppjuhtum; protsessi lõpp ns_proc;
lõpp Käitumine;
Samm: ülemine fail
Nüüd ühendame kõik meie muud failid ühte.
Kopeerige allolev kood vhdl lähtefaili nimega Top_File.
raamatukogu IEEE; kasutage IEEE. STD_LOGIC_1164. ALL;
olem Top_File on
Port (S: STD_LOGIC -s: = '1'; - sesnor; port JA10/tihvt G3 btn: STD_LOGIC -s: = '0'; - väline nupp käsitsi töötamiseks; kesknupp LED: väljas STD_LOGIC; - kerge klapp: STD_LOGIC -is); - clk flip flopile, mis hoiab oleku lõppu Top_File;
arhitektuur Top_File'i käitumine on
komponent COUNT_8B on
port (RESET: in std_logic: = '0'; CLK: in std_logic; T: out std_logic: = '0'); lõppkomponent; komponent motion_sensored_light on port (S: STD_LOGIC; - sesnor; port JA10/Pin G3 E: STD_LOGIC; - väline nupp käsitsi töötamiseks; kesknupp T: STD_LOGIC; - kui taimer jõuab maksimaalse ajani; taimeri LED -ilt: väljas STD_LOGIC; - kerge TRST: väljas STD_LOGIC; - lähtestab taimer clk: STD_LOGIC -is); - clk flip flopi jaoks, mis hoiab oleku lõppkomponenti; komponendi nupp on port (btn: STD_LOGIC; clk: STD_LOGIC; E: out STD_LOGIC); lõppkomponent; signaal t_reach_c: std_logic; - signaal r_time_c: std_logic; - signaali nupp_c: std_logic;
alustada
taimer: COUNT_8B pordikaart (RESET => r_time_c, CLK => CLK, T => t_reach_c); motion_sensor: motion_sensored_light portide kaart (S => S, E => button_c, T => t_reaches_c, LED => LED, TRST => r_time_c, clk => clk); nupu_kontroller: nupu pordikaart (btn => btn, clk => clk, E => button_c); lõpp Käitumine;
Samm: piirangute fail
Nüüd peame määratlema, kus meie sisendid ja väljundid plaadil asuvad.
Kopeerige allolev kood vhdl -piirangute faili nimega Piirangud.
## See fail on üldine.xdc Basys3 rev B tahvlile projekti tipptasemel signaalide nimedeni
## Kella signaal
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] ## Lülitid #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] #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 {sw [5]} [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] #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]}]
## LEDid
#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] }] #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 {led [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 {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 [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_port] }] #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]}]
## Nupud
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 päis 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 nimi = 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 päis 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 nimi = 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 päis 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 nimi = 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 päis 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_port] 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 = XAproperty PAKENDI_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_and_property [get_ports {JXADC [7]}]
## VGA -pistik
#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 IOSARD }] #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_ARDRP_POST 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]}] IOSET 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 [33] 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 liides
#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_detail] PS2DAP]
## Quad SPI välk
## Pange tähele, et CCLK_0 ei saa paigutada 7 seeria seadmesse. Sellele pääsete juurde primitiiviga ## 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 [VI_DOM] }] #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]}] IOS_ETARD 3]}] #set_property PACKAGE_PIN K19 [get_ports QspiCSn] #set_property IOSTANDARD LVCMOS33 [get_ports QspiCSn]
6. samm: PIR -liikumisanduri ühendamine
PIR -liikumisanduril on kolm kontakti: vastavalt toide, gnd ja alarm (vt esimest pilti). Selles juhendis soovitatud liikumisandur saab ühendada otse leivalauaga. Kuid meie kasutatava anduri jaoks pidime juhtmed lõikama ja ribadeks tõmbama ning seejärel paljastatud otsad jootma, et need ei narmenduks. Sisestage leivaplaadile toite- ja maandusnõeltega järjestikku isas -naissoost hüppajajuhe ja seejärel häire -tihvtiga jada- ja isassoost hüppajatraat (vt teist pilti).
Samm 7: LED -i ühendamine leivalaual
Ühendage LED leivaplaadiga. Sisestage LED -lühikese juhtmega järjestikku must isane -isane hüppajakaabel. Seejärel ühendage LED -i pika juhtmega järjestikku erinevat värvi isane -isane hüppajakaabel.
8. samm: põhiplaadi ühendused
Ühendage PIR -liikumisanduri naisotsad bassiplaadi 5 -voldise pingeallikaga. Seejärel ühendage isane LED -maandusjuhe külgpordi maandusse, seejärel PIR -liikumisanduri häirekaabel ja seejärel LED -sisendkaabel (nagu pildil näha).
Soovitan:
DIY automaatne liikumisanduriga voodi LED öövalgus: 6 sammu (piltidega)
Isetegemise automaatse liikumisanduriga LED -öövalgusti: Tere, poisid, tere tulemast veel ühe õpetatava juurde, mis aitab teid alati teie igapäevaelus ja lisab mugavuse teie elu lihtsustamiseks. See võib mõnikord olla elupäästja, kui vanad inimesed peavad voodist püsti tõusma
DIY: lakke paigaldatud miniandurikast fookustatava liikumisanduriga: 4 sammu
DIY: lakke paigaldatud miniandurikast fookustatava liikumisanduriga: Tere. Mõni aeg tagasi olen aidanud oma sõpra nutika kodu kontseptsiooniga ja loonud kohandatud disainiga miniandurikarbi, mille saab kinnitada lakke 40x65 mm auku. See kast aitab: • mõõta valguse intensiivsust • mõõta niiskust
Neopixel Ws2812 LED -i või LED -riba või LED -rõnga kasutamine Arduinoga: 4 sammu
Kuidas kasutada Neopixel Ws2812 LED -i või LED -riba või LED -rõngast Arduinoga: Tere poisid, kuna Neopixeli LED -riba on väga populaarsed ja seda nimetatakse ka ws2812 LED -ribaks. Need on väga populaarsed, kuna nendel LED -ribadel saame käsitleda iga LED -i eraldi, mis tähendab, et kui soovite, et vähesed LED -id helendaksid ühes värvitoonis
ESP8266 RGB LED -riba WIFI juhtimine - NODEMCU IR -kaugjuhtimispuldina LED -riba jaoks, mida juhitakse Wifi kaudu - RGB LED STRIP nutitelefoni juhtimine: 4 sammu
ESP8266 RGB LED -riba WIFI juhtimine | NODEMCU IR -kaugjuhtimispuldina LED -riba jaoks, mida juhitakse Wifi kaudu | RGB LED STRIP nutitelefoni juhtimine: Tere poisid, selles õpetuses õpime, kuidas kasutada nodemcu või esp8266 IR -kaugjuhtimispuldina, et juhtida RGB LED -riba ja Nodemcu saab juhtida nutitelefoniga WiFi kaudu. Nii et põhimõtteliselt saate oma nutitelefoniga juhtida RGB LED -riba
Liikumisanduriga aktiveeritud LED -riba koos taimeriga: 6 sammu (piltidega)
Liikumisanduriga aktiveeritud LED -riba koos taimeriga: Tere kõigile! Mul on tõesti hea meel kirjutada praegu veel üks juhend. See projekt sündis siis, kui minuga võttis ühendust mõni juhendatav mees (?!) (David @dducic) mitu kuud tagasi, küsides disainiabi. Nii et siin oli algne spetsifikatsioon: & q