Cuprins:
- Pasul 1: Cronometru
- Pasul 2: Optimizarea butoanelor
- Pasul 3: LED
- Pasul 4: Fișierul de sus
- Pasul 5: Fișier de constrângeri
- Pasul 6: Cablarea senzorului de mișcare PIR
- Pasul 7: Cablarea LED-ului în Breadboard
- Pasul 8: Conexiuni la placa de bază
Video: LED senzor de mișcare: 8 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:45
Fundal:
Ați uitat vreodată să opriți o lumină înainte de a vă îndrepta spre clasă sau la serviciu sau înainte de a vă culca? Acele ore cu luminile aprinse când nu le utilizați pot însemna într-adevăr costuri și pierderi de energie. De exemplu, conform solarcity.com, lăsarea luminilor aprinse toată noaptea timp de o săptămână poate adăuga 25 USD la factura dvs. electrică! Pentru proiectul nostru CPE133, proiectăm o lumină cu senzor de mișcare pentru a ajuta oamenii să conserve energia în casele lor și să își folosească luminile în mod eficient.
Sistemul nostru în practică:
În practică, luminile se aprind numai atunci când un senzor detectează mișcarea în cameră. Apoi, luminile vor rămâne aprinse pentru o anumită perioadă de timp, cum ar fi aproximativ 30 de minute, apoi se vor stinge automat. Dar să presupunem că tocmai treceați sau ați vrut să părăsiți camera devreme înainte ca timpul stabilit să se termine. Pentru aceste cazuri, am instalat un buton în care puteți aprinde sau opri manual luminile. Rețineți că luminile vor rămâne aprinse 30 de minute chiar și atunci când luminile sunt aprinse manual sau automat (cu excepția cazului în care luminile sunt stinse manual).
Simulare la bord:
Pentru a vedea că temporizatorul funcționează, l-am schimbat pe 1 minut.
Materiale:
- 1 tablă de bază (o puteți găsi aici de la Digilent)
- 1 senzor de mișcare PIR (puteți găsi unul aici pe Amazon)
- 1 panou și kit (vă sugerăm să îl folosiți pe Amazon)
-
Din trusa de mai sus
- 1 LED
- 3 cabluri jumper de la mamă la masculină
- 6 cabluri jumper de la tată la tată
Pasul 1: Cronometru
Pentru ca LED-ul să rămână aprins timp de 1 minut, trebuie mai întâi să creăm un cronometru. Placa Basys 3 are o frecvență internă de 100 MHz, făcând astfel 100 de milioane de cicluri egale cu 1 secundă. Aceasta este apoi utilizată ca o variabilă care va acționa ca un număr maxim pentru „t_cnt”. T_cnt crește cu 1 pe măsură ce placa Basys 3 finalizează un ciclu. Odată ce atinge valoarea de 100 de milioane, se va reseta și o altă variabilă, „sec”, va crește cu 1. Această variabilă „sec” reprezintă numărul de secunde trecute și odată ce acea variabilă este egală cu 60, a trecut un minut complet.
Copiați codul de mai jos într-un fișier sursă vhdl numit Timer.
entitatea COUNT_8B este
port (RESET: în std_logic;
CLK: în std_logic; T: out std_logic: = '0');
sfârșitul COUNT_8B;
arhitectura numarul meu de COUNT_8B este
constant max_count: întreg: = (100000000); --signal t_cnt: std_logic_vector (7 downto 0): = "00000000"; semnal t_cnt: întreg: = (0); începe procesul (CLK, RESET, t_cnt) variabilă sec: întreg: = 0; începe if (rising_edge (CLK)) atunci if (RESET = '1') atunci t_cnt <= (0); - ștergeți elsif (t_cnt = max_count) apoi - max_count este de 100 de milioane, ceea ce este egal cu 1 secundă t_cnt <= (0); - Resetează ceasul intern la 0 sec: = sec + 1; - Crește „ceasul nostru lent” cu 1 dacă (sec = 60) apoi - Odată ce a atins 60 de secunde, a atins timpul maxim sec: = 0; - Resetează „ceasul lent” la 0 T <= '1'; incheie daca; altfel t_cnt <= t_cnt + 1; - mărește ceasul intern T <= '0'; incheie daca; incheie daca; sfarsitul procesului; sfârșitul contului meu;
Pasul 2: Optimizarea butoanelor
Deoarece frecvența în plăcile Basys este atât de mare (în jur de 100 MHz) atunci când apăsați pentru ceea ce credeți că este o perioadă scurtă de timp pentru placa Basys, ați apăsa de 100.000 de ori. Acest lucru face ca lumina să pâlpâie rapid între starea pornită și oprită. Am încercat să optimizăm butonul creând o diagramă de stare pentru a reduce pâlpâirea.
D-flip-flop-urile vor conține fiecare stare și apoi vom specifica tranzițiile de stare în instrucțiunea de proces.
Copiați codul de mai jos într-un fișier sursă vhdl numit Buton.
bibliotecă IEEE; utilizați IEEE. STD_LOGIC_1164. ALL;
butonul entității este
Port (btn: in STD_LOGIC; clk: in STD_LOGIC; E: out STD_LOGIC); buton final;
arhitectură Comportamentul butonului este
tipul state_type este (PRESSED, NP); semnal PS, NS: state_type: = NP;
începe
seq_proc: proces (NS, clk) începe dacă (rising_edge (clk)) atunci PS <= NS; incheie daca; încheie procesul seq_proc;
ns_proc: proces (btn, PS)
începe cazul PS când NP => if (btn = '1') atunci NS <= PRESSED; E <= '1'; altfel NS <= NP; E dacă (btn = '0') atunci NS <= NP; E <= '0'; altfel NS <= PRESAT; E <= '0'; incheie daca; caz final; încheie procesul ns_proc;
final Comportamental;
Pasul 3: LED
LED-ul are două stări: OFF (sau IDLE) și ON. După cum am spus mai devreme, statele sunt stocate într-un d-flip-flop. Lumina se va aprinde dacă senzorul detectează mișcarea (S = 1) sau când este apăsat un buton (E = 1). LED-ul se va stinge automat dacă cronometrul atinge 1 minut (T = 1) sau manual când este apăsat un buton (E = 1).
Copiați codul de mai jos într-un fișier sursă vhdl numit LED.
entitate motion_sensored_light este Port (S: în STD_LOGIC; - sesnor; Port JA10 / Pin G3 E: în STD_LOGIC; - buton extern pentru funcție manuală; Buton central T: în STD_LOGIC; - când temporizatorul atinge timpul maxim; De la LED-ul temporizatorului: out STD_LOGIC; - light TRST: out STD_LOGIC; - resetează timer clk: în STD_LOGIC); - clk pentru flip flop care țin starea end motion_sensored_light;
arhitectură Comportamentul mișcării_sensorizate_lumina este
tipul state_type este (ST0, ST1); --ST0 = IDLE, ST1 = LED HIGH
semnal PS, NS: state_type: = ST0; - STAT PREZENT ȘI STAT URMĂTOR, începe în ST0 IDLE
începe
- bloc de proces al flip flopului - actualizează starea pe marginea ascendentă a ceasului seq_proc: proces (NS, clk) începe - d flip flop care deține stări if (rising_edge (clk)) atunci PS <= NS; incheie daca; încheie procesul seq_proc;
ns_proc: proces (S, E, T, PS)
începe cazul PS când ST0 => LED <= '0'; - ieșiri pentru starea de repaus TRST <= '1'; if (S = '0' OR E = '1') atunci - intrări în tranziția de la st0 la st1 NS <= ST1; altfel NS LED <= '1'; - ieșiri pentru starea TRST <= '0'; if (E = '1' SAU T = '1') atunci - intră la trecerea de la st1 la st0 NS <= ST0; altfel NS <= ST1; incheie daca; caz final; încheie procesul ns_proc;
final Comportamental;
Pasul 4: Fișierul de sus
Acum vom transfera toate celelalte fișiere într-un singur port.
Copiați codul de mai jos într-un fișier sursă vhdl numit Top_File.
bibliotecă IEEE; utilizați IEEE. STD_LOGIC_1164. ALL;
entitatea Top_File este
Port (S: in STD_LOGIC: = '1'; - sesnor; Port JA10 / Pin G3 btn: in STD_LOGIC: = '0'; - buton extern pentru funcția manuală; LED buton central: out STD_LOGIC; - lumină clk: în STD_LOGIC); - clk pentru flip flop care dețin stările de capăt Top_File;
arhitectură Comportamentul Top_File este
componenta COUNT_8B este
port (RESET: în std_logic: = '0'; CLK: în std_logic; T: out std_logic: = '0'); componenta finală; component motion_sensored_light este Port (S: în STD_LOGIC; - sesnor; Port JA10 / Pin G3 E: în STD_LOGIC; - buton extern pentru funcția manuală; Buton central T: în STD_LOGIC; - când temporizatorul atinge timpul maxim; Din LED-ul temporizatorului: out STD_LOGIC; - light TRST: out STD_LOGIC; - resetează timer clk: în STD_LOGIC); - clk pentru flip flop care dețin starea componentă finală; butonul component este Port (btn: in STD_LOGIC; clk: in STD_LOGIC; E: out STD_LOGIC); componenta finală; semnal t_reached_c: std_logic; - semnal r_time_c: std_logic; - buton semnal_c: std_logic;
începe
cronometru: harta porturilor COUNT_8B (RESET => r_time_c, CLK => CLK, T => t_reached_c); motion_sensor: motion_sensored_light port map (S => S, E => button_c, T => t_reached_c, LED => LED, TRST => r_time_c, clk => clk); button_controller: harta portului butonului (btn => btn, clk => clk, E => button_c); final Comportamental;
Pasul 5: Fișier de constrângeri
Acum trebuie să definim unde vor fi intrările și ieșirile noastre pe tablă.
Copiați codul de mai jos într-un fișier de constrângeri vhdl numit Constraints.
## Acest fișier este un.xdc general pentru placa Basys3 rev B ## Pentru a-l utiliza într-un proiect: ## - decomentați liniile corespunzătoare pinilor folosiți ## - redenumiți porturile utilizate (în fiecare linie, după get_ports) în funcție de la numele de semnal de nivel superior din proiect
## Semnal de ceas
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]}]
## LED-uri
#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 {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 display 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]}]
##Butoane
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_PRO [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]}] #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 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]}] #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]}]
## 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]}] #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]}]
## 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_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]}]
## 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 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]}] #set 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] [get_ports Hsync] Hsync] #set_property PACKAGE_PIN R19 [get_ports Vsync] #set_property IOSTANDARD LVCMOS33 [get_ports Vsync]
## Interfață 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_property IOSTANDARD LV
## Flash SPI Quad
## Rețineți că CCLK_0 nu poate fi plasat pe 7 dispozitive din serie. O puteți accesa folosind ## STARTUPE2 primitive. #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 IOSANDARD 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 [VOS] 3]}] #set_property PACKAGE_PIN K19 [get_ports QspiCSn] #set_property IOSTANDARD LVCMOS33 [get_ports QspiCSn]
Pasul 6: Cablarea senzorului de mișcare PIR
Senzorul de mișcare PIR are trei pini: putere, gnd și respectiv alarmă (vezi prima imagine). Senzorul de mișcare sugerat în acest instructable se poate conecta direct la panou. Dar pentru senzorul pe care l-am folosit a trebuit să tăiem și să dezbrăcăm firele și apoi să lipim capetele expuse pentru a le împiedica să se destrame. Pe panou, introduceți un cablu de tip masculin la femelă în serie cu pinii de alimentare și împământare și apoi un fir de jumper la masculin în serie cu pinul de alarmă (a se vedea a doua imagine).
Pasul 7: Cablarea LED-ului în Breadboard
Conectați LED-ul la panoul de control. Introduceți un cablu jumper negru de la tată la tată în serie cu cablul scurt al LED-ului. Apoi, conectați cablul jumper diferit de la tată la tată în serie cu cablul lung al LED-ului.
Pasul 8: Conexiuni la placa de bază
Conectați capetele feminine ale senzorului de mișcare PIR la sursa de tensiune de 5 volți de pe placa de bază. Conectați apoi firul de masă cu LED-ul de masă la solul portului lateral, apoi firul de alarmă de la senzorul de mișcare PIR și apoi cablul de intrare LED (așa cum se vede în imagine).
Recomandat:
Senzor de sunet și servo: mișcare reactivă: 4 pași
Senzor de sunet și servo: mișcare reactivă: mai întâi trebuie să adunați materialele relevante pentru a pune împreună acest circuit
Senzor de mișcare portabil: 4 pași
Senzor de mișcare portabil: Bună ziua, am creat un senzor de mișcare portabil cu baterie pe care aș dori să-l împărtășesc cu dvs
DIY: Cutie mini senzor montată în tavan cu senzor de mișcare focalizabil: 4 pași
DIY: Mini cutie senzor montat pe tavan cu senzor de mișcare focalizabil: Bună ziua. Cu ceva timp în urmă, mi-am ajutat prietenul cu conceptul de casă inteligentă și am creat o cutie mini senzor cu un design personalizat care ar putea fi montat pe tavan în gaura de 40x65mm. Această casetă ajută la: • măsurarea intensității luminii • măsurarea umidității
Cine este la ușa mea? Proiect senzor de mișcare PIR / senzor de gamă: 5 pași
Cine este la ușa mea? Proiectul senzorului de mișcare PIR / Range Sensor: Proiectul nostru are ca scop detectarea mișcării prin senzori PIR și distanță. Codul Arduino va emite un semnal vizual și audio pentru a spune utilizatorului că cineva este aproape. Codul MATLAB îmi va trimite un semnal de e-mail pentru a avertiza utilizatorul că cineva este aproape. Acest dispozitiv
Benzi LED activate cu senzor de mișcare cu temporizator: 6 pași (cu imagini)
Benzi LED cu senzor de mișcare activat cu temporizator: Bună tuturor! Sunt foarte fericit că scriu încă un instructable acum. Acest proiect a apărut atunci când am fost contactat de un coleg instructiv (?!) (David @dducic) în urmă cu câteva luni, solicitând ajutor pentru proiectare