Taula de continguts:

LED sensible al moviment: 8 passos
LED sensible al moviment: 8 passos

Vídeo: LED sensible al moviment: 8 passos

Vídeo: LED sensible al moviment: 8 passos
Vídeo: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Juliol
Anonim
Image
Image

Antecedents:

Has oblidat mai d’apagar un llum abans de sortir a classe o a la feina o abans d’anar a dormir? Les hores amb els llums encesos quan no les feu servir poden sumar costos i pèrdues d’energia. Per exemple, segons solarcity.com, deixar els llums encesos tota la nit durant una setmana pot afegir 25 dòlars a la vostra factura elèctrica. Per al nostre projecte CPE133, dissenyem una llum de sensor de moviment per ajudar les persones a conservar l'energia a casa i a utilitzar les llums de manera eficient.

El nostre sistema a la pràctica:

A la pràctica, els llums només s’encenien quan un sensor detecta moviment a l’habitació. Aleshores, els llums es mantindran engegats durant un temps determinat, com ara uns 30 minuts, i després s’apagaran automàticament. Però suposem que només passàveu o volíeu sortir de l’habitació abans d’acabar el temps establert. En aquests casos, hem instal·lat un botó on podeu encendre o apagar els llums manualment. Tingueu en compte que els llums es mantindran engegats durant 30 minuts, fins i tot quan s’encenguin manualment o automàticament (tret que els llums s’apaguin manualment).

Simulació a bord:

Per veure que el temporitzador funciona, hem canviat el temporitzador a 1 minut.

Materials:

  • 1 tauler Basys (en podeu trobar un aquí de Digilent)
  • 1 sensor de moviment PIR (en podeu trobar un aquí a Amazon)
  • 1 tauler i kit (us recomanem que utilitzeu aquest d'Amazon)
  • Del kit anterior

    • 1 LED
    • 3 cables de pont femella a mascle
    • 6 cables de pont masculí a masculí

Pas 1: temporitzador

Perquè el LED romangui encès durant 1 minut, primer hem de crear un temporitzador. La placa Basys 3 té una freqüència interna de 100 MHz donant així 100 milions de cicles igual a 1 segon. A continuació, s'utilitza com a variable que actua com a nombre màxim per al "t_cnt". El t_cnt augmenta 1 a mesura que el tauler Basys 3 completa un cicle. Un cop arribi als 100 milions, es restablirà i una altra variable, "seg", augmentarà en 1. Aquesta variable "sec" representa el nombre de segons passats i un cop aquesta variable és igual a 60, ha passat un minut complet.

Copieu el codi següent a un fitxer font vhdl anomenat Temporitzador.

l'entitat COUNT_8B és

port (RESET: a std_logic;

CLK: a std_logic; T: fora std_logic: = '0');

final COUNT_8B;

arquitectura meu_count de COUNT_8B és

constant max_count: enter: = (100000000); --signal t_cnt: std_logic_vector (7 downto 0): = "00000000"; senyal t_cnt: enter: = (0); comença el procés (CLK, RESET, t_cnt) variable sec: enter: = 0; començar if (rising_edge (CLK)) llavors if (RESET = '1') llavors t_cnt <= (0); - esborra elsif (t_cnt = max_count) llavors - max_count és de 100 milions, que és igual a 1 segon t_cnt <= (0); - Restableix el rellotge intern a 0 seg: = seg + 1; - Augmenta el nostre "rellotge lent" 1 si (seg = 60) i després - Un cop arriba als 60 segons, ha assolit el temps màxim de seg: = 0; - Restableix el "rellotge lent" a 0 T <= '1'; acabar si; altrament t_cnt <= t_cnt + 1; - augmenta el rellotge intern T <= '0'; acabar si; acabar si; finalitzar el procés; acabar el meu compte;

Pas 2: Optimització de botons

LED
LED

Com que la freqüència a les plaques Basys és tan elevada (al voltant de 100 MHz) quan premeu el que creieu que és un curt període de temps a la placa Basys, la premríeu 100.000 vegades. Això fa que la llum parpellegi ràpidament entre l'estat d'encesa i apagada. Hem intentat optimitzar el botó creant un diagrama d'estats per reduir el parpelleig.

Els d-flip-flops mantindran cada estat i, a continuació, especificarem les transicions d'estat a la declaració del procés.

Copieu el codi següent a un fitxer font vhdl anomenat Button.

biblioteca IEEE; utilitzeu IEEE. STD_LOGIC_1164. ALL;

el botó d'entitat és

Port (btn: in STD_LOGIC; clk: in STD_LOGIC; E: out STD_LOGIC); botó final;

arquitectura El comportament del botó és

tipus state_type és (PRESSED, NP); senyal PS, NS: tipus_estat: = NP;

començar

seq_proc: procés (NS, clk) comença si (rising_edge (clk)) llavors PS <= NS; acabar si; finalitzar el procés seq_proc;

ns_proc: procés (btn, PS)

començar el cas PS és quan NP => if (btn = '1') llavors NS <= PRESSED; E <= '1'; altrament NS <= NP; E if (btn = '0') llavors NS <= NP; E <= '0'; else NS <= PRESSED; E <= '0'; acabar si; cas final; finalitzar el procés ns_proc;

final Conductual;

Pas 3: LED

El LED té dos estats: OFF (o IDLE) i ON. Com s’ha dit abans, els estats s’emmagatzemen en un d-flip-flop. El llum s’encendrà si el sensor detecta moviment (S = 1) o quan es prem un botó (E = 1). El LED s’apagarà automàticament si el temporitzador arriba a 1 minut (T = 1) o manualment quan es prem un botó (E = 1).

Copieu el codi següent a un fitxer font vhdl anomenat LED.

entity motion_sensored_light és Port (S: a STD_LOGIC; - sesnor; Port JA10 / Pin G3 E: a STD_LOGIC; - botó extern per a la funció manual; Botó central T: a STD_LOGIC; - quan el temporitzador arriba al temps màxim; Des del LED del temporitzador: out STD_LOGIC; - light TRST: out STD_LOGIC; - restableix el temporitzador clk: a STD_LOGIC); - clk per xancles que contenen els estats finals motion_sensored_light;

arquitectura Comportament de motion_sensored_light és

tipus state_type és (ST0, ST1); --ST0 = IDLE, ST1 = LED ALT

senyal PS, NS: tipus_estat: = ST0; - ESTAT ACTUAL I ESTAT SEGÜENT, comença a ST0 IDLE

començar

- bloc de processos de xancletes - actualitza l'estat a la vora ascendent del rellotge seq_proc: procés (NS, clk) begin - d xanclet que manté els estats if (rising_edge (clk)) llavors PS <= NS; acabar si; finalitzar el procés seq_proc;

ns_proc: procés (S, E, T, PS)

comença el cas PS quan ST0 => LED <= '0'; - sortides per a l'estat d'inactivitat TRST <= '1'; if (S = '0' OR E = '1') llavors - entrades a la transició de st0 a st1 NS <= ST1; else NS LED <= '1'; - Sortides per a l'estat TRST <= '0'; if (E = '1' OR T = '1') llavors - entrades a la transició de st1 a st0 NS <= ST0; altrament NS <= ST1; acabar si; cas final; finalitzar el procés ns_proc;

final Conductual;

Pas 4: Arxiu superior

Ara farem un mapa de ports de tots els altres fitxers en un de sol.

Copieu el codi següent a un fitxer font vhdl anomenat Fitxer_ Top.

biblioteca IEEE; utilitzeu IEEE. STD_LOGIC_1164. ALL;

és l'entitat Fitxer_ superior

Port (S: in STD_LOGIC: = '1'; - sesnor; Port JA10 / Pin G3 btn: in STD_LOGIC: = '0'; - botó extern per a la funció manual; LED del botó central: out STD_LOGIC; - light clk: a STD_LOGIC); - clk per xancles que contenen els estats finals Top_File;

arquitectura Comportament de Top_File és

el component COUNT_8B és

port (RESET: in std_logic: = '0'; CLK: in std_logic; T: out std_logic: = '0'); component final; component motion_sensored_light és Port (S: a STD_LOGIC; - sesnor; Port JA10 / Pin G3 E: a STD_LOGIC; - botó extern per a la funció manual; Botó central T: a STD_LOGIC; - quan el temporitzador arriba al temps màxim; Des del LED del temporitzador: out STD_LOGIC; - light TRST: out STD_LOGIC; - restableix el temporitzador clk: a STD_LOGIC); - clk per xancles que contenen el component final dels estats; el botó de component és Port (btn: in STD_LOGIC; clk: in STD_LOGIC; E: out STD_LOGIC); component final; senyal t_reached_c: std_logic; - senyal r_time_c: std_logic; - senyal button_c: std_logic;

començar

temporitzador: mapa de ports COUNT_8B (RESET => r_time_c, CLK => CLK, T => t_reached_c); motion_sensor: mapa de ports motion_sensored_light (S => S, E => button_c, T => t_reached_c, LED => LED, TRST => r_time_c, clk => clk); button_controller: mapa de ports del botó (btn => btn, clk => clk, E => button_c); final Conductual;

Pas 5: fitxer de restriccions

Ara hem de definir on estaran les nostres entrades i sortides al tauler.

Copieu el codi següent a un fitxer de restriccions vhdl anomenat Restriccions.

## Aquest fitxer és un fitxer.xdc general per a la placa Basys3 rev B ## Per utilitzar-lo en un projecte: ## - descommenteu les línies corresponents als pins utilitzats ## - canvieu el nom dels ports utilitzats (a cada línia, després de get_ports) segons als noms de senyal de nivell superior del projecte

## Senyal de rellotge

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]}]

## 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 LVCMOS33 [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 segment 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]}]

## Botons

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_Port_By [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]

## Capçalera Pmod 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]

## Capçalera Pmod 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]}]

## Capçalera Pmod 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]}]

## Capçalera 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 {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]}]

## Connector 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]}] 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] Hsync] #set_property PACKAGE_PIN R19 [get_ports Vsync] #set_property IOSTANDARD LVCMOS33 [get_ports Vsync]

## Interfície 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)

## Quad SPI Flash

## Tingueu en compte que CCLK_0 no es pot col·locar en dispositius de la sèrie 7. Podeu accedir-hi mitjançant la primitiva ## 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 IOSTANDARD 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 [get_ports] 3]}] #set_property PACKAGE_PIN K19 [get_ports QspiCSn] #set_property IOSTANDARD LVCMOS33 [get_ports QspiCSn]

Pas 6: Connexió del sensor de moviment PIR

Cablatge del sensor de moviment PIR
Cablatge del sensor de moviment PIR
Cablatge del sensor de moviment PIR
Cablatge del sensor de moviment PIR

El sensor de moviment PIR té tres pins: alimentació, gnd i alarma respectivament (vegeu la primera imatge). El sensor de moviment suggerit en aquest instructiu es pot connectar directament a la taula de control. Però per al sensor que hem utilitzat hem hagut de tallar i despullar els cables i després soldar els extrems exposats per evitar que es desgastin. A la taula d’informació, inseriu un cable de pont masculí a femella en sèrie amb els pins d’alimentació i de terra i, a continuació, un cable de pont masculí a masculí en sèrie amb el passador d’alarma (vegeu la segona imatge).

Pas 7: Connexió del LED a la placa de pa

Cablatge del LED a la tauleta de pa
Cablatge del LED a la tauleta de pa
Cablatge del LED a la tauleta de pa
Cablatge del LED a la tauleta de pa

Connecteu el LED a la placa de control. Introduïu un cable de pont negre mascle a mascle en sèrie amb el cable curt del LED. A continuació, endolleu el cable de pont masculí a masculí de diferents colors en sèrie amb el cable llarg del LED.

Pas 8: Connexions de la placa base

Connexions de la placa base
Connexions de la placa base

Connecteu els extrems femenins del sensor de moviment PIR a la font de voltatge de 5 volts de la placa base. A continuació, connecteu el cable de terra LED masculí a la terra del port lateral, després el cable d'alarma del sensor de moviment PIR i, a continuació, el cable d'entrada LED (tal com es veu a la imatge).

Recomanat: