Table des matières:

LED à détection de mouvement : 8 étapes
LED à détection de mouvement : 8 étapes

Vidéo: LED à détection de mouvement : 8 étapes

Vidéo: LED à détection de mouvement : 8 étapes
Vidéo: Comment installer un projecteur LED à détecteur de mouvement - tuto réglage meilleur projecteur 2024, Juillet
Anonim
Image
Image

Fond:

Avez-vous déjà oublié d'éteindre une lumière avant d'aller en classe ou au travail ou avant d'aller vous coucher ? Ces heures avec les lumières allumées lorsque vous ne les utilisez pas peuvent vraiment augmenter les coûts et les pertes d'énergie. Par exemple, selon solarcity.com, laisser les lumières allumées toute la nuit pendant une semaine peut ajouter 25 $ à votre facture d'électricité ! Pour notre projet CPE133, nous concevons une lampe à détecteur de mouvement pour aider les gens à économiser l'énergie dans leur maison et à utiliser efficacement leurs lumières.

Notre système en pratique:

Dans la pratique, les lumières ne s'allument que lorsqu'un capteur détecte un mouvement dans la pièce. Ensuite, les lumières resteront allumées pendant une durée définie, environ 30 minutes, puis s'éteindront automatiquement. Mais disons que vous étiez juste de passage ou que vous vouliez quitter la pièce plus tôt avant la fin du temps imparti. Pour ces cas, nous avons installé un bouton permettant d'allumer ou d'éteindre les lumières manuellement. Notez que les lumières resteront allumées pendant 30 minutes même lorsqu'elles sont allumées manuellement ou automatiquement (à moins que les lumières ne soient éteintes manuellement).

Simulation à bord:

Pour voir que la minuterie fonctionne, nous avons changé la minuterie à 1 minute.

Matériaux:

  • 1 carte Basys (vous pouvez en trouver une ici de Digilent)
  • 1 capteur de mouvement PIR (vous pouvez en trouver un ici sur Amazon)
  • 1 maquette et kit (nous vous suggérons d'utiliser celui-ci d'Amazon)
  • Du kit ci-dessus

    • 1 DEL
    • 3 câbles de démarrage femelle vers mâle
    • 6 câbles de démarrage mâle à mâle

Étape 1: Minuterie

Pour que la LED reste allumée pendant 1 minute, nous devons d'abord créer une minuterie. La carte Basys 3 a une fréquence interne de 100MHz faisant ainsi 100 millions de cycles égaux à 1 seconde. Ceci est ensuite utilisé comme une variable qui agira comme un nombre maximum pour le « t_cnt ». Le t_cnt augmente de 1 à mesure que la carte Basys 3 termine un cycle. Une fois qu'il atteint la barre des 100 millions, il se réinitialisera et une autre variable, "sec", augmentera de 1. Cette variable "sec" représente le nombre de secondes écoulées et une fois que cette variable est égale à 60, une minute complète s'est écoulée.

Copiez le code ci-dessous dans un fichier source vhdl nommé Timer.

l'entité COUNT_8B est

port (RESET: dans std_logic;

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

fin COUNT_8B;

l'architecture my_count de COUNT_8B est

constante max_count: entier:= (100000000); --signal t_cnt: std_logic_vector (7 jusqu'à 0):= "00000000"; signal t_cnt: entier:= (0); début du processus (CLK, RESET, t_cnt) variable sec: entier:= 0; begin if (rising_edge(CLK)) then if (RESET = '1') then t_cnt <= (0); -- clear elsif (t_cnt = max_count) alors -- max_count est de 100 millions ce qui équivaut à 1 seconde t_cnt <= (0); -- Réinitialise l'horloge interne à 0 sec:= sec + 1; -- Augmente notre 'horloge lente' de 1 si (sec = 60) alors -- Une fois qu'il atteint 60 secondes, il a atteint le temps maximum sec:= 0; -- Réinitialise "l'horloge lente" à 0 T <= '1'; fin si; sinon t_cnt <= t_cnt + 1; -- augmente l'horloge interne T <= '0'; fin si; fin si; processus final; fin mon_compte;

Étape 2: Optimisation des boutons

LED
LED

Étant donné que la fréquence dans les cartes Basys est si élevée (environ 100 MHz) lorsque vous appuyez sur ce que vous pensez être un court laps de temps sur la carte Basys, vous appuyez dessus 100 000 fois. Cela provoque le clignotement rapide de la lumière entre l'état allumé et éteint. Nous avons tenté d'optimiser le bouton en créant un diagramme d'état pour réduire le scintillement.

Les d-flip-flops conserveront chaque état, puis nous spécifierons les transitions d'état dans l'instruction de processus.

Copiez le code ci-dessous dans un fichier source vhdl nommé Button.

bibliothèque IEEE; utiliser IEEE. STD_LOGIC_1164. ALL;

le bouton d'entité est

Port (btn: dans STD_LOGIC; clk: dans STD_LOGIC; E: out STD_LOGIC); bouton de fin;

architecture Le comportement du bouton est

type state_type est (APPUYÉ, NP); signal PS, NS: state_type:= NP;

commencer

seq_proc: process(NS, clk) begin if(rising_edge(clk)) then PS <= NS; fin si; fin du processus seq_proc;

ns_proc: processus (btn, PS)

commencer le cas PS est quand NP => if (btn = '1') alors NS <= PRESSED; E <= '1'; sinon NS <= NP; E si (btn = '0') alors NS <= NP; E <='0'; sinon NS <= APPUYÉ; E <= '0'; fin si; cas d'extrémité; fin du processus ns_proc;

mettre fin au comportement;

Étape 3: DEL

La LED a deux états: OFF (ou IDLE) et ON. Comme dit précédemment, les états sont stockés dans une d-flip-flop. La lumière s'allumera si le capteur détecte un mouvement (S=1) ou lorsqu'un bouton est enfoncé (E=1). La LED s'éteint automatiquement si la minuterie atteint 1 minute (T=1) ou manuellement lorsqu'un bouton est enfoncé (E=1).

Copiez le code ci-dessous dans un fichier source vhdl nommé LED.

l'entité motion_sensored_light est le port (S: dans STD_LOGIC; -- sesnor; Port JA10/Pin G3 E: dans STD_LOGIC; -- bouton externe pour la fonction manuelle; bouton central T: dans STD_LOGIC; -- lorsque la minuterie atteint le temps maximum; à partir de la LED de la minuterie: out STD_LOGIC; -- light TRST: out STD_LOGIC; -- réinitialise le timer clk: in STD_LOGIC); -- clk pour les bascules qui contiennent les états end motion_sensored_light;

architecture Le comportement de motion_sensored_light est

type state_type est (ST0, ST1); --ST0 = RALENTI, ST1 = LED HAUT

signal PS, NS: state_type:=ST0; -- ÉTAT PRÉSENT ET ÉTAT SUIVANT, commence à ST0 IDLE

commencer

-- bloc de processus de la bascule -- met à jour l'état sur le front montant de l'horloge seq_proc: process(NS, clk) begin -- d bascule qui maintient les états if(rising_edge(clk)) alors PS <= NS; fin si; fin du processus seq_proc;

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

commencer le cas PS est lorsque ST0 => LED <= '0'; -- sorties pour l'état de repos TRST <= '1'; si (S = '0' OU E = '1') alors -- entrées pour la transition de st0 à st1 NS <= ST1; sinon LED NS <= '1'; -- sorties pour état ON TRST <= '0'; if (E = '1' OR T = '1') then -- entrées dans pour passer de st1 à st0 NS <= ST0; sinon NS <= ST1; fin si; cas d'extrémité; fin du processus ns_proc;

mettre fin au comportement;

Étape 4: Fichier supérieur

Maintenant, nous allons mapper tous nos autres fichiers en un seul.

Copiez le code ci-dessous dans un fichier source vhdl nommé Top_File.

bibliothèque IEEE; utiliser IEEE. STD_LOGIC_1164. ALL;

l'entité Top_File est

Port (S: in STD_LOGIC:= '1'; -- sesnor; Port JA10/Pin G3 btn: in STD_LOGIC:= '0'; -- bouton externe pour fonction manuelle; Center Button LED: out STD_LOGIC; -- light clk: dans STD_LOGIC); -- clk pour la bascule qui contient les états finaux Top_File;

architecture Le comportement de Top_File est

le composant COUNT_8B est

port (RESET: dans std_logic:= '0'; CLK: dans std_logic; T: out std_logic:= '0'); composant final; le composant motion_sensored_light est le port (S: dans STD_LOGIC; -- sesnor; Port JA10/Pin G3 E: dans STD_LOGIC; -- bouton externe pour la fonction manuelle; bouton central T: dans STD_LOGIC; -- lorsque la minuterie atteint le temps maximum; à partir de la LED de la minuterie: out STD_LOGIC; -- light TRST: out STD_LOGIC; -- réinitialise le timer clk: in STD_LOGIC); -- clk pour la bascule qui contient le composant de fin d'état; le bouton du composant est Port (btn: in STD_LOGIC; clk: in STD_LOGIC; E: out STD_LOGIC); composant final; signal t_atteint_c: std_logic; -- signal r_time_c: std_logic; --signal button_c: std_logic;

commencer

minuteur: COUNT_8B mappage de ports (RESET => r_time_c, CLK => CLK, T => t_reached_c); motion_sensor: motion_sensored_light carte des ports (S => S, E => button_c, T => t_reached_c, LED => LED, TRST => r_time_c, clk => clk); button_controller: carte des ports du bouton (btn => btn, clk => clk, E => button_c); mettre fin au comportement;

Étape 5: Fichier de contraintes

Maintenant, nous devons définir où nos entrées et sorties seront sur la carte.

Copiez le code ci-dessous dans un fichier de contraintes vhdl nommé Constraints.

## Ce fichier est un.xdc général pour la carte Basys3 rev B## Pour l'utiliser dans un projet: ## - décommentez les lignes correspondant aux broches utilisées ## - renommez les ports utilisés (dans chaque ligne, après get_ports) en fonction aux noms de signaux de niveau supérieur dans le projet

## Signal d'horloge

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] ## Commutateurs #set_property PACKAGE_PIN}s [w[port_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_ports] #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_[4sproperty 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 PACKAGE_PIN W14 [get_port [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}sw1 [get_ports {sw[12]}] {set_property PACKAGE_PIN}sw] #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]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw[15]}]

## 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_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

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

##Boutons

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 En-tête 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 IOST 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 En-tête 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_portsOST {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 LVCMOS33 [get_ports JB[7]}]

##Pmod En-tête 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_portsOST {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 LVCMOS33 [get_ports JC[7]}]

## En-tête 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_ports PACKAGE_PIN L3 [XADC[0]}] #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 IOSTANDARD_CARDty K3 [get_ports} {JXOSTAND_ports} 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_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]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JXADC[7]}]

##Connecteur 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 LVC_MOS33 [get_property PACKAGE_PIN H19 [get_ports {vgaRed[1]}port }] #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 LVCMOS[33AND[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]ports {vgaBlue[1]ports 33 [get_property LVCMOS IOSTANDARD 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 LMOS IOST33AND 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_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_PINARD P19 [get_ports Hsyncerty] #set_ports Hsync Hsync] #set_property PACKAGE_PIN R19 [get_ports Vsync] #set_property IOSTANDARD LVCMOS33 [get_ports Vsync]

##Interface 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 PS2Data2Data INPOST] #set_property PS2Clk] #set_property PACKAGE_PIN B17 [get_ports PS2Data2Data INPOST] #set_property PS2Clk]

##Quad SPI Flash

##Notez que CCLK_0 ne peut pas être placé dans les appareils de la série 7. Vous pouvez y accéder en utilisant la primitive ##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]port}] #set_property IOSTANDARD {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 LDB[3]}] {set_property LDB[MOS[33] 3]}] #set_property PACKAGE_PIN K19 [get_ports QspiCSn] #set_property IOSTANDARD LVCMOS33 [get_ports QspiCSn]

Étape 6: Câblage du capteur de mouvement PIR

Câblage du capteur de mouvement PIR
Câblage du capteur de mouvement PIR
Câblage du capteur de mouvement PIR
Câblage du capteur de mouvement PIR

Le capteur de mouvement PIR a trois broches: alimentation, masse et alarme respectivement (voir la première image). Le capteur de mouvement suggéré dans cette instructable peut se connecter directement à la planche à pain. Mais pour le capteur que nous avons utilisé, nous avons dû couper et dénuder les fils, puis souder les extrémités exposées pour les empêcher de s'effilocher. Sur la planche à pain, insérez un cavalier mâle-femelle en série avec les broches d'alimentation et de terre, puis un cavalier mâle-mâle en série avec la broche d'alarme (voir la deuxième photo).

Étape 7: Câblage de la LED dans la planche à pain

Câblage de la LED dans la planche à pain
Câblage de la LED dans la planche à pain
Câblage de la LED dans la planche à pain
Câblage de la LED dans la planche à pain

Branchez la LED dans la planche à pain. Insérez un câble cavalier noir mâle à mâle en série avec le fil court de la LED. Ensuite, branchez un câble de raccordement mâle à mâle de couleur différente en série avec le long fil de la LED.

Étape 8: Connexions de la carte Basys

Connexions de la carte Basys
Connexions de la carte Basys

Connectez les extrémités femelles du capteur de mouvement PIR à la source de tension de 5 volts sur la carte basys. Ensuite, connectez le fil de terre LED mâle à la terre du port latéral, puis le fil d'alarme du capteur de mouvement PIR, puis le fil d'entrée LED (comme on le voit sur l'image).

Conseillé: