İçindekiler:

Hareket Sensörlü LED: 8 Adım
Hareket Sensörlü LED: 8 Adım

Video: Hareket Sensörlü LED: 8 Adım

Video: Hareket Sensörlü LED: 8 Adım
Video: AKILLI MERDİVEN NASIL YAPILIR / ARDUİNO / HOW TO MAKE A SMART LADDER / KENDİN YAP / PIR SENSÖR / LED 2024, Temmuz
Anonim
Image
Image

Arka plan:

Derse veya işe gitmeden önce ya da yatmadan önce ışığı kapatmayı unuttunuz mu? Kullanmadığınız zamanlarda ışıkların açık olduğu saatler, maliyet ve enerji kaybına neden olabilir. Örneğin solarcity.com'a göre, bir hafta boyunca tüm gece ışıkları açık bırakmak elektrik faturanıza 25 dolar ekleyebilir! CPE133 projemiz için insanların evlerinde enerji tasarrufu yapmalarına ve ışıklarını verimli kullanmalarına yardımcı olacak bir hareket sensörlü ışık tasarladık.

Uygulamadaki sistemimiz:

Uygulamada, ışıklar yalnızca bir sensör odadaki hareketi algıladığında açılır. Ardından ışıklar, yaklaşık 30 dakika gibi belirli bir süre açık kalacak ve ardından otomatik olarak kapanacaktır. Ama diyelim ki, oradan geçiyordunuz ya da belirlenen süre bitmeden odayı erkenden terk etmek istediniz. Bu durumlar için, ışıkları manuel olarak açıp kapatabileceğiniz bir düğme kurduk. Işıklar manuel veya otomatik olarak açıldığında bile ışıkların 30 dakika boyunca açık kalacağını unutmayın (ışıklar manuel olarak kapatılmadığı sürece).

Gemide simülasyon:

Zamanlayıcının çalıştığını görmek için zamanlayıcıyı 1 dakikaya değiştirdik.

Malzemeler:

  • 1 Basys board (Digilent'ten bir tane bulabilirsiniz)
  • 1 PIR hareket sensörü (Amazon'da bir tane bulabilirsiniz)
  • 1 breadboard ve kit (bunu Amazon'dan kullanmanızı öneririz)
  • Yukarıdaki kitten

    • 1 LED
    • 3 dişiden erkeğe atlama kablosu
    • 6 erkekten erkeğe atlama kablosu

Adım 1: Zamanlayıcı

LED'in 1 dakika açık kalması için önce bir timer oluşturmalıyız. Basys 3 kartının dahili frekansı 100 MHz'dir, bu nedenle 100 milyon döngü 1 saniyeye eşittir. Bu daha sonra “t_cnt” için maksimum sayı olarak hareket edecek bir değişken olarak kullanılır. Basys 3 kartı bir döngüyü tamamladıkça t_cnt 1 artar. 100 milyon işaretine ulaştığında sıfırlanacak ve başka bir değişken olan "sn" 1 artacaktır. Bu "sn" değişkeni geçen saniye sayısını temsil eder ve bu değişken 60'a eşit olduğunda tam bir dakika geçmiş olur.

Aşağıdaki kodu Timer adlı bir vhdl kaynak dosyasına kopyalayın.

COUNT_8B varlığı

bağlantı noktası (RESET: std_logic'te;

CLK: std_logic'te; T: çıkış std_logic:= '0');

COUNT_8B sonu;

my_count / COUNT_8B mimarisi:

sabit max_count: tamsayı:= (1000000000); --signal t_cnt: std_logic_vector(7'den 0'a kadar):= "00000000"; sinyal t_cnt: tamsayı:= (0); işlemi başlat (CLK, RESET, t_cnt) değişken sec: tamsayı:= 0; start if (rising_edge(CLK)) sonra if (RESET = '1') o zaman t_cnt <= (0); -- elsif'i temizle (t_cnt = max_count) o zaman -- max_count 100 milyondur, bu 1 saniyeye eşittir t_cnt <= (0); -- Dahili saati 0 sn'ye sıfırlar:= sn + 1; -- Eğer (sn = 60) ise 'yavaş saatimizi' 1 artırır o zaman -- 60 saniyeye ulaştığında maksimum saniye süresine ulaşmış olur:= 0; -- "Yavaş saati" 0 T <= '1' olarak sıfırlar; eğer son; başka t_cnt <= t_cnt + 1; -- dahili saati artırır T <= '0'; eğer son; eğer son; bitiş süreci; my_count'u sonlandır;

2. Adım: Düğme Optimizasyonu

LED
LED

Basys panolarındaki frekans çok yüksek olduğundan (yaklaşık 100 MHz), Basys panosuna kısa bir süre olduğunu düşündüğünüz bir süre için bastığınızda, ona 100.000 kez basmış olursunuz. Bu, ışığın açık ve kapalı durumu arasında hızla titremesine neden olur. Titremeyi azaltmak için bir durum diyagramı oluşturarak düğmeyi optimize etmeye çalıştık.

d-flip-flop'lar her durumu tutacak ve daha sonra süreç ifadesinde durum geçişlerini belirteceğiz.

Aşağıdaki kodu Button adlı bir vhdl kaynak dosyasına kopyalayın.

kitaplık IEEE;IEEE. STD_LOGIC_1164. ALL kullanın;

varlık düğmesi

Port (btn: STD_LOGIC'de; clk: STD_LOGIC'de; E: STD_LOGIC'de); bitiş düğmesi;

mimari Düğmenin davranışı

tür durum_türü (BASKILI, NP); sinyal PS, NS: durum_tipi:= NP;

başlamak

seq_proc: process(NS, clk) başlar if(rising_edge(clk)) sonra PS <= NS; eğer son; işlemi sonlandır seq_proc;

ns_proc: süreç(btn, PS)

başlangıç durumu PS olduğunda NP => ise (btn = '1') ise NS <= BASILI; E <= '1'; başka NS <= NP; E ise (btn = '0') o zaman NS <= NP; E <='0'; başka NS <= BASILI; E <= '0'; eğer son; son durum; işlemi sonlandır ns_proc;

son Davranış;

Adım 3: LED

LED'in iki durumu vardır: KAPALI (veya BOŞTA) ve AÇIK. Daha önce söylendiği gibi, durumlar bir d-flip-flop'ta saklanır. Sensör hareket algıladığında (S=1) veya bir düğmeye basıldığında (E=1) ışık dönecektir. LED, zamanlayıcı 1 dakikaya ulaştığında (T=1) otomatik olarak veya bir düğmeye basıldığında (E=1) manuel olarak kapanacaktır.

Aşağıdaki kodu LED adlı bir vhdl kaynak dosyasına kopyalayın.

entity motion_sensored_light Port'tur (S: STD_LOGIC'de; -- sesnor; Port JA10/Pin G3 E: STD_LOGIC'de; -- manuel işlev için harici düğme; Orta Düğme T: STD_LOGIC'de; -- zamanlayıcı maksimum süreye ulaştığında; Zamanlayıcı LED'inden: çıkış STD_LOGIC; -- hafif TRST: çıkış STD_LOGIC; -- zamanlayıcıyı sıfırlar clk: STD_LOGIC'de); -- son durumları tutan flip flop için clk motion_sensored_light;

mimari motion_sensored_light davranışı:

tip durum_tipi (ST0, ST1); --ST0 = BOŞTA, ST1 = YÜKSEK LED

sinyal PS, NS: durum_tipi:=ST0; -- MEVCUT DURUM VE SONRAKİ DURUM, ST0 BOŞTA'da başlar

başlamak

-- flip flop'un süreç bloğu -- saatin yükselen kenarındaki durumu günceller seq_proc: process(NS, clk) startup -- d flip flop if(rising_edge(clk)) sonra PS <= NS; eğer son; işlemi sonlandır seq_proc;

ns_proc: süreç(S, E, T, PS)

PS, ST0 => LED <= '0'; -- boş durum için çıkışlar TRST <= '1'; if (S = '0' VEYA E = '1') o zaman -- st0'dan st1'e geçiş için girişler NS <= ST1; başka NS LED'i <= '1'; -- TRST durumu için çıktılar <= '0'; if (E = '1' VEYA T = '1') o zaman -- st1'den st0'a geçiş için girişler NS <= ST0; başka NS <= ST1; eğer son; son durum; işlemi sonlandır ns_proc;

son Davranış;

4. Adım: En İyi Dosya

Şimdi diğer tüm dosyalarımızı tek bir dosyaya taşıyacağız.

Aşağıdaki kodu Top_File adlı bir vhdl kaynak dosyasına kopyalayın.

kitaplık IEEE;IEEE. STD_LOGIC_1164. ALL kullanın;

varlık Top_File (şimdiki değeri)

Port (S: STD_LOGIC'de:= '1'; -- sesnor; Port JA10/Pin G3 btn: STD_LOGIC'de:= '0'; -- manuel işlev için harici düğme; Orta Düğme LED'i: out STD_LOGIC; -- hafif clk: STD_LOGIC'de); -- son durumları tutan flip flop için clk Top_File;

Top_File mimarisinin Davranışı

COUNT_8B bileşeni:

bağlantı noktası (RESET: std_logic içinde:= '0'; CLK: std_logic içinde; T: std_logic çıkışı:= '0'); uç bileşen; motion_sensored_light bileşeni Bağlantı Noktasıdır (S: STD_LOGIC'de; -- sesnor; Bağlantı Noktası JA10/Pin G3 E: STD_LOGIC'de; -- manuel işlev için harici düğme; Orta Düğme T: STD_LOGIC'de; -- zamanlayıcı maksimum süreye ulaştığında; Zamanlayıcı LED'inden: çıkış STD_LOGIC; -- hafif TRST: çıkış STD_LOGIC; -- zamanlayıcıyı sıfırlar clk: STD_LOGIC'de); -- durum bitiş bileşenini tutan flip flop için clk; bileşen düğmesi Bağlantı Noktasıdır (btn: STD_LOGIC'de; clk: STD_LOGIC'de; E: STD_LOGIC'de); uç bileşen; sinyal t_reached_c: std_logic; -- sinyal r_time_c: std_logic; -- sinyal button_c: std_logic;

başlamak

zamanlayıcı: COUNT_8B bağlantı noktası haritası(SIFIRLA => r_time_c, CLK => CLK, T => t_reached_c); motion_sensor: motion_sensored_light bağlantı noktası haritası(S => S, E => button_c, T => t_reached_c, LED => LED, TRST => r_time_c, clk => clk); button_controller: düğme bağlantı noktası haritası(btn => btn, clk => clk, E => button_c); son Davranış;

Adım 5: Kısıtlama Dosyası

Şimdi girdilerimizin ve çıktılarımızın tahtada nerede olacağını tanımlamamız gerekiyor.

Aşağıdaki kodu Constraints adlı bir vhdl kısıtlamaları dosyasına kopyalayın.

## Bu dosya Basys3 rev B kartı için genel bir.xdc dosyasıdır## Bir projede kullanmak için: ## - kullanılan pinlere karşılık gelen satırların yorumunu kaldırın ## - kullanılan bağlantı noktalarını (her satırda, get_ports'tan sonra) yeniden adlandırın projedeki en üst seviye sinyal isimlerine

## Saat sinyali

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] ## Anahtarlar #set_property PACKAGE_PIN V17 [w] 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] #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 [w_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 PACKget_PIN [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[END9]}] #set_ 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} {w[1] #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'ler

#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 {led[get_port] }] #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 {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_portCMOS33 [get 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 U [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 LACKAGE_PIN [get_ports {led[15]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led[15]}] ##7 segment ekranı #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] }] #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]}]

##Düğmeler

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 Başlığı 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_property 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_6]}] {J 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 Başlık 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_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_LVCMOS JB[7]}]

##Pmod Başlık 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 IOSTANDARD_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 JC[7]}]

##Pmod Başlığı 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] {JXAD_PIN L3} [get] #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#ch name {JXADC}] = 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[3] 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 = XA3erty 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_properLV [get_ports {JXADC[7]}]

##VGA Bağlayıcı

#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]CM_ed}] #set_property IOSTANDARD }] #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]ed[3]ed}] #set_property IOSTANDARD 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]}] #setARD_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]}] #setARD_property IOST33 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[2] {vgaGre] 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 P19sync [get_set_ports Hsync] #set_property PACKAGE_PIN R19 [get_ports Vsync] #set_property IOSTANDARD LVCMOS33 [get_ports Vsync]

##USB-RS232 Arayüzü

#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] #set_set_getproperty [get_ports PS2Data]

##Dörtlü SPI Flaşı

##CCLK_0'ın 7 serisi cihazlara yerleştirilemeyeceğini unutmayın. ##STARTUPE2 ilkelini kullanarak buna erişebilirsiniz. #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]_CM_CM] #set_property IOSTANDARD] }] #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 IOSTANDARD s 3]}] #set_property PACKAGE_PIN K19 [get_ports QspiCSn] #set_property IOSTANDARD LVCMOS33 [get_ports QspiCSn]

Adım 6: PIR Hareket Sensörünü Kablolama

PIR Hareket Sensörünü Kablolama
PIR Hareket Sensörünü Kablolama
PIR Hareket Sensörünü Kablolama
PIR Hareket Sensörünü Kablolama

PIR hareket sensörünün üç pimi vardır: sırasıyla güç, gnd ve alarm (ilk resme bakın). Bu talimatta önerilen hareket sensörü, doğrudan devre tahtasına bağlanabilir. Ancak kullandığımız sensör için kabloları kesip soymamız ve ardından yıpranmamaları için açıkta kalan uçları lehimlememiz gerekiyordu. Breadboard üzerine, güç ve topraklama pimleri ile seri olarak bir erkek-dişi köprü teli ve ardından alarm pimi ile seri olarak bir erkek-dişi köprü teli takın (ikinci resme bakın).

Adım 7: Breadboard'daki LED'i Kablolama

Breadboard'daki LED'i Kablolama
Breadboard'daki LED'i Kablolama
Breadboard'daki LED'i Kablolama
Breadboard'daki LED'i Kablolama

LED'i breadboard'a takın. LED'in kısa ucuyla seri olarak siyah bir erkekten erkeğe atlama kablosu takın. Ardından, LED'in uzun ucuyla seri olarak farklı renkte erkekten erkeğe atlama kablosunu takın.

Adım 8: Basys Board Bağlantıları

Basys Board Bağlantıları
Basys Board Bağlantıları

PIR hareket sensörünün dişi uçlarını basys kartındaki 5 voltluk voltaj kaynağına bağlayın. Ardından erkek LED topraklama kablosunu yan bağlantı noktasının toprağına, ardından PIR hareket sensöründen gelen alarm kablosunu ve ardından LED giriş kablosunu (resimde görüldüğü gibi) bağlayın.

Önerilen: