Inhaltsverzeichnis:

Bewegungssensor LED - Gunook
Bewegungssensor LED - Gunook

Video: Bewegungssensor LED - Gunook

Video: Bewegungssensor LED - Gunook
Video: Светодиодные фонари уличного освещения на солнечных батареях с датчиком движения. Обзор 2024, Juli
Anonim
Image
Image

Hintergrund:

Haben Sie jemals vergessen, das Licht auszuschalten, bevor Sie zum Unterricht oder zur Arbeit gehen oder bevor Sie ins Bett gehen? Diese Stunden mit eingeschaltetem Licht, wenn Sie es nicht benutzen, können sich wirklich in Kosten und Energieverlust summieren. Laut solarcity.com kann beispielsweise eine Woche lang das Licht die ganze Nacht brennen, Ihre Stromrechnung um 25 US-Dollar erhöhen! Für unser CPE133-Projekt entwickeln wir eine Bewegungssensorleuchte, die Menschen dabei hilft, Energie in ihren Häusern zu sparen und ihre Beleuchtung effizient zu nutzen.

Unser System in der Praxis:

In der Praxis schaltete sich das Licht nur ein, wenn ein Sensor eine Bewegung im Raum erkennt. Dann bleibt das Licht für eine bestimmte Zeit, etwa 30 Minuten, eingeschaltet und schaltet sich dann automatisch aus. Aber nehmen wir an, Sie sind auf der Durchreise oder wollten den Raum vorzeitig verlassen, bevor die eingestellte Zeit abgelaufen ist. Für diese Fälle haben wir eine Taste installiert, mit der Sie das Licht manuell ein- oder ausschalten können. Beachten Sie, dass die Lichter 30 Minuten lang eingeschaltet bleiben, auch wenn die Lichter manuell oder automatisch eingeschaltet werden (es sei denn, die Lichter werden manuell ausgeschaltet).

Simulation an Bord:

Um zu sehen, dass der Timer funktioniert, haben wir den Timer auf 1 Minute geändert.

Materialien:

  • 1 Basys-Board (findest du hier von Digilent)
  • 1 PIR-Bewegungssensor (Sie finden einen hier bei Amazon)
  • 1 Steckbrett und Kit (wir empfehlen, dieses von Amazon zu verwenden)
  • Aus dem Kit oben

    • 1 LED
    • 3 Überbrückungskabel weiblich zu männlich
    • 6 Stecker-zu-Stecker-Überbrückungskabel

Schritt 1: Timer

Damit die LED 1 Minute lang eingeschaltet bleibt, müssen wir zuerst einen Timer erstellen. Das Basys 3-Board hat eine interne Frequenz von 100 MHz, wodurch 100 Millionen Zyklen einer Sekunde entsprechen. Diese wird dann als Variable verwendet, die als maximale Zahl für „t_cnt“fungiert. t_cnt erhöht sich um 1, wenn das Basys 3-Board einen Zyklus beendet. Sobald die 100-Millionen-Marke erreicht ist, wird sie zurückgesetzt und eine andere Variable, „Sek“, wird um 1 erhöht. Diese „Sek“-Variable stellt die Anzahl der verstrichenen Sekunden dar, und sobald diese Variable gleich 60 ist, ist eine volle Minute vergangen.

Kopieren Sie den folgenden Code in eine vhdl-Quelldatei namens Timer.

Entität COUNT_8B ist

Port (RESET: in std_logic;

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

Ende COUNT_8B;

Architektur my_count von COUNT_8B ist

Konstante max_count: integer:= (100000000); --signal t_cnt: std_logic_vector(7 bis 0):= "00000000"; Signal t_cnt: Ganzzahl:= (0); Prozessbeginn (CLK, RESET, t_cnt) Variable sec: integer:= 0; begin if (rising_edge(CLK)) then if (RESET = '1') then t_cnt <= (0); -- clear elsif (t_cnt = max_count) dann -- max_count ist 100 Millionen, was 1 Sekunde entspricht t_cnt <= (0); -- Setzt die interne Uhr auf 0 Sek.:= Sek + 1 zurück; -- Erhöht unsere 'langsame Uhr' um 1, wenn (sec = 60) dann -- Sobald 60 Sekunden erreicht sind, hat sie die maximale Zeit erreicht sec:= 0; -- Setzt "slow clock" auf 0 zurück T <= '1'; Ende, wenn; sonst t_cnt <= t_cnt + 1; -- erhöht die interne Uhr T <= '0'; Ende, wenn; Ende, wenn; Prozess beenden; end my_count;

Schritt 2: Schaltflächenoptimierung

LED
LED

Da die Frequenz in den Basys-Boards so hoch ist (ca. 100 MHz), würden Sie es 100.000 Mal drücken, wenn Sie für eine, wie Sie denken, kurze Zeit auf das Basys-Board drücken. Dadurch flackert das Licht schnell zwischen dem Ein- und Aus-Zustand. Wir haben versucht, die Schaltfläche zu optimieren, indem wir ein Zustandsdiagramm erstellt haben, um das Flackern zu reduzieren.

Die D-Flip-Flops halten jeden Zustand und dann werden wir die Zustandsübergänge in der Prozessanweisung angeben.

Kopieren Sie den folgenden Code in eine vhdl-Quelldatei namens Button.

Bibliothek IEEE; IEEE. STD_LOGIC_1164. ALL verwenden;

Entity-Button ist

Port (btn: in STD_LOGIC; clk: in STD_LOGIC; E: aus STD_LOGIC); Ende-Taste;

Architektur Verhalten der Taste ist

type state_type ist (PRESSED, NP); Signal PS, NS: state_type:= NP;

Start

seq_proc: process(NS, clk) begin if(rising_edge(clk)) then PS <= NS; Ende, wenn; Prozess seq_proc beenden;

ns_proc: Prozess(btn, PS)

start case PS ist wenn NP => if (btn = '1') then NS <= PRESSED; E <= '1'; sonst NS <= NP; E if (btn = '0') then NS <= NP; E <='0'; sonst NS <= GEDRÜCKT; E <= '0'; Ende, wenn; Endfall; Prozess beenden ns_proc;

Ende Verhalten;

Schritt 3: LED

Die LED hat zwei Zustände: OFF (oder IDLE) und ON. Wie bereits erwähnt, werden die Zustände in einem D-Flip-Flop gespeichert. Das Licht schaltet sich ein, wenn der Sensor eine Bewegung erkennt (S=1) oder wenn eine Taste gedrückt wird (E=1). Die LED erlischt automatisch, wenn der Timer 1 Minute erreicht (T=1) oder manuell, wenn eine Taste gedrückt wird (E=1).

Kopieren Sie den folgenden Code in eine vhdl-Quelldatei namens LED.

Entität motion_sensored_light ist Port (S: in STD_LOGIC; -- Sensor; Port JA10/Pin G3 E: in STD_LOGIC; -- externe Taste für manuelle Funktion; mittlere Taste T: in STD_LOGIC; -- wenn der Timer die maximale Zeit erreicht; Von der Timer-LED: aus STD_LOGIC; -- Licht TRST: aus STD_LOGIC; -- setzt Timer clk zurück: in STD_LOGIC); -- clk für Flip-Flop, die die Zustände halten end motion_sensored_light;

Architektur Verhalten von motion_sensored_light ist

type state_type ist (ST0, ST1); --ST0 = IDLE, ST1 = LED HIGH

Signal PS, NS: state_type:=ST0; -- AKTUELLER ZUSTAND UND NÄCHSTER ZUSTAND, beginnt in ST0 IDLE

Start

-- Block des Flip-Flops verarbeiten -- Status bei steigender Taktflanke aktualisieren seq_proc: process(NS, clk) begin -- d Flip-Flop, das Zustände hält if(rising_edge(clk)) then PS <= NS; Ende, wenn; Prozess seq_proc beenden;

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

start case PS ist wenn ST0 => LED <= '0'; -- Ausgänge für Ruhezustand TRST <= '1'; wenn (S = '0' ODER E = '1') dann -- Eingaben zum Übergang von st0 zu st1 NS <= ST1; sonst NS-LED <= '1'; -- Ausgänge für Ein-Zustand TRST <= '0'; wenn (E = '1' ODER T = '1') dann -- Eingaben in zum Übergang von st1 zu st0 NS <= ST0; sonst NS <= ST1; Ende, wenn; Endfall; Prozess beenden ns_proc;

Ende Verhalten;

Schritt 4: Top-Datei

Jetzt werden wir alle unsere anderen Dateien in eine portieren.

Kopieren Sie den folgenden Code in eine vhdl-Quelldatei namens Top_File.

Bibliothek IEEE; IEEE. STD_LOGIC_1164. ALL verwenden;

Entität Top_File ist

Port (S: in STD_LOGIC:= '1'; -- Sensor; Port JA10/Pin G3 btn: in STD_LOGIC:= '0'; -- externe Taste für manuelle Funktion; mittlere Taste LED: aus STD_LOGIC; -- Licht clk: in STD_LOGIC); -- clk für Flip-Flop, die die Zustände halten end Top_File;

Architektur Verhalten von Top_File is

Komponente COUNT_8B ist

Port (RESET: in std_logic:= '0'; CLK: in std_logic; T: out std_logic:= '0'); Endkomponente; Komponente motion_sensored_light ist Port (S: in STD_LOGIC; -- Sensor; Port JA10/Pin G3 E: in STD_LOGIC; -- externe Taste für manuelle Funktion; mittlere Taste T: in STD_LOGIC; -- wenn der Timer die maximale Zeit erreicht; Von der Timer-LED: aus STD_LOGIC; -- Licht TRST: aus STD_LOGIC; -- setzt Timer clk zurück: in STD_LOGIC); -- clk für Flip-Flop, die die Zustandsendkomponente halten; Komponentenschaltfläche ist Port (btn: in STD_LOGIC; clk: in STD_LOGIC; E: out STD_LOGIC); Endkomponente; Signal t_reached_c: std_logic; -- Signal r_time_c: std_logic; -- signal button_c: std_logic;

Start

Timer: COUNT_8B Portzuordnung(RESET => r_time_c, CLK => CLK, T => t_erreicht_c); motion_sensor: motion_sensored_light Portmap (S => S, E => button_c, T => t_reached_c, LED => LED, TRST => r_time_c, clk => clk); button_controller: Button-Port-Map (btn => btn, clk => clk, E => button_c); Ende Verhalten;

Schritt 5: Einschränkungsdatei

Jetzt müssen wir definieren, wo sich unsere Ein- und Ausgänge auf der Platine befinden.

Kopieren Sie den folgenden Code in eine vhdl-Einschränkungsdatei namens Constraints.

## Diese Datei ist eine allgemeine.xdc für das Basys3 Rev B Board## Um sie in einem Projekt zu verwenden: ## - Entkommentieren Sie die Zeilen, die den verwendeten Pins entsprechen ## - Benennen Sie die verwendeten Ports um (in jeder Zeile nach get_ports) entsprechend zu den Signalnamen der obersten Ebene im Projekt

## Taktsignal

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] ## Schalter #set_property PACKAGE_PIN {swget[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[2]}s {] #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_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_PIN W14

## LEDs

#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 LVCMOS {led[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 LVCMOS {33 [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 Uled [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 [{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 LPACKAGE_PIN [get_ports {led[15]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led[15]}] ##7 Segmentanzeige #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]}]

##Tasten

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 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 IOSTANDARD 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 IOSTANDARD 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 LVCMOS {33 [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 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 LVCMOS {33 [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 {JXADC[1]}] #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_property] {JXADC[4]} #setIO_STANDER4] 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 MOS33 [get_ports {JXADC[7]}]

##VGA-Anschluss

#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 IOget_port[s1] }] #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 {RgaSTANDARD_ 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 {IOget_ LVCMOS33 [IOget_ 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]}] #set_property MOS [STANDARD_LVC33 IO 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]}] #IOSTANDARD 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_property Hsync] #set_property PACKAGE_PIN R19 [get_ports Vsync] #set_property IOSTANDARD LVCMOS33 [get_ports Vsync]

##USB-RS232-Schnittstelle

#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] PSULL [set_property PULLUP]

##Quad SPI Flash

##Beachten Sie, dass CCLK_0 nicht in Geräten der Serie 7 platziert werden kann. Sie können darauf zugreifen, indem Sie das Primitiv ##STARTUPE2 verwenden. #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[PortDB1]Q33 [IOget_ LVC1] }] #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 {QpiSTANDARD_ 3]}] #set_property PACKAGE_PIN K19 [get_ports QspiCSn] #set_property IOSTANDARD LVCMOS33 [get_ports QspiCSn]

Schritt 6: Verdrahten des PIR-Bewegungssensors

Verdrahten des PIR-Bewegungssensors
Verdrahten des PIR-Bewegungssensors
Verdrahten des PIR-Bewegungssensors
Verdrahten des PIR-Bewegungssensors

Der PIR-Bewegungssensor hat drei Pins: Strom, Masse und Alarm (siehe das erste Bild). Der in dieser Anleitung vorgeschlagene Bewegungssensor kann direkt mit dem Steckbrett verbunden werden. Aber für den Sensor, den wir verwendeten, mussten wir die Drähte schneiden und abisolieren und dann die freiliegenden Enden verlöten, damit sie nicht ausfransen. Stecken Sie auf dem Steckbrett ein Stecker-zu-Buchse-Überbrückungskabel in Reihe mit den Strom- und Erdungsstiften und dann ein Stecker-zu-Stecker-Überbrückungskabel in Reihe mit dem Alarmstift (siehe das zweite Bild).

Schritt 7: Verdrahtung der LED im Steckbrett

Verdrahten der LED im Steckbrett
Verdrahten der LED im Steckbrett
Verdrahten der LED im Steckbrett
Verdrahten der LED im Steckbrett

Stecken Sie die LED in das Steckbrett. Stecken Sie ein schwarzes Stecker-zu-Stecker-Überbrückungskabel in Reihe mit der kurzen Leitung der LED. Stecken Sie dann verschiedenfarbige Stecker-zu-Stecker-Überbrückungskabel in Reihe mit der langen Leitung der LED.

Schritt 8: Basys Board-Verbindungen

Anschlüsse der Basys-Platine
Anschlüsse der Basys-Platine

Verbinden Sie die weiblichen Enden des PIR-Bewegungssensors mit der 5-Volt-Spannungsquelle auf der Basisplatine. Verbinden Sie dann das männliche LED-Massekabel mit der Masse des seitlichen Anschlusses, dann das Alarmkabel vom PIR-Bewegungssensor und dann das LED-Eingangskabel (wie im Bild zu sehen).

Empfohlen: