ዝርዝር ሁኔታ:
- ደረጃ 1 የግቤት ቆጣሪን ይፍጠሩ
- ደረጃ 2 የ LED ሰዓት መከፋፈያ ይፍጠሩ
- ደረጃ 3 የ LED መቆጣጠሪያን መፍጠር
- ደረጃ 4 - ገደቦችን እና ስብሰባን ማቋቋም
- ደረጃ 5 - የእርስዎን Dimmer መቀየሪያ በመጠቀም
ቪዲዮ: Basys 3 ቦርድ በመጠቀም ሊለዋወጥ የሚችል LED: 5 ደረጃዎች
2024 ደራሲ ደራሲ: John Day | [email protected]. ለመጨረሻ ጊዜ የተሻሻለው: 2024-01-30 07:31
በዚህ መመሪያ ውስጥ እኛ ውጫዊ የ LED የማደብዘዝ ስርዓትን እንገነባለን እና እንቆጣጠራለን። በሚገኙ አዝራሮች አማካኝነት ተጠቃሚው የ LED አምፖሉን ወደሚፈለገው ብሩህነት ማደብዘዝ ይችላል። ስርዓቱ የ Basys 3 ሰሌዳውን ይጠቀማል ፣ እና ተከላካይ እና የ LED አምፖሉን ከያዘው የዳቦ ሰሌዳ ጋር ተገናኝቷል። የተሰየመውን “ወደ ላይ” ቁልፍን መጫን ብሩህነትን ይጨምራል ፣ እና “ታች” ቁልፍን መጫን ብሩህነትን እስከ ዜሮ ድረስ ይቀንሳል። ይህ ተጠቃሚው እንደ ፀሃይ ብርሃን አምፖሎች እንዳይታወር ብቻ ሳይሆን ኃይልንም ይቆጥባል!
ደረጃ 1 የግቤት ቆጣሪን ይፍጠሩ
ለእዚህ ደረጃ ሁለት መቀያየሪያዎችን በመጠቀም አንድ የብሩህነት ደረጃን (በሰዓት በኩል) የሚወስን አካል እንፈጥራለን -አንድ ለመጨመር እና አንድ ለመቀነስ። ቪኤችዲኤልን በመጠቀም ፣ በዲ Flip-flops በመጠቀም ቆጣሪውን አዘጋጅተናል። የ “ላይ” ቁልፍን በመጫን ቀጣዩን ሁኔታ ወደ የአሁኑ ሁኔታ ይገፋፋል ፣ ወደ ሰባት ክፍል ማሳያ እና የ LED አምፖሉን ያወጣል።
አካል updown_counter ነው
ወደብ (የአሁኑ_ክልል: ከ STD_LOGIC_VECTOR (3 እስከ 0)) ፤ ቀዳሚ_ክልል ፦ በ STD_LOGIC_VECTOR (3 ታች እስከ 0) ፤ የሚቀጥለው -ግዛት በ STD_LOGIC_VECTOR (3 ወደ 0) updown_counter መጨረሻ; ሥነ -ሕንፃ የ updown_counter ባህርይ መውደቅ ይጀምራል -ሂደት (ቀጣይ_state ፣ clk ፣ up_enable ፣ down_enable ፣ previous_state) የሚጀምረው (የሚወጣበት_ክልል (clk)) ከሆነ (up_enable = '1' እና ካልሆነ (next_state = "0000"))) ከዚያም present_state <= ቀጣይ_ክልል; elsif (down_enable = '1' እና አይደለም (previous_state = "1111")) ከዚያም present_state <= previous_state; ከሆነ ያበቃል; ከሆነ ያበቃል; መጨረሻ ሂደት flop; የባህሪ መጨረሻ;
እንዲሁም እያንዳንዱ ግቤት እንዲጣበቅ (በሚነሳበት ጊዜ) ሰዓት ያስፈልገናል ፣ ስለሆነም በእያንዳንዱ የብሩህነት ደረጃ መካከል ቁልፎቹ ምን ያህል በፍጥነት እንደሚጫኑ የሚወስን የሰዓት ክፍፍል ፈጥረናል። ይህ የሰዓት መከፋፈያ በሰባቱ ክፍል ማሳያ ላይ ትክክለኛውን ደረጃ በትክክል ለማሳየት እና ለእያንዳንዱ ደረጃ ትክክለኛውን የጥንካሬ ደረጃ ለማምረት ያስችለናል።
አካል counter_clkDiv ነው
ወደብ (clk: በ std_logic ፣ sclk: out std_logic); መጨረሻ counter_clkDiv; የ counter_clkDiv ሥነ ሕንፃ my_clk_div የማያቋርጥ max_count: ኢንቲጀር = = (10000000); ምልክት tmp_clk: std_logic = '0'; my_div: ሂደት (clk ፣ tmp_clk) ተለዋዋጭ div_cnt: ኢንቲጀር = 0; ከሆነ (የሚነሳው_ገደል (clk)) ከዚያም (div_cnt> = MAX_COUNT) ከሆነ tmp_clk <= tmp_clk አይደለም ፤ div_cnt: = 0; ሌላ div_cnt: = div_cnt + 1; ከሆነ ያበቃል; ከሆነ ያበቃል; sclk <= tmp_clk; የማጠናቀቂያ ሂደት my_div; የእኔ_clk_div ጨርስ;
ደረጃ 2 የ LED ሰዓት መከፋፈያ ይፍጠሩ
ለዚህ ደረጃ 16 የተለያዩ የጥንካሬ ደረጃዎችን ለመወሰን ለ LED አምፖሉ የሰዓት ክፍፍል እንፈጥራለን። 0 ከፍተኛውን ብሩህነት በማሳየት ወደ 15 ሲጠጋ ፣ የሰዓት መከፋፈሉ እያንዳንዱን ቁልፍ በመጫን እኛ የብሩህነት ደረጃዎች ለመሆን ባደረግነው መሠረት ይጨምራል። እያንዳንዱ የመጨመር ደረጃ ማለት ለ LED አምፖሉ የሰዓት ጭማሪ ማለት ነው። ብሩህነት በመስመር ላይ እንደማይጨምር በማስታወስ ፣ ሰዓቱን ወደሚችለው ከፍ አድርገን በመያዝ ሰዓቶቻችንን በዚህ መሠረት ቀንሰናል።
ማሳሰቢያ: እኛ ሰማያዊ ኤልኢዲ እየተጠቀምን ነው። የተለየ ቀለም (እንደ ቀይ) መጠቀም ትንሽ ለየት ያሉ ሰዓቶችን ይጠይቃል። ለሰማያዊ የመካከለኛ ብሩህነት ቅንብር ቀድሞውኑ ለቀይ ከፍተኛ ብሩህነት ሊሆን ይችላል። ይህ የሚሆነው የተለያዩ የብርሃን ሞገዶች የተለያዩ የኃይል መጠን ስለሚፈልጉ ፣ እንደ ሐምራዊ እና ሰማያዊ ያሉ ቀዝቃዛ ቀለሞች የበለጠ ኃይል የሚሹ ሲሆኑ ፣ እንደ ቀይ እና ብርቱካናማ ያሉ ሞቅ ያሉ ቀለሞች ደግሞ ያነሰ ኃይል ይጠይቃሉ።
አካል led_clkDiv ወደብ (የአሁኑ_ክልል በ STD_LOGIC_VECTOR (3 ወደ 0) ፣ clk: በ STD_LOGIC ፣ led_clk: ከ STD_LOGIC ውጭ) ፤ መጨረሻ led_clkDiv; አርክቴክቸር የ led_clkDiv ባህሪ tmp_clk ነው: std_logic = '0'; የተጋራ ተለዋዋጭ max_count: ኢንቲጀር ፤ count_stuff: process (present_state) case case_state የሚጀምረው "0000" => max_count = 0; መቼ "0001" => max_count: = 2; መቼ "0010" => max_count: = 4; መቼ "0011" => max_count: = 6; መቼ "0100" => max_count: = 8; መቼ "0101" => max_count: = 10; መቼ "0110" => max_count: = 12; መቼ "0111" => max_count: = 14; መቼ "1000" => max_count: = 16; መቼ "1001" => max_count: = 25; መቼ "1010" => max_count: = 50; መቼ "1011" => max_count: = 100; መቼ "1100" => max_count: = 150; መቼ "1101" => max_count: = 200; መቼ "1110" => max_count: = 250; መቼ "1111" => max_count: = 300; የመጨረሻ ጉዳይ; የማጠናቀቂያ ሂደት ብዛት_ቁሶች; my_div: ሂደት (clk ፣ tmp_clk ፣ present_state) ተለዋዋጭ div_cnt: ኢንቲጀር = 0; ከሆነ (የሚነሳው_ገደል (clk)) ከዚያም (div_cnt> = max_count) ከሆነ tmp_clk <= tmp_clk አይደለም ፤ div_cnt: = 0; ሌላ div_cnt: = div_cnt + 1; ከሆነ ያበቃል; ከሆነ ያበቃል; led_clk <= tmp_clk; የማጠናቀቂያ ሂደት my_div; የባህሪ መጨረሻ;
ደረጃ 3 የ LED መቆጣጠሪያን መፍጠር
አሁን ይህን ያደረግነው ፣ እስከ አሁን የፈጠርናቸውን ሁሉንም ክፍሎች በ LED መቆጣጠሪያ ፋይል ውስጥ ማዋሃድ ጊዜው አሁን ነው።
ለማጠቃለል ፣ ያገለገሉ አካላት የሚከተሉት ናቸው።
- የግቤት ቆጣሪ (updown_counter)
- የሰዓት ከፋይ (counter_clkDiv)
- የ LED ሰዓት መከፋፈያ (led_clkDiv)
- ባለ ሰባት ክፍል ማሳያ ሾፌር (sseg_dec) (የተያያዘ ፋይል)
በሰባቱ ክፍል የማሳያ ሾፌሩ ቀደም ሲል አልተወያየም ነበር ምክንያቱም እኛ በረጅሙ እና በተወሳሰበ ኮድ ምክንያት የ VHDL ፋይልን ከዶክተር ብሪያን ሜሊ ተውሰናል። እሱ የሚያደርገው ነገር ምን ያህል የብሩህነት ደረጃ እንዳለን እንዲያውቁ የእኛን የአዝራር ግብዓቶች በ Basys 3 ሰሌዳ ላይ ወደ ሰባት-ክፍል ማሳያ መንዳት ነው።
ወደ ፊት በመሄድ ፣ የ LED መቆጣጠሪያው ሁለቱንም ሰባተኛ ክፍል ማሳያ እና የ LED አምፖሉን የብሩህነት ደረጃ የሚቆጣጠረውን ቆጠራ ለመጨመር ወይም ለመቀነስ ተንሸራታቾችን ይጠቀማል።
አካል ቆጣሪ ወደብ ነው (clk: በ STD_LOGIC ውስጥ ፣ ሊነሳ የሚችል ፦ በ STD_LOGIC ውስጥ ፣ ወደ ታች የሚቻል ፦ በ STD_LOGIC ውስጥ; ምልክቶች: ከ STD_LOGIC_VECTOR (7 እስከ 0); DISP_EN: ከ STD_LOGIC_VECTOR (3 እስከ 0); led_clG: ውጭ) ማብቂያ ቆጣሪ; የሕንፃ ሥነ -ምግባር የባህሪ ባህርይ አካል ማዘመን ነው_ኮውተር ወደብ ነው (የአሁኑ_ክልል -ውጭ STD_LOGIC_VECTOR (3 እስከ 0) ፣ ቀዳሚ_መንግሥት ፦ በ STD_LOGIC_VECTOR (3 ዳውን 0) ፤ የሚቀጥለው -ሁኔታ በ STD_LOGIC_VECTOR (3 ወደ 0) ፤ clk: STD_LOGIC ውስጥ; STD_LOGIC ውስጥ ሊነሳ የሚችል ፦ በ STD_LOGIC ውስጥ); የማጠናቀቂያ ክፍል updown_counter; ክፍል counter_clkDiv ወደብ ነው (clk: std_logic ውስጥ; sclk: out std_logic); የመጨረሻ ክፍል counter_clkDiv; ክፍል sseg_dec ወደብ ነው (ALU_VAL: በ std_logic_vector (7 downto 0) ፤ SIGN: in std_logic; VALID: std_logic ውስጥ ፦ CLK: std_logic ውስጥ ፤ DISP_EN: out std_logic_vector (3 downto 0); SEGMENTS: out std_logic ወደ ውጭ); መጨረሻ ክፍል sseg_dec; ክፍል led_clkDiv ወደብ ነው (የአሁኑ_ክልል በ STD_LOGIC_VECTOR (3 ታች 0) ፤ clk: በ STD_LOGIC ውስጥ; led_clk: ከ STD_LOGIC ውጭ); መጨረሻ ክፍል led_clkDiv; ምልክት present_state: STD_LOGIC_VECTOR (3 ወደ 0): = "0000"; ምልክት next_state STD_LOGIC_VECTOR (3 ወደ 0): = "0000"; ምልክት ቀዳሚ_ክልል: STD_LOGIC_VECTOR (3 ወደ 0): = "0000"; ምልክት Alu_Val: STD_LOGIC_VECTOR (7 ወደ 0); ምልክት sclk: STD_LOGIC; Alu_Val (7 ወደ 4) <= "0000" ይጀምሩ Alu_Val (3 downto 0) <= present_state; next_state (0) <= አይደለም (የአሁኑ_ክልል (0)); next_state (1) <= present_state (0) xor present_state (1); next_state (2) <= (present_state (0) እና present_state (1)) xor present_state (2); next_state (3) <= (present_state (0) እና present_state (1) and present_state (2)) xor present_state (3); previous_state (0) <= አይደለም (የአሁኑ_ክልል (0)); previous_state (1) <= present_state (0) xnor present_state (1); previous_state (2) <= (present_state (0) nor present_state (1)) xor present_state (2); previous_state (3) sclk ፣ next_state => next_state ፣ previous_state => previous_state ፣ up_enable => up_enable ፣ down_enable => down_enable ፣ present_state => present_state) ፤ ማሳያ: sseg_dec የወደብ ካርታ (ALU_VAL => Alu_Val ፣ SIGN => '0' ፣ VALID => '1' ፣ CLK => clk ፣ DISP_EN => DISP_EN ፣ SEGMENTS => SEGMENTS) ፤ led_div: led_clkDiv ወደብ ካርታ (clk => clk ፣ present_state => present_state ፣ led_clk => led_clk); clk_div: counter_clkDiv ወደብ ካርታ (clk => clk, sclk => sclk); የባህሪ መጨረሻ;
ደረጃ 4 - ገደቦችን እና ስብሰባን ማቋቋም
ገደቦች
የ Basys 3 ሰሌዳውን በትክክል ለማቀናጀት እና ለማዘጋጀት ፣ ከዚህ ደረጃ ጋር የተያያዘውን የእኛን የእገዳዎች ፋይል ማቀናበር አለብን። የሚከተሉት ቅንብሮች ተስተካክለዋል ፦
አዝራሮች
- T18 ን ወደ “ሊነቃ የሚችል” (ብሩህነት ይጨምሩ) ተለውጧል
- U17 ን ወደ “down_enable” (ብሩህነት መቀነስ) ተለውጧል
7 ክፍል ማሳያ
- W7 ፣ W6 ፣ U8 ፣ V8 ፣ U5 ፣ V5 ፣ U7 ፣ V7 እያንዳንዱን የአንድ ማሳያ ክፍልን ይወክላል
- U2 ፣ U4 ፣ V4 ፣ W4 የሚታየውን እያንዳንዱን አንቶይድ ይወክላል (የእኛ ከፍተኛ ቁጥር 15 ስለሆነ ንቁ የሆኑት 2 ብቻ ናቸው)
PMOD ራስጌ JC
JC7 የኤልዲ አምፖሉን አንዱን ሽቦ የምናገናኝበት ሲሆን ሁለተኛው ሽቦ ወደ GROUND ይመራል።
ይህንን ሁሉ ካዋቀሩ በኋላ ማድረግ ያለብዎት ቢት ዥረትዎን (በየትኛውም ቪቫዶ በሚጠቀሙት ሶፍትዌር) ፣ ሰሌዳዎን በፕሮግራም ማበልፀግ ነው! እርስዎ እራስዎ የሥራ ቦርድ አግኝተዋል።
ማሳሰቢያ -የፒን ካርታ እዚህ በ Basys 3 የውሂብ ሉህ ላይ ሊገኝ ይችላል።
ስብሰባ
ደረጃ 5 - የእርስዎን Dimmer መቀየሪያ በመጠቀም
ሁሉም ነገር ደህና ከሆነ ፣ ሙሉ በሙሉ የሚሰራ የደመና ስርዓት ሊኖርዎት ይገባል። ለማጠቃለል ፣ የላይኛውን ቁልፍ መጫን ብሩህነትዎን (እስከ 15 ድረስ) ይጨምራል ፣ እና የታችኛውን ቁልፍ መጫን ብሩህነትዎን (እስከ 0 ድረስ) ይቀንሳል። አሁን ዘና ባለ እይታዎ ላይ ሁሉም ነገር መልካም እንደሚሆን ተስፋ ያድርጉ!
የሚመከር:
DIY -- አርዱዲኖ ኡኖን በመጠቀም ስማርትፎን በመጠቀም ሊቆጣጠር የሚችል የሸረሪት ሮቦት እንዴት እንደሚሠራ 6 ደረጃዎች
DIY || አርዱዲኖ ኡኖን በመጠቀም ስማርትፎን በመጠቀም ሊቆጣጠረው የሚችል የሸረሪት ሮቦት እንዴት እንደሚሠራ - የሸረሪት ሮቦት በሚሠራበት ጊዜ አንድ ሰው ስለ ሮቦቲክስ ብዙ ነገሮችን መማር ይችላል። ሮቦቶችን መሥራት አስደሳች እና ፈታኝ ነው። በዚህ ቪዲዮ ውስጥ የእኛን ስማርትፎን በመጠቀም ልንሠራበት የምንችለውን የሸረሪት ሮቦት እንዴት መሥራት እንደምንችል እናሳይዎታለን (አንድሮይ
የመሸጋገሪያ ቦርድ (ሊቆጣጠረው የሚችል የሙዚቃ ተመልካች) 5 ደረጃዎች
ትራንስሊንግ ቦርድ (ሊቆጣጠረው የሚችል የሙዚቃ ተመልካች) - በዚህ ሊበጅ በሚችል የብርሃን መቆጣጠሪያ ፕሮጀክት ሙዚቃን ወደ አስደናቂ ብርሃን ማሳያ ይተርጉሙ። ለዲጄዎች ፣ ለፓርቲዎች እና ለ 1: 1 ትርኢቶች ምርጥ! ከታች የተዘመነ ማሳያ
ሊለዋወጥ የሚችል ብርሃን ዳሳሽ የሌሊት ብርሃን - 8 ደረጃዎች (ከስዕሎች ጋር)
ሊለዋወጥ የሚችል ብርሃን አነፍናፊ የሌሊት ብርሃን - ይህ አስተማሪው በእጅ መዘጋት እንዲችል የሌሊት ብርሃን ዳሳሽ እንዴት እንደጠለፍኩ ያሳያል። በጥንቃቄ ያንብቡ ፣ ማንኛውንም የተከፈቱ ወረዳዎችን ያስቡ ፣ እና ከመሣሪያ ምርመራ በፊት አስፈላጊ ከሆነ አካባቢዎን ይዝጉ
የአርዱዲኖ ቦርድ በመጠቀም የ AVR ቦርድ እንዴት እንደሚዘጋጅ - 6 ደረጃዎች
የአርዱዲኖ ቦርድ በመጠቀም የ AVR ቦርድ እንዴት እንደሚዘጋጅ - በዙሪያው የተቀመጠ የ AVR ማይክሮ መቆጣጠሪያ ቦርድ አለዎት? እሱን ማዘጋጀት አስቸጋሪ ነው? ደህና ፣ በትክክለኛው ቦታ ላይ ነዎት። እዚህ ፣ አርዱዲኖ ኡኖ ቦርድ እንደ ፕሮግራም አውጪ በመጠቀም የ Atmega8a ማይክሮ መቆጣጠሪያ ሰሌዳ እንዴት መርሃ ግብር እንደሚያዘጋጁ አሳያችኋለሁ። ስለዚህ ያለ ቁጣ
የራስዎን ሊለዋወጥ የሚችል የ LED ዎርክሾፕ ማብራት ያድርጉ !: 11 ደረጃዎች (ከስዕሎች ጋር)
የራስዎን ሊለዋወጥ የሚችል የ LED ወርክሾፕ ማብራት ያድርጉ !: በዚህ መመሪያ ውስጥ ፣ ለአውደ ጥናትዎ የራስዎን እጅግ በጣም ቀልጣፋ የ LED መብራት እንዴት እንደሚያደርጉ እነግርዎታለሁ! እኛ ፣ ሰሪዎች ፣ በስራ ጠረጴዛችን ላይ በቂ መብራት በጭራሽ የለንም ፣ ስለሆነም መብራቶችን መግዛት አለብን። ግን እንደ ሰሪዎች እኛ ነገሮችን አንገዛም (እና እንነጥቃለን …)