Spisu treści:

Dioda LED z czujnikiem ruchu: 8 kroków
Dioda LED z czujnikiem ruchu: 8 kroków

Wideo: Dioda LED z czujnikiem ruchu: 8 kroków

Wideo: Dioda LED z czujnikiem ruchu: 8 kroków
Wideo: Sposób podłączenia i zasada działania czujnika ruchu PIR 2024, Listopad
Anonim
Image
Image

Tło:

Czy zdarza Ci się zapomnieć o zgaszeniu światła przed pójściem do klasy lub pracy albo przed pójściem spać? Te godziny z włączonymi światłami, kiedy ich nie używasz, mogą naprawdę zwiększyć koszty i utratę energii. Na przykład, zgodnie z solarcity.com, pozostawienie świateł włączonych przez całą noc przez tydzień może dodać 25 USD do rachunku za prąd! Na potrzeby naszego projektu CPE133 projektujemy światło z czujnikiem ruchu, aby pomóc ludziom oszczędzać energię w ich domach i efektywnie korzystać ze światła.

Nasz system w praktyce:

W praktyce światła włączały się tylko wtedy, gdy czujnik wykryje ruch w pomieszczeniu. Następnie światła pozostaną włączone przez określony czas, np. około 30 minut, a następnie wyłączą się automatycznie. Załóżmy jednak, że po prostu przechodziłeś lub chciałeś wcześniej wyjść z pokoju, zanim upłynie wyznaczony czas. W takich przypadkach zainstalowaliśmy przycisk, za pomocą którego można ręcznie włączać i wyłączać światła. Pamiętaj, że światła pozostaną włączone przez 30 minut, nawet jeśli są włączane ręcznie lub automatycznie (chyba że są wyłączane ręcznie).

Symulacja na pokładzie:

Aby sprawdzić, czy timer działa, zmieniliśmy timer na 1 minutę.

Materiały:

  • 1 tablica Basys (znajdziesz ją tutaj od Digilent)
  • 1 czujnik ruchu PIR (możesz go znaleźć tutaj na Amazon)
  • 1 płytka stykowa i zestaw (sugerujemy użycie tego z Amazon)
  • Z powyższego zestawu

    • 1 dioda LED
    • 3 kable połączeniowe żeńskie na męskie
    • 6 kabli połączeniowych męskich na męskie

Krok 1: Zegar

Aby dioda LED pozostała włączona przez 1 minutę, musimy najpierw stworzyć timer. Płyta Basys 3 ma częstotliwość wewnętrzną 100 MHz, dzięki czemu 100 milionów cykli odpowiada 1 sekundzie. Jest to następnie używane jako zmienna, która będzie działać jako maksymalna liczba dla „t_cnt”. t_cnt wzrasta o 1, gdy płyta Basys 3 kończy cykl. Gdy osiągnie znak 100 milionów, zostanie zresetowany, a inna zmienna „sek” wzrośnie o 1. Ta zmienna „sek” reprezentuje liczbę przeszłych sekund, a gdy ta zmienna będzie równa 60, minęła pełna minuta.

Skopiuj poniższy kod do pliku źródłowego vhdl o nazwie Timer.

podmiot COUNT_8B to

port (RESET: w std_logic;

CLK: w std_logic; T: out std_logic:= '0');

koniec COUNT_8B;

architektura my_count z COUNT_8B to

stała max_count: integer:= (100000000); --signal t_cnt: std_logic_vector(7 do 0):= "00000000"; sygnał t_cnt: liczba całkowita:= (0); rozpoczęcie procesu (CLK, RESET, t_cnt) zmienna sec: integer:= 0; rozpocznij if (rising_edge(CLK)) then if (RESET = '1') then t_cnt <= (0); -- clear elsif (t_cnt = max_count) then -- max_count to 100 milionów, co jest równe 1 sekundzie t_cnt <= (0); -- Resetuje zegar wewnętrzny do 0 s:= s + 1; -- Zwiększa nasz 'slow clock' o 1 if (sec = 60) then -- Gdy osiągnie 60 sekund, to osiągnął maksymalny czas sec:= 0; -- Resetuje "powolny zegar" do 0 T <= '1'; koniec jeśli; w przeciwnym razie t_cnt <= t_cnt + 1; -- zwiększa wewnętrzny zegar T <= '0'; koniec jeśli; koniec jeśli; koniec procesu; koniec my_count;

Krok 2: Optymalizacja przycisków

PROWADZONY
PROWADZONY

Ponieważ częstotliwość w płytach Basys jest tak wysoka (około 100 MHz), kiedy naciskasz na to, co uważasz za krótki czas na płycie Basys, naciskasz ją 100 000 razy. Powoduje to szybkie migotanie światła między stanem włączenia i wyłączenia. Próbowaliśmy zoptymalizować przycisk, tworząc diagram stanu, aby zmniejszyć migotanie.

D-flip-flops utrzyma każdy stan, a następnie określimy przejścia stanów w instrukcji procesu.

Skopiuj poniższy kod do pliku źródłowego vhdl o nazwie Button.

biblioteka IEEE;użyj IEEE. STD_LOGIC_1164. ALL;

przycisk podmiotu to

Port (btn: w STD_LOGIC; clk: w STD_LOGIC; E: w STD_LOGIC); przycisk zakończenia;

architektura Zachowanie przycisku to

typ state_type jest (NACIŚNIĘTY, NP); sygnał PS, NS: state_type:= NP;

rozpocząć

seq_proc: process(NS, clk) begin if(rising_edge(clk)) then PS <= NS; koniec jeśli; koniec procesu seq_proc;

ns_proc: proces(btn, PS)

początek przypadku PS ma miejsce, gdy NP => if (btn = '1') then NS <= NACIŚNIĘTY; E <= '1'; w przeciwnym razie NS <= NP; E jeśli (btn = '0'), to NS <= NP; E <='0'; w przeciwnym razie NS <= WCIŚNIĘTY; E <= '0'; koniec jeśli; sprawa końcowa; proces końcowy ns_proc;

koniec Behawioralny;

Krok 3: LED

Dioda LED ma dwa stany: WYŁĄCZONY (lub BEZCZYNNY) i WŁĄCZONY. Jak wspomniano wcześniej, stany są przechowywane w d-flip-flopie. Światło zaświeci się, gdy czujnik wykryje ruch (S=1) lub po naciśnięciu przycisku (E=1). Dioda LED wyłączy się automatycznie, gdy licznik osiągnie 1 minutę (T=1) lub ręcznie po naciśnięciu przycisku (E=1).

Skopiuj poniższy kod do pliku źródłowego vhdl o nazwie LED.

jednostka motion_sensored_light to Port (S: w STD_LOGIC; -- czujnik; Port JA10/Pin G3 E: w STD_LOGIC; -- zewnętrzny przycisk do funkcji ręcznej; Środkowy przycisk T: w STD_LOGIC; -- gdy timer osiągnie maksymalny czas; Z diody LED timera: out STD_LOGIC; -- światło TRST: out STD_LOGIC; -- resetuje zegar clk: w STD_LOGIC); -- clk dla flip flop, który przechowuje stany end motion_sensored_light;

architektura Zachowanie ruchu_czujnik_światła jest

typ state_type to (ST0, ST1); --ST0 = BEZCZYNNY, ST1 = LED WYSOKI

sygnał PS, NS: state_type:=ST0; -- STAN OBECNY I STAN NASTĘPNY, zaczyna się w ST0 BEZCZYNNOŚCI

rozpocząć

-- blok procesu flip flop -- aktualizuje stan przy narastającym zboczu zegara seq_proc: process(NS, clk) begin -- d flip flop przechowujący stany if(rising_edge(clk)) then PS <= NS; koniec jeśli; koniec procesu seq_proc;

ns_proc: proces(S, E, T, PS)

początek przypadku PS jest wtedy, gdy ST0 => LED <= '0'; -- wyjścia dla stanu bezczynności TRST <= '1'; if (S = '0' OR E = '1') then -- wejścia do przejścia od st0 do st1 NS <= ST1; w przeciwnym razie dioda NS <= '1'; -- wyjścia dla stanu TRST <= '0'; if (E = '1' LUB T = '1') then -- wprowadza do przejścia od st1 do st0 NS <= ST0; w przeciwnym razie NS <= ST1; koniec jeśli; sprawa końcowa; proces końcowy ns_proc;

koniec Behawioralny;

Krok 4: Górny plik

Teraz zamierzamy przenieść wszystkie nasze inne pliki w jeden.

Skopiuj poniższy kod do pliku źródłowego vhdl o nazwie Top_File.

biblioteka IEEE;użyj IEEE. STD_LOGIC_1164. ALL;

encja Top_File to

Port (S: w STD_LOGIC:= '1'; -- czujnik; Port JA10/Pin G3 btn: w STD_LOGIC:= '0'; -- zewnętrzny przycisk do obsługi ręcznej; środkowy przycisk LED: wyj. STD_LOGIC; -- kontrolka clk: w STD_LOGIC); -- clk dla flip flop, który przechowuje stany end Top_File;

Architektura Zachowanie Top_File to

składnik COUNT_8B to

port (RESET: w std_logic:= '0'; CLK: w std_logic; T: out std_logic:= '0'); element końcowy; komponent motion_sensored_light to Port (S: w STD_LOGIC; -- czujnik; Port JA10/Pin G3 E: w STD_LOGIC; -- zewnętrzny przycisk do funkcji ręcznej; Środkowy przycisk T: w STD_LOGIC; -- gdy timer osiągnie maksymalny czas; Z diody LED timera: out STD_LOGIC; -- światło TRST: out STD_LOGIC; -- resetuje zegar clk: w STD_LOGIC); -- clk dla flip flop, który przechowuje składnik końcowy stanów; przycisk komponentu to Port (btn: w STD_LOGIC; clk: w STD_LOGIC; E: w STD_LOGIC); element końcowy; sygnał t_reached_c: std_logic; -- sygnał r_time_c: std_logic; -- sygnał button_c: std_logic;

rozpocząć

timer: mapa portów COUNT_8B (RESET => r_time_c, CLK => CLK, T => t_reached_c); motion_sensor: mapa portów motion_sensored_light (S => S, E => button_c, T => t_reached_c, LED => LED, TRST => r_time_c, clk => clk); button_controller: mapa portów przycisków(btn => btn, clk => clk, E => button_c); koniec Behawioralny;

Krok 5: Plik ograniczeń

Teraz musimy zdefiniować, gdzie na planszy będą nasze wejścia i wyjścia.

Skopiuj poniższy kod do pliku ograniczeń vhdl o nazwie ograniczenia.

## Ten plik jest ogólnym.xdc dla płyty Basys3 rev B## Aby użyć go w projekcie: ## - odkomentuj linie odpowiadające użytym pinom ## - zmień nazwy używanych portów (w każdej linii, po get_ports) zgodnie z do nazw sygnałów najwyższego poziomu w projekcie

## Sygnał zegara

set_property PACKAGE_PIN W5 [get_ports clk] set_property IOSTANDARD LVCMOS33 [get_ports clk] create_clock -add -name sys_clk_pin -okres 10.00 -waveform {0 5} [get_ports clk] ## Przełączniki #set_property PACK #sw[get_0] {V17] 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_w16] #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]}] #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 W14 [get_PINs [6]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw[6]}] #set_property PIN_PAKIETU 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_s} U1] #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 R2s PACKAGE_PIN]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw[15]}]

## diody 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_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_led_ 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 LVC_MOS33 [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 {led[10]}] [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 N {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 L1PACKAGE [get_ports {led[15]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led[15]}] ##7 wyświetlacz segmentowy #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_s 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 {an[2]ports }] #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]}]

##Guziki

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 Nagłówek 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 Nagłówek 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 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 [get_port LVCMOSs JB[7]}]

##Pmod Nagłówek 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 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 [get LVCMOSs JC[7]}]

##Pmod Nagłówek 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[1]}JX] #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}]##ADC[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_set_property_4}]JXAD 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_property 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]}] #set33_property [get_ports {JXADC[7]}]

##Złącze 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 LVC[1]33 }] #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 LVCMOS33 {vgaRed[2]}] 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 LVCMOS33 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]}] #setAND_property IOSTAND33 [LVCMOS] get_ports {vgaBlue[3]}] #set_property PACKAGE_PIN J17 [get_ports {vgaGreen[0]}] #set_property IOSTANDARD LVCMOS33 [get_p orts {vgaGreen[0]}] #set_property PIN PAKIETU H17 [get_ports {vgaGreen[1]}] #set_property IOSTANDARD LVCMOS33 [get_ports {vgaGreen[1]}] #set_property PIN PAKIETU G17 [get_ports {vgaGreen[2]}] #set_property 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_ports33_getper LVCMOS] Hsync] #set_property PACKAGE_PIN R19 [get_ports Vsync] #set_property IOSTANDARD LVCMOS33 [get_ports Vsync]

##Interfejs 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]

##HID USB (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 PS2DatasCMOS33]

##Quad SPI Flash

##Pamiętaj, że CCLK_0 nie może być umieszczony w urządzeniach z serii 7. Możesz uzyskać do niego dostęp za pomocą prymitywu ##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_get_property LVCMOS[0]33 }] #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 LVCMOS33DB 3]}] #set_property PACKAGE_PIN K19 [get_ports QspiCSn] #set_property IOSTANDARD LVCMOS33 [get_ports QspiCSn]

Krok 6: Podłączanie czujnika ruchu PIR

Podłączanie czujnika ruchu PIR
Podłączanie czujnika ruchu PIR
Podłączanie czujnika ruchu PIR
Podłączanie czujnika ruchu PIR

Czujnik ruchu PIR ma trzy piny: odpowiednio: power, gnd i alarm (patrz pierwsze zdjęcie). Czujnik ruchu sugerowany w tej instrukcji można podłączyć bezpośrednio do płytki stykowej. Ale w przypadku czujnika, którego użyliśmy, musieliśmy przeciąć i zdjąć przewody, a następnie przylutować odsłonięte końce, aby zapobiec ich strzępieniu. Na płytce stykowej włóż szeregowo zworę męsko-żeńską ze stykami zasilania i uziemienia, a następnie zworę męsko-męską szeregowo ze stykiem alarmowym (patrz drugie zdjęcie).

Krok 7: Podłączanie diody LED na płytce do krojenia chleba

Podłączanie diody LED w płytce do krojenia chleba
Podłączanie diody LED w płytce do krojenia chleba
Podłączanie diody LED w płytce do krojenia chleba
Podłączanie diody LED w płytce do krojenia chleba

Podłącz diodę LED do płytki stykowej. Włóż szeregowo czarny przewód połączeniowy z męskiego do męskiego z krótkim przewodem diody LED. Następnie podłącz szeregowo kabel połączeniowy z męskiego na męskie w różnych kolorach z długim przewodem diody LED.

Krok 8: Połączenia płyty bazowej

Połączenia płyty podstawowej
Połączenia płyty podstawowej

Podłącz żeńskie końcówki czujnika ruchu PIR do źródła napięcia 5 V na płycie podstawy. Następnie podłącz męski przewód uziemiający LED do uziemienia portu bocznego, a następnie przewód alarmowy z czujnika ruchu PIR, a następnie przewód wejściowy LED (jak pokazano na rysunku).

Zalecana: