Съдържание:
- Стъпка 1: Таймер
- Стъпка 2: Оптимизиране на бутоните
- Стъпка 3: LED
- Стъпка 4: Топ файл
- Стъпка 5: Файл с ограничения
- Стъпка 6: Свържете PIR сензора за движение
- Стъпка 7: Окабеляване на светодиода в макета
- Стъпка 8: Връзки на Basys Board
Видео: LED сензор за движение: 8 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:53
Заден план:
Забравяте ли някога да изключите лампата, преди да тръгнете на час или работа или преди да си легнете? Тези часове с включени светлини, когато не ги използвате, наистина могат да увеличат разходите и загубата на енергия. Например, според solarcity.com, оставянето на осветените цяла нощ за една седмица може да добави 25 долара към сметката ви за електричество! За нашия проект CPE133 ние проектираме светлина със сензор за движение, за да помогнем на хората да пестят енергия в домовете си и да използват ефективно техните светлини.
Нашата система на практика:
На практика светлините биха се включили само когато сензор засече движение в стаята. След това светлините ще останат включени за определен период от време, например около 30 минути, и след това ще се изключат автоматично. Но да речем, че просто сте минавали или сте искали да напуснете стаята по -рано, преди да изтече определеното време. За тези случаи инсталирахме бутон, където можете да включвате или изключвате светлините ръчно. Обърнете внимание, че светлините ще останат включени 30 минути, дори когато светлините се включват ръчно или автоматично (освен ако светлините не се изключват ръчно).
Симулация на борда:
За да видим, че таймерът работи, сменихме таймера на 1 минута.
Материали:
- 1 Basys борд (можете да го намерите тук от Digilent)
- 1 PIR сензор за движение (можете да го намерите тук на Amazon)
- 1 макет и комплект (предлагаме да използвате този от Amazon)
-
От горния комплект
- 1 светодиод
- 3 джъмперни кабела от женски към мъжки
- 6 джъмперни кабела от мъжки към мъжки
Стъпка 1: Таймер
За да може светодиодът да свети 1 минута, първо трябва да създадем таймер. Платката Basys 3 има вътрешна честота 100MHz, което прави 100 милиона цикъла равни на 1 секунда. След това се използва като променлива, която ще действа като максимален брой за „t_cnt“. T_cnt се увеличава с 1, когато платката Basys 3 завърши цикъл. След като достигне марката от 100 милиона, тя ще се нулира и друга променлива, „sec“, ще се увеличи с 1. Тази „sec“променлива представлява броя на изминатите секунди и след като тази променлива е равна на 60, е изминала цяла минута.
Копирайте кода по -долу във vhdl изходен файл с име Timer.
обект COUNT_8B е
порт (RESET: в std_logic;
CLK: в std_logic; T: out std_logic: = '0');
край COUNT_8B;
архитектура my_count от COUNT_8B е
постоянен макс_ брой: цяло число: = (100000000); --signal t_cnt: std_logic_vector (7 downto 0): = "00000000"; сигнал t_cnt: цяло число: = (0); start process (CLK, RESET, t_cnt) променлива sec: integer: = 0; start if (rise_edge (CLK)) then if (RESET = '1') then t_cnt <= (0); - изчистване на elsif (t_cnt = max_count) след това- max_count е 100 милиона, което е равно на 1 секунда t_cnt <= (0); - Нулира вътрешния часовник на 0 сек: = сек + 1; - Увеличава нашия „бавен часовник“с 1, ако (sec = 60) тогава- След като достигне 60 секунди, значи е достигнал максималното време sec: = 0; - Нулира "бавния часовник" на 0 T <= '1'; край ако; иначе t_cnt <= t_cnt + 1; - увеличава вътрешния часовник T <= '0'; край ако; край ако; краен процес; прекрати my_count;
Стъпка 2: Оптимизиране на бутоните
Тъй като честотата в платките на Basys е толкова висока (около 100 MHz), когато натиснете за това, което мислите, че е кратко време до платката Basys, ще я натиснете 100 000 пъти. Това кара светлината да мига бързо между състоянието на включване и изключване. Опитахме се да оптимизираме бутона, като създадохме диаграма на състоянието, за да намалим трептенето.
D-джапанките ще държат всяко състояние и след това ще посочим преходите на състояния в израза на процеса.
Копирайте кода по -долу във vhdl изходен файл с име Button.
библиотека IEEE; използвайте IEEE. STD_LOGIC_1164. ALL;
бутонът обект е
Порт (btn: в STD_LOGIC; clk: в STD_LOGIC; E: изход STD_LOGIC); бутон за край;
архитектура Поведението на бутона е
тип state_type е (PRESSED, NP); сигнал PS, NS: състояние_тип: = NP;
започнете
seq_proc: process (NS, clk) start if (rise_edge (clk)) then PS <= NS; край ако; край процес seq_proc;
ns_proc: процес (btn, PS)
начален случай PS е, когато NP => if (btn = '1'), тогава NS <= PRESSED; E <= '1'; иначе NS <= NP; E, ако (btn = '0'), тогава NS <= NP; E <= '0'; else NS <= ПРЕСЕН; E <= '0'; край ако; краен случай; краен процес ns_proc;
край Поведенчески;
Стъпка 3: LED
Светодиодът има две състояния: OFF (или IDLE) и ON. Както беше казано по-горе, състоянията се съхраняват в d-джапанка. Светлината ще се включи, ако сензорът засече движение (S = 1) или когато е натиснат бутон (E = 1). Светодиодът ще се изключи автоматично, ако таймерът достигне 1 минута (T = 1) или ръчно при натискане на бутон (E = 1).
Копирайте кода по -долу във vhdl изходен файл с име LED.
обект motion_sensored_light е Порт (S: в STD_LOGIC; - ssnor; Порт JA10/Pin G3 E: в STD_LOGIC; - външен бутон за ръчна функция; Централен бутон T: в STD_LOGIC; - когато таймерът достигне максимално време; От таймера LED: out STD_LOGIC; - светлина TRST: out STD_LOGIC; - нулира таймера clk: в STD_LOGIC); - clk за джапанки, които държат края на състоянията motion_sensored_light;
архитектура Поведението на motion_sensored_light е
тип state_type е (ST0, ST1); --ST0 = IDLE, ST1 = LED HIGH
сигнал PS, NS: състояние_тип: = ST0; - НАСТОЯЩО ДЪРЖАВО И СЛЕДВАЩО ДЪРЖАВО, започва в ST0 IDLE
започнете
- процесния блок на джапанки- актуализира състоянието на нарастващия ръб на часовника seq_proc: процес (NS, clk) start- d джапанка, който държи състояния if (rise_edge (clk)) тогава PS <= NS; край ако; край процес seq_proc;
ns_proc: процес (S, E, T, PS)
начален случай PS е когато ST0 => LED <= '0'; - изходи за състояние на празен ход TRST <= '1'; if (S = '0' OR E = '1') then - входове за преход от st0 към st1 NS <= ST1; else NS LED <= '1'; - изходи за състояние TRST <= '0'; if (E = '1' OR T = '1') then - входове към за преход от st1 към st0 NS <= ST0; иначе NS <= ST1; край ако; краен случай; краен процес ns_proc;
край Поведенчески;
Стъпка 4: Топ файл
Сега ще прехвърлим всички наши файлове в един.
Копирайте кода по -долу във vhdl изходен файл с име Top_File.
библиотека IEEE; използвайте IEEE. STD_LOGIC_1164. ALL;
обект Top_File е
Порт (S: в STD_LOGIC: = '1'; - ssnor; Порт JA10/Pin G3 btn: в STD_LOGIC: = '0'; - външен бутон за ръчна функция; LED бутон на централния бутон: изход STD_LOGIC; - светлинен клик: в STD_LOGIC); - clk за джапанки, които държат състоянията край Top_File;
архитектура Поведението на Top_File е
компонент COUNT_8B е
порт (RESET: в std_logic: = '0'; CLK: в std_logic; T: out std_logic: = '0'); краен компонент; компонент motion_sensored_light е Порт (S: в STD_LOGIC; - ssnor; Порт JA10/Pin G3 E: в STD_LOGIC; - външен бутон за ръчна функция; Централен бутон T: в STD_LOGIC; - когато таймерът достигне максимално време; От таймера LED: out STD_LOGIC; - светлина TRST: out STD_LOGIC; - нулира таймера clk: в STD_LOGIC); - clk за джапанки, които държат крайния компонент на състоянията; компонентният бутон е Port (btn: в STD_LOGIC; clk: в STD_LOGIC; E: out STD_LOGIC); краен компонент; сигнал t_reached_c: std_logic; - сигнал r_time_c: std_logic; - сигнал button_c: std_logic;
започнете
таймер: COUNT_8B карта на порта (RESET => r_time_c, CLK => CLK, T => t_reached_c); сензор за движение: карта за пристанище за движение на движение (S => S, E => button_c, T => t_reached_c, LED => LED, TRST => r_time_c, clk => clk); button_controller: карта на портовете на бутоните (btn => btn, clk => clk, E => button_c); край Поведенчески;
Стъпка 5: Файл с ограничения
Сега трябва да определим къде нашите входове и изходи ще бъдат на дъската.
Копирайте кода по -долу във vhdl файл с ограничения, наречен Constraints.
## Този файл е общ.xdc за Basys3 rev B борда ## За да го използвате в проект: ## - разкомментирайте редовете, съответстващи на използваните пинове ## - преименувайте използваните портове (във всеки ред, след get_ports) според към имената на сигнали от най -високо ниво в проекта
## Часовник сигнал
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] ## Превключватели #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_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]}]
## светодиоди
#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] }] #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 {led_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 сегментен дисплей #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 { }] #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]}]
##Бутони
set_property PACKAGE_PIN U18 [get_ports btn] set_property IOSTANDARD LVCMOS33 [get_ports btn] #set_property IOSTANDARD LVCMOS33 [get_ports btnU] #set_property PACK_PIN_PACK_PIN_PACK_PACK [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]
## PA 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 име = 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 IOSTARD 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 име = 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 име = 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 [6]} JC [7]}]
## Заглавка на Pmod 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 {JXC] #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 {JXADCARD] 4PRO] 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 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 IOSTAND [get_ports {JXADC [7]}]
## 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
## 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_Porta IPS
## Quad SPI Flash
## Обърнете внимание, че CCLK_0 не може да бъде поставен в устройства от серия 7. Можете да получите достъп до него, като използвате примитива ## 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_property IOSTBARD [ISTANDARD] }] #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 QPOS [IOS33] 3]}] #set_property PACKAGE_PIN K19 [get_ports QspiCSn] #set_property IOSTANDARD LVCMOS33 [get_ports QspiCSn]
Стъпка 6: Свържете PIR сензора за движение
PIR сензорът за движение има три пина: съответно захранване, gnd и аларма (вижте първата снимка). Сензорът за движение, предложен в тази инструкция, може да се свърже директно към макета. Но за сензора, който използвахме, трябваше да отрежем и оголим проводниците и след това да запояваме откритите краища, за да ги предпазим от износване. На макета вмъкнете последователно джъмпер от мъжки към женски проводници със захранването и заземяващите щифтове, а след това от джъмпер от мъжки към мъжки последователно с алармения щифт (вижте втората снимка).
Стъпка 7: Окабеляване на светодиода в макета
Включете светодиода в платката. Поставете черен джъмпер от мъжки към мъжки кабел последователно с късата жица на светодиода. След това включете последователно джъмперния кабел от различен цвят с дълъг проводник на светодиода.
Стъпка 8: Връзки на Basys Board
Свържете женските краища на PIR сензора за движение към 5 -волтовия източник на напрежение на базовата платка. След това свържете мъжкия LED заземен проводник към земята на страничния порт, след това алармения проводник от PIR сензора за движение и след това LED входния проводник (както се вижда на снимката).
Препоръчано:
Звуков сензор и серво: Реактивно движение: 4 стъпки
Звуков сензор и серво: Реактивно движение: Първо трябва да съберете подходящи материали, за да сглобите тази верига
Сензор за движение на водата Сензор за движение с помощта на Arduino и соленоиден клапан - Направи си сам: 6 стъпки
Сензор за вода Сензор за движение с помощта на Arduino и соленоиден клапан - Направи си сам: В този проект ще ви покажа как да изградите кран за вода с сензор за движение с помощта на електромагнитен клапан. Този проект може да ви помогне да преобразувате съществуващия си ръчен кран за вода в кран, който може да се контролира въз основа на откриване на движение. Използване на интерфейса на IR сензора
Кой е на вратата ми? Проект на PIR сензор за движение/сензор за обхват: 5 стъпки
Кой е на вратата ми? Проект за PIR сензор за движение/сензор за обхват: Нашият проект има за цел да усети движението чрез PIR и сензори за разстояние. Кодът на Arduino ще извежда визуален и аудио сигнал, за да каже на потребителя, че някой е близо. Кодът MATLAB ще изпрати имейл сигнал, за да предупреди потребителя, че някой е наблизо. Това устройство
Сензор за движение активирана LED лента с таймер: 6 стъпки (със снимки)
LED лента, активирана от сензор за движение с таймер: Здравейте на всички! Наистина съм щастлив да напиша още една инструкция в момента. Този проект възникна, когато преди няколко месеца се свързах с колега с инструкции (?!) (David @dducic) с молба за помощ при проектирането. И така, тук беше оригиналната спецификация: & q
Изход, контролиран от движение - от светлината, разпознаваща движение: 6 стъпки
Изход, контролиран от движение - от светлина, чувствителна към движение: Представете си, че сте измамник или отивате в най-страшната къща в блока. След като преминете покрай всички духове, призраци и гробища, най -накрая стигате до последния път. Можете да видите бонбоните в купа пред себе си! Но изведнъж го