Inhoudsopgave:
- Stap 1: Timer
- Stap 2: Knopoptimalisatie
- Stap 3: LED
- Stap 4: Topbestand
- Stap 5: Bestand met beperkingen
- Stap 6: De PIR-bewegingssensor aansluiten
- Stap 7: Bedrading van de LED in het breadboard
- Stap 8: Basys Board-aansluitingen
Video: LED met bewegingssensor: 8 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
Achtergrond:
Vergeet je wel eens het licht uit te doen voordat je naar school of je werk gaat of voordat je naar bed gaat? Die uren met de lichten aan wanneer u ze niet gebruikt, kunnen behoorlijk oplopen in kosten en energieverlies. Volgens solarcity.com kan het bijvoorbeeld een week lang de hele nacht aanblijven, $ 25 aan uw elektriciteitsrekening toevoegen! Voor ons CPE133-project ontwerpen we een bewegingssensorlamp om mensen te helpen energie te besparen in hun huis en hun verlichting efficiënt te gebruiken.
Ons systeem in de praktijk:
In de praktijk zouden de lampen alleen aangaan als een sensor beweging in de kamer detecteert. Daarna blijven de lichten een bepaalde tijd aan, bijvoorbeeld ongeveer 30 minuten, en gaan dan automatisch uit. Maar laten we zeggen dat u op doorreis was of eerder de kamer wilde verlaten voordat de ingestelde tijd voorbij was. Voor die gevallen hebben we een knop geïnstalleerd waarmee je de lichten handmatig aan of uit kunt zetten. Houd er rekening mee dat de lichten 30 minuten blijven branden, zelfs wanneer de lichten handmatig of automatisch worden ingeschakeld (tenzij de lichten handmatig worden uitgeschakeld).
Simulatie aan boord:
Om te zien of de timer werkt hebben we de timer op 1 minuut gezet.
Materialen:
- 1 Basys-bord (je kunt er hier een vinden van Digilent)
- 1 PIR-bewegingssensor (je kunt er een vinden hier op Amazon)
- 1 breadboard en kit (we raden aan deze van Amazon te gebruiken)
-
Uit de kit hierboven
- 1 LED
- 3 vrouwelijke naar mannelijke startkabels
- 6 mannelijke naar mannelijke startkabels
Stap 1: Timer
Om ervoor te zorgen dat de LED 1 minuut blijft branden, moeten we eerst een timer maken. Het Basys 3-bord heeft een interne frequentie van 100 MHz, waardoor 100 miljoen cycli gelijk zijn aan 1 seconde. Dit wordt dan gebruikt als een variabele die zal fungeren als een maximum aantal voor de "t_cnt". De t_cnt wordt met 1 verhoogd naarmate het Basys 3-bord een cyclus voltooit. Zodra het de grens van 100 miljoen bereikt, wordt het gereset en wordt een andere variabele, "sec", met 1 verhoogd. Deze variabele "sec" vertegenwoordigt het aantal verstreken seconden en zodra die variabele gelijk is aan 60, is er een volledige minuut verstreken.
Kopieer de onderstaande code naar een vhdl-bronbestand met de naam Timer.
entiteit COUNT_8B is
poort (RESET: in std_logic;
CLK: in std_logic; T: uit std_logic:= '0');
eind COUNT_8B;
architectuur my_count van COUNT_8B is
constante max_count: geheel getal:= (100000000); --signaal t_cnt: std_logic_vector (7 tot 0):= "00000000"; signaal t_cnt: geheel getal:= (0); begin proces (CLK, RESET, t_cnt) variabele sec: integer:= 0; begin if (rising_edge(CLK)) then if (RESET = '1') then t_cnt <= (0); -- clear elsif (t_cnt = max_count) dan -- max_count is 100 miljoen wat gelijk is aan 1 seconde t_cnt <= (0); -- Reset de interne klok naar 0 sec:= sec + 1; -- Verhoogt onze 'langzame klok' met 1 als (sec = 60) dan -- Zodra het 60 seconden bereikt, heeft het de maximale tijd bereikt sec:= 0; -- Zet "langzame klok" terug op 0 T <= '1'; stop als; anders t_cnt <= t_cnt + 1; -- verhoogt de interne klok T <= '0'; stop als; stop als; eindproces; beëindig mijn_telling;
Stap 2: Knopoptimalisatie
Omdat de frequentie in de Basys-borden zo hoog is (ongeveer 100 MHz), zou je 100, 000 keer drukken als je op het Basys-bord drukt voor wat je denkt dat een korte tijd is. Hierdoor flikkert het licht snel tussen aan en uit. We hebben geprobeerd de knop te optimaliseren door een statusdiagram te maken om het flikkeren te verminderen.
De d-flip-flops zullen elke toestand bevatten en dan zullen we de toestandsovergangen specificeren in de procesverklaring.
Kopieer de onderstaande code naar een vhdl-bronbestand met de naam Button.
bibliotheek IEEE;gebruik IEEE. STD_LOGIC_1164. ALL;
entiteitsknop is
Poort (btn: in STD_LOGIC; clk: in STD_LOGIC; E: uit STD_LOGIC); eindknop;
architectuur Gedrag van knop is
type state_type is (GEDRUKT, NP); signaal PS, NS: state_type:= NP;
beginnen
seq_proc: proces (NS, clk) begin if (rising_edge (clk)) dan PS <= NS; stop als; eindproces seq_proc;
ns_proc: proces (btn, PS)
begin geval PS is wanneer NP => if (btn = '1') dan NS <= INGEDRUKT; E <= '1'; anders NS <= NP; E als (btn = '0') dan NS <= NP; E <='0'; anders NS <= GEDRUKT; E <= '0'; stop als; eindgeval; eindproces ns_proc;
einde Gedrags;
Stap 3: LED
De LED heeft twee standen: UIT (of IDLE) en AAN. Zoals eerder gezegd, worden de toestanden opgeslagen in een d-flip-flop. Het licht gaat branden als de sensor beweging detecteert (S=1) of als er op een knop wordt gedrukt (E=1). De LED gaat automatisch uit als de timer 1 minuut bereikt (T=1) of handmatig wanneer er op een knop wordt gedrukt (E=1).
Kopieer de onderstaande code naar een vhdl-bronbestand met de naam LED.
entiteit motion_sensored_light is poort (S: in STD_LOGIC; -- sesnor; poort JA10/Pin G3 E: in STD_LOGIC; -- externe knop voor handmatige functie; middelste knop T: in STD_LOGIC; -- wanneer timer de maximale tijd bereikt; Van timer-LED: uit STD_LOGIC; -- light TRST: uit STD_LOGIC; -- reset timer clk: in STD_LOGIC); -- clk voor flip-flop die de toestanden einde motion_sensored_light bevat;
architectuur Gedrag van motion_sensored_light is
type staat_type is (ST0, ST1); --ST0 = STILSTAND, ST1 = LED HOOG
signaal PS, NS: state_type:=ST0; -- PRESENT STATE EN NEXT STATE, begint in ST0 IDLE
beginnen
-- procesblok van flip-flop -- updates status op stijgende flank van klok seq_proc: proces (NS, clk) begin -- d flip-flop die toestanden bevat als (stijgende_edge (clk)) dan PS <= NS; stop als; eindproces seq_proc;
ns_proc: proces (S, E, T, PS)
begin geval PS is wanneer ST0 => LED <= '0'; -- uitgangen voor rusttoestand TRST <= '1'; als (S = '0' OF E = '1') dan -- invoer voor overgang van st0 naar st1 NS <= ST1; anders NS-LED <= '1'; -- uitgangen voor aan-status TRST <= '0'; als (E = '1' OF T = '1') dan -- invoert naar naar overgang van st1 naar st0 NS <= ST0; anders NS <= ST1; stop als; eindgeval; eindproces ns_proc;
einde Gedrags;
Stap 4: Topbestand
Nu gaan we al onze andere bestanden in één map zetten.
Kopieer de onderstaande code naar een vhdl-bronbestand met de naam Top_File.
bibliotheek IEEE;gebruik IEEE. STD_LOGIC_1164. ALL;
entiteit Top_File is
Poort (S: in STD_LOGIC:= '1'; -- sesnor; Poort JA10/Pin G3 btn: in STD_LOGIC:= '0'; -- externe knop voor handmatige functie; Middelste knop LED: uit STD_LOGIC; -- licht clk: in STD_LOGIC); -- clk voor flip flop die de toestanden einde Top_File bevat;
architectuur Gedrag van Top_File is
component COUNT_8B is
poort (RESET: in std_logic:= '0'; CLK: in std_logic; T: uit std_logic:= '0'); eindcomponent; component motion_sensored_light is Poort (S: in STD_LOGIC; -- sesnor; Poort JA10/Pin G3 E: in STD_LOGIC; -- externe knop voor handmatige functie; Middelste knop T: in STD_LOGIC; -- wanneer timer de maximale tijd bereikt; Van timer-LED: uit STD_LOGIC; -- light TRST: uit STD_LOGIC; -- reset timer clk: in STD_LOGIC); -- clk voor flip-flop die de eindcomponent van de toestand bevat; component-knop is Port (btn: in STD_LOGIC; clk: in STD_LOGIC; E: uit STD_LOGIC); eindcomponent; signaal t_reached_c: std_logic; -- signaal r_time_c: std_logic; -- signaal button_c: std_logic;
beginnen
timer: COUNT_8B poortkaart(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: knop poort kaart (btn => btn, clk => clk, E => button_c); einde Gedrags;
Stap 5: Bestand met beperkingen
Nu moeten we bepalen waar onze inputs en outputs op het bord komen.
Kopieer de onderstaande code naar een vhdl-beperkingenbestand met de naam Constraints.
## Dit bestand is een algemene.xdc voor het Basys3 rev B-bord## Om het in een project te gebruiken: ## - verwijder commentaar op de regels die overeenkomen met gebruikte pinnen ## - hernoem de gebruikte poorten (in elke regel, na get_ports) volgens naar de signaalnamen op het hoogste niveau in het project
## Kloksignaal
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[0] 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_PINs}] #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 W15s [get[_PIN W15s]}] #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_PINs PACKAGE_PINs [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]}] #setSTANDARD 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] #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 R2 [get_PINPORTS]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw[15]}]
## LED's
#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 {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 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_PIN U3 [get_PIN U3 [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 N3 [get_PINports {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 L1 [get_ports {led[15]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led[15]}] ##7 segmentweergave #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}] #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] }] #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 }] #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]}]
##Toetsen
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 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 naam = 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]}] #STANDARDproperty 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 naam = 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]}] #STANDARDproperty 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 naam = JB10 #set_property PACKAGE_PIN C16 [get_ports {JB[7]}] #set_property IOSTANDARD LVCMOS33 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 naam = 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]}] #STANDARDproperty 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 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[1] L3 [get_ports [get_ports] #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 {JX#Sch[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_ports4]#Sch naam 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 naam = XAprop3_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]}] OS33STANDARD CMLV [get_ports {JXADC[7]}]
##VGA-connector
#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[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]}] #setARD_property IO 33 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 CMOS 33 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]}] #setSTAND_property CMOS 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]erty}] #setSTAND_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_ports_hproperCM] #get_ports_Hsync] Hsync] #set_property PACKAGE_PIN R19 [get_ports Vsync] #set_property IOSTANDARD LVCMOS33 [get_ports Vsync]
##USB-RS232-interface
#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 PS2LVerty] #set_property
##Quad SPI-flitser
##Merk op dat CCLK_0 niet in apparaten uit de 7-serie kan worden geplaatst. Je hebt er toegang toe met de ##STARTUPE2 primitief. #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 IOSTANDARD IOSTANDARD [get_ports {QspiDB[0]}] }] #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 DBOSQ[get_property DBOS 33 3]}] #set_property PACKAGE_PIN K19 [get_ports QspiCSn] #set_property IOSTANDARD LVCMOS33 [get_ports QspiCSn]
Stap 6: De PIR-bewegingssensor aansluiten
De PIR-bewegingssensor heeft drie pinnen: respectievelijk voeding, gnd en alarm (zie de eerste afbeelding). De bewegingssensor die in deze instructable wordt voorgesteld, kan rechtstreeks op het breadboard worden aangesloten. Maar voor de sensor die we gebruikten, moesten we de draden doorknippen en strippen en vervolgens de blootliggende uiteinden solderen om te voorkomen dat ze rafelen. Plaats op het breadboard een mannelijke naar vrouwelijke jumperdraad in serie met de stroom- en aardingspinnen en vervolgens een mannelijke naar mannelijke jumperdraad in serie met de alarmpin (zie de tweede afbeelding).
Stap 7: Bedrading van de LED in het breadboard
Steek de LED in het breadboard. Steek een zwarte mannelijke naar mannelijke startkabel in serie met de korte kabel van de LED. Steek vervolgens een verschillende gekleurde mannelijke naar mannelijke jumperkabel in serie met de lange kabel van de LED.
Stap 8: Basys Board-aansluitingen
Sluit de vrouwelijke uiteinden van de PIR-bewegingssensor aan op de 5 volt-spanningsbron op het basys-bord. Sluit vervolgens de mannelijke LED-aardingsdraad aan op de aarde van de zijpoort, vervolgens de alarmdraad van de PIR-bewegingssensor en vervolgens de LED-ingangsdraad (zoals te zien op de afbeelding).
Aanbevolen:
Draagbare bewegingssensor: 4 stappen
Draagbare bewegingssensor: Hallo, ik heb een draagbare bewegingssensor op batterijen gemaakt die ik graag met je wil delen. Wat je nodig hebt: Arduino Uno Keyes bewegingssensor Draden LED's (rood, groen blauw) Breadboard
Bewegingssensor deurbel: 5 stappen (met afbeeldingen)
Bewegingssensor deurbel: Toen ik mijn zoon Jayden vertelde over de uitdaging, dacht hij meteen aan de LEGO WeDo set. Hij speelt al jaren met Lego, maar pas begin vorig schooljaar kreeg hij de kans om te coderen met WeDo 2.0
Een Neopixel Led Ring bedienen met een bewegingssensor - Ajarnpa
Een neopixel led-ring besturen met een bewegingssensor: in deze tutorial gaan we spelen met een bewegingssensor (APDS-9960) en een neopixel-ring om te leren hoe je ze beide kunt combineren met een Arduino UNO. Het eindproduct zal reageren op links - rechts gebaren door geanimeerde led-bewegingen naar rechts of links, en naar u
IoT draadloze temperatuur- en bewegingssensor: 11 stappen (met afbeeldingen)
IoT draadloze temperatuur- en bewegingssensor: ik werd geïnspireerd door de vele IoT-projecten in Instructables, dus tijdens het leren probeer ik een aantal nuttige toepassingen te combineren die relevant zijn. Als uitbreiding op mijn vorige Instructables met betrekking tot IoT-temperatuursensor, heb ik nu
Bewegingssensor geactiveerde LED-strip met timer - Ajarnpa
Bewegingssensor geactiveerde LED-strip met timer: Hallo allemaal! Ik ben erg blij dat ik nu nog een instructable schrijf. Dit project kwam tot stand toen ik enkele maanden geleden werd benaderd door een mede-instructable-er (?!) (David @dducic) die om hulp bij het ontwerpen vroeg. Dus hier was de originele specificatie: &q