Table des matières:
- Étape 1: Minuterie
- Étape 2: Optimisation des boutons
- Étape 3: DEL
- Étape 4: Fichier supérieur
- Étape 5: Fichier de contraintes
- Étape 6: Câblage du capteur de mouvement PIR
- Étape 7: Câblage de la LED dans la planche à pain
- Étape 8: Connexions de la carte Basys
Vidéo: LED à détection de mouvement : 8 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:09
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
É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
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
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
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é:
Détection de mouvement et d'obscurité de la veilleuse - Pas de micro : 7 étapes (avec photos)
Night Light Motion & Darkness Sensing - No Micro : cette instructable vous empêche de vous cogner l'orteil lorsque vous marchez dans une pièce sombre. Vous pourriez dire que c'est pour votre propre sécurité si vous vous levez la nuit et essayez d'atteindre la porte en toute sécurité. Bien sûr, vous pouvez utiliser une lampe de chevet ou la lampe principale
Citrouille d'Halloween Arduino à détection de mouvement : 4 étapes
Motion Sensing Arduino Halloween Pumpkin : L'objectif derrière ce Instructable était de créer un moyen simple et bon marché de faire des décorations d'Halloween à la maison sans aucune compétence préalable ni aucun outil de fantaisie. En utilisant des éléments faciles à trouver sur Internet, vous pouvez également créer votre propre H
Veilleuse à LED pour lit de détection de mouvement automatique DIY : 6 étapes (avec photos)
Veilleuse à LED pour lit de détection de mouvement automatique DIY : Salut, les gars, bienvenue dans un autre instructable qui vous aidera toujours dans votre vie de tous les jours et ajoutera une commodité pour vous faciliter la vie. Cela pourrait parfois être une bouée de sauvetage en cas de personnes âgées qui ont du mal à se lever du lit
Suivi de mouvement 3D Tfcd grâce à la détection capacitive et à la sortie LED : 6 étapes (avec images)
Suivi de mouvement 3D Tfcd grâce à la détection capacitive et à la sortie LED : dans cette instruction, il est expliqué comment le mouvement d'une main peut être suivi dans un espace 3D en utilisant le principe de la détection capacitive. En changeant la distance entre une feuille d'aluminium chargée et votre main, la capacité du condensateur va varier
Sortie à contrôle de mouvement - À partir d'une lumière à détection de mouvement : 6 étapes
Sortie à contrôle de mouvement - À partir d'une lampe à détection de mouvement : Imaginez que vous êtes un trick-or-treater allant à la maison la plus effrayante du bloc. Après avoir dépassé toutes les goules, fantômes et cimetières, vous arrivez enfin au dernier chemin. Vous pouvez voir les bonbons dans un bol devant vous ! Mais soudain, un gho