遥控伺服机位置控制实习i.ppt

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
遥控伺服机位置控制实习i

陳慶逸、林柏辰編著---文魁資訊 VHDL數位電路實習與專題設計 伺服機控制實習 VHDL數位電路實習與專題設計 文魁資訊-UE301 單元11-1 遙控伺服機位置控制實習I 實驗目的 瞭解遙控伺服機之驅動與位置控制的方法 相關知識 遙控伺服機介紹 體積小、扭力大、重量輕而且省電的馬達 在各種遙控模型上被廣泛使用,如遙控車、遙控船與遙控直昇機等等 相關知識 伺服機主要是由外殼、電路板、直流馬達、齒輪與位置檢測器所構成。其工作原理是由遙控接收機發出信號給伺服機,經由電路板上的控制晶片判斷轉動方向,再驅動直流馬達開始轉動,透過減速齒輪將動力傳至轉動軸,同時由位置檢測器送回信號,判斷是否已經到達定位。 相關知識 遙控伺服機位置控制 伺服機控制信號示意圖 相關知識 要產生控制伺服機的脈波訊號,我們需要以0.1MHz的頻率來產生0.01ms的振盪週期。我們可以計數2000次來做為脈波訊號的週期20ms,所以要產生0度的控制訊號只要設定PWM訊號的比較值為70就可以產生0.7ms的脈波訊號。 遙控伺服機位置控制實習I 實驗功能 以CPLD設計一個伺服機控制器以控制伺服機的轉動位置 實驗電路圖 伺服機控制實習程式碼 1 ------------------------------------------------------------------- 2 --實驗名稱:伺服機控制實習 3 --檔案名稱:servo_pwm.vhd 4 --功 能:產生伺服機控制脈波訊號 5 --日 期:2003.8.8 6 ------------------------------------------------------------------- 7 library ieee; 8 use ieee.std_logic_1164.all; 9 use ieee.std_logic_arith.all; 10 use ieee.std_logic_unsigned.all; 11 --------------------------------------------------------------- 12 -- 70(0.7ms) => 0 degree ; 110(1.1ms) => 45 degree 13 -- 150(1.5ms) => 90 degree; 230(2.3ms) => 180 degree 14 --------------------------------------------------------------- 15 entity servo_pwm is 16 generic (N : integer :=70 17 divisor: integer :=18 ); 18 port( 19 clk : in std_logic; 20 q : out std_logic 21 ); 22 end servo_pwm; 23 24 architecture a of servo_pwm is 25 signal clk1 : std_logic; 26 signal cnt2 : std_logic; 27 signal period : integer range 0 to 1999; 28 begin 30 process (clk) 31 variable cnt1,divisor2 : integer range 0 to divisor; 32 begin 33 divisor2:=divisor/2; 34 if (clk'event and clk='1') then 35 if cnt1= divisor then 36 cnt1 := 1; 37 else 38 cnt1 := cnt1 + 1; 39 end if; 40 end if; 41 42 if (clk'event and clk='1') then 43 if (( cnt1= divisor2) or (cnt1= divisor)) then 44 cnt2 <= not cnt2; 45 end if; 46 end if; 47 clk1<= cnt2 ; 48 end process; 49 50 ----- pwm generate ----- 51 p

文档评论(0)

wangsux + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档