Cuprins:

LED senzor de mișcare: 8 pași
LED senzor de mișcare: 8 pași

Video: LED senzor de mișcare: 8 pași

Video: LED senzor de mișcare: 8 pași
Video: LED in 8 culori si senzor pentru vasul de toaleta - www.produsechina.ro 2024, Noiembrie
Anonim
Image
Image

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

LED
LED

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

Cablarea senzorului de mișcare PIR
Cablarea senzorului de mișcare PIR
Cablarea senzorului de mișcare PIR
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

Cablarea LED-ului în Breadboard
Cablarea LED-ului în Breadboard
Cablarea LED-ului în Breadboard
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ă

Conexiuni la placa de bază
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: