久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 62362|回復(fù): 23
打印 上一主題 下一主題
收起左側(cè)

SG90 9g舵機(jī)單片機(jī)控制的一些注意事項(xiàng)

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:140725 發(fā)表于 2017-3-7 00:42 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式



如圖這種模擬舵機(jī),在智能小車中是用來帶動(dòng)超聲波探頭旋轉(zhuǎn),剛接觸的朋友在使用的時(shí)候可能覺得有些棘手,故將這幾天的使用心得總結(jié)如下:   
  

首 先,這個(gè)舵機(jī)是模擬舵機(jī),而非數(shù)字舵機(jī),這兩者的區(qū)別是這樣,數(shù)字舵機(jī)只要給一個(gè)PWM信號即可,這個(gè)信號是目的地的位置,舵機(jī)會(huì)自動(dòng)旋轉(zhuǎn)到這個(gè)位置,而 模擬舵機(jī)需要一直給予目的地的PWM信號。由于舵機(jī)需要的PWM信號實(shí)際就是一個(gè)方波,所以模擬舵機(jī)就是需要不斷的重復(fù)發(fā)一樣的方波,直到舵機(jī)旋轉(zhuǎn)到指定 的位置,并且如果需要鎖定在這個(gè)位置,那么還需繼續(xù)給予這個(gè)方波。
  請看下面這個(gè)例子:

  
  1. void main(void)
  2.   
  3. {
  4.   
  5.      DUOJI=1;
  6.   
  7.      Delay500us();
  8.   
  9.      Delay500us();
  10.   
  11.      DUOJI=0;
  12.   
  13.      Delay500us();
  14.   
  15.      Delay500us();
  16.   
  17.      while(1)
  18.   
  19.      {
  20.   
  21.      DUOJI=1;
  22.   
  23. Delay500us();
  24.   
  25.      Delay500us();
  26.   
  27.      DUOJI=0;
  28.   
  29.      Delay500us();
  30.   
  31.      Delay500us();
  32.   
  33.      }
  34.   
  35. }
復(fù)制代碼
   同樣的代碼一個(gè)在while外,一個(gè)在while內(nèi),如果將while內(nèi)的代碼都注釋起來,那么舵機(jī)并不會(huì)轉(zhuǎn)動(dòng),因?yàn)椴]有一直給予方波,就是這意思。   
  

但 是這樣寫代碼不太好,因?yàn)槭褂玫氖茄舆t函數(shù),程序就會(huì)停在這里,不會(huì)去響應(yīng)其他的函數(shù),所以一般是使用定時(shí)器中斷,具體的代碼就不在這里寫了,附件里有。 需要注意的一點(diǎn)是,進(jìn)入中斷的頻率越高,數(shù)每+1,舵機(jī)轉(zhuǎn)過的角度就越小,也就是精度越好,我使用的是每0.02ms進(jìn)入一次中斷,那么數(shù)每+1,舵機(jī)大 概轉(zhuǎn)過0.02/2*185=1.85°。
      再有就是這個(gè)方波與轉(zhuǎn)過角度的關(guān)系了,如下圖:

  


      重要的部分是0.5-2.5ms上升沿這段,時(shí)間越長舵機(jī)轉(zhuǎn)過角度越大,0.5ms舵機(jī)就轉(zhuǎn)過0°,2.5ms舵機(jī)就轉(zhuǎn)到最大角度(大概185°),根據(jù)自己需要設(shè)定即可。0.5-30ms下降沿這段,并不重要,只要保證大于0.5ms即可。
      最后請看這段代碼:

  1. void timer0(void) interrupt 1
  2.   
  3. {
  4.   
  5. //   TR0=0;                             //如果加上TR0,那么定時(shí)時(shí)間會(huì)受到影響,被延長
  6.   
  7.      TH0=255-TIME_CLOCK/TIME_PER_SEC/12/256;
  8.   
  9.      TL0=255-TIME_CLOCK/TIME_PER_SEC/12%256;
  10.   
  11.      
  12.   
  13.      uiPwmCountDuoJ++;
  14.   
  15.      if(uiPwmCountDuoJ>200)            
  16.   
  17.      {
  18.   
  19.           uiPwmCountDuoJ=0;
  20.   
  21.      }
  22.   
  23.      PwmServomoto();
  24.   
  25. //   TR0=1;
  26.   
  27. }
復(fù)制代碼


      
這個(gè)中斷函數(shù)里需要注意的是兩行注釋掉的TR0語句,如果不注釋這 兩條語句,那么每次進(jìn)入中斷會(huì)先關(guān)閉中斷計(jì)數(shù),等出中斷了再繼續(xù)計(jì)數(shù),這樣就相當(dāng)于延長了每次中斷的時(shí)間,那么舵機(jī)轉(zhuǎn)過的角度就會(huì)受到影響,如果后續(xù)再在 中斷中增加別的代碼,那么舵機(jī)就得每次都進(jìn)行調(diào)整,很麻煩,所以如果中斷中的代碼并不長,不建議加上TR0這兩條語句。
      基本就是這些了,有什么問題就留言,看到會(huì)第一時(shí)間回復(fù)。


   如圖這種模擬舵機(jī),在智能小車中是用來帶動(dòng)超聲波探頭旋轉(zhuǎn),剛接觸的朋友在使用的時(shí)候可能覺得有些棘手,故將這幾天的使用心得總結(jié)如下:    首先,這個(gè)舵機(jī)是模擬舵機(jī),而非數(shù)字舵機(jī),這兩者的區(qū)別是這樣,數(shù)字舵機(jī)只要給一個(gè)PWM信號即可,這個(gè)信號是目的地的位置,舵機(jī)會(huì)自動(dòng)旋轉(zhuǎn)到這個(gè)位置,而模擬舵機(jī)需要一直給予目的地的PWM信號。由于舵機(jī)需要的PWM信號實(shí)際就是一個(gè)方波,所以模擬舵機(jī)就是需要不斷的重復(fù)發(fā)一樣的方波,直到舵機(jī)旋轉(zhuǎn)到指定的位置,并且如果需要鎖定在這個(gè)位置,那么還需繼續(xù)給予這個(gè)方波。
請看下面這個(gè)例子:
  1. void main(void)
  2. {
  3. DUOJI=1;
  4.         Delay500us();
  5.         Delay500us();
  6. DUOJI=0;
  7.         Delay500us();
  8.         Delay500us();
  9.         while(1)
  10.         {
  11. DUOJI=1;
  12.         Delay500us();
  13.         Delay500us();
  14.         DUOJI=0;
  15.         Delay500us();
  16.         Delay500us();
  17.         }
  18. }
復(fù)制代碼

   同樣的代碼一個(gè)在while外,一個(gè)在while內(nèi),如果將while內(nèi)的代碼都注釋起來,那么舵機(jī)并不會(huì)轉(zhuǎn)動(dòng),因?yàn)椴]有一直給予方波,就是這意思。    但是這樣寫代碼不太好,因?yàn)槭褂玫氖茄舆t函數(shù),程序就會(huì)停在這里,不會(huì)去響應(yīng)其他的函數(shù),所以一般是使用定時(shí)器中斷,具體的代碼就不在這里寫了,附件里有。需要注意的一點(diǎn)是,進(jìn)入中斷的頻率越高,數(shù)每+1,舵機(jī)轉(zhuǎn)過的角度就越小,也就是精度越好,我使用的是每0.02ms進(jìn)入一次中斷,那么數(shù)每+1,舵機(jī)大概轉(zhuǎn)過0.02/2*185=1.85°。
    再有就是這個(gè)方波與轉(zhuǎn)過角度的關(guān)系了,如下圖:
    重要的部分是0.5-2.5ms上升沿這段,時(shí)間越長舵機(jī)轉(zhuǎn)過角度越大,0.5ms舵機(jī)就轉(zhuǎn)過0°,2.5ms舵機(jī)就轉(zhuǎn)到最大角度(大概185°),根據(jù)自己需要設(shè)定即可。0.5-30ms下降沿這段,并不重要,只要保證大于0.5ms即可。
    最后請看這段代碼:
  1. void timer0(void) interrupt 1
復(fù)制代碼

    這個(gè)中斷函數(shù)里需要注意的是兩行注釋掉的TR0語句,如果不注釋這兩條語句,那么每次進(jìn)入中斷會(huì)先關(guān)閉中斷計(jì)數(shù),等出中斷了再繼續(xù)計(jì)數(shù),這樣就相當(dāng)于延長了每次中斷的時(shí)間,那么舵機(jī)轉(zhuǎn)過的角度就會(huì)受到影響,如果后續(xù)再在中斷中增加別的代碼,那么舵機(jī)就得每次都進(jìn)行調(diào)整,很麻煩,所以如果中斷中的代碼并不長,不建議加上TR0這兩條語句。
   
最后附上完整的51單片機(jī)控制舵機(jī)源碼:
舵機(jī)程序.zip (22.69 KB, 下載次數(shù): 528)

評分

參與人數(shù) 6黑幣 +37 收起 理由
胡來的饅頭 + 5 絕世好帖!
莫德爾 + 12 很給力!
wbx2017 + 5
奇點(diǎn)zy + 5 很給力!
317673965 + 5 贊一個(gè)!
xiaoguo666 + 5 贊一個(gè)!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏13 分享淘帖 頂8 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:216646 發(fā)表于 2017-7-2 22:24 | 只看該作者
用了這個(gè)壓縮包,直接就沒反應(yīng)了
回復(fù)

使用道具 舉報(bào)

板凳
ID:233394 發(fā)表于 2017-9-16 13:42 | 只看該作者
斤斤計(jì)較 發(fā)表于 2017-7-2 22:25
用了你這個(gè)壓縮吧,直接就沒反應(yīng)了

是的,和層主一個(gè)反應(yīng)
回復(fù)

使用道具 舉報(bào)

地板
ID:233449 發(fā)表于 2017-9-16 15:45 | 只看該作者
好資料,51黑有你更精彩!!!
回復(fù)

使用道具 舉報(bào)

5#
ID:272080 發(fā)表于 2018-2-8 18:58 | 只看該作者
不想下載  樓主能不能復(fù)制完整的代碼出來
回復(fù)

使用道具 舉報(bào)

6#
ID:293351 發(fā)表于 2018-3-18 09:34 | 只看該作者
舵機(jī)一直調(diào)整不了,下載好好試試,謝謝
回復(fù)

使用道具 舉報(bào)

7#
ID:288414 發(fā)表于 2018-5-29 19:49 | 只看該作者
支持  使用看看效果 關(guān)注
回復(fù)

使用道具 舉報(bào)

8#
ID:377519 發(fā)表于 2018-8-3 11:26 | 只看該作者
這個(gè)版本網(wǎng)上好幾個(gè)地方都有,也不知道誰是原創(chuàng),看上面的人都說不好使
回復(fù)

使用道具 舉報(bào)

9#
ID:384149 發(fā)表于 2018-8-8 13:04 | 只看該作者
很給力,棒棒噠
回復(fù)

使用道具 舉報(bào)

10#
ID:265444 發(fā)表于 2018-8-12 11:43 | 只看該作者
這和很棒
回復(fù)

使用道具 舉報(bào)

11#
ID:436152 發(fā)表于 2018-12-1 13:33 | 只看該作者
棒棒噠
回復(fù)

使用道具 舉報(bào)

12#
ID:440944 發(fā)表于 2018-12-9 21:17 | 只看該作者
可以嗎話說這程序
回復(fù)

使用道具 舉報(bào)

13#
ID:303320 發(fā)表于 2018-12-17 11:58 | 只看該作者
不錯(cuò)呦
回復(fù)

使用道具 舉報(bào)

14#
ID:511592 發(fā)表于 2019-4-26 15:59 | 只看該作者
很好啊,我的不會(huì)沒有反應(yīng)。終于解除了我對連線錯(cuò)誤的懷疑
回復(fù)

使用道具 舉報(bào)

15#
ID:530474 發(fā)表于 2019-5-15 07:55 來自觸屏版 | 只看該作者
代碼還不錯(cuò) @就是沒反應(yīng)
回復(fù)

使用道具 舉報(bào)

16#
ID:510728 發(fā)表于 2019-5-19 09:26 | 只看該作者
內(nèi)容很詳細(xì) 值得一看
回復(fù)

使用道具 舉報(bào)

17#
ID:421308 發(fā)表于 2019-7-12 15:11 | 只看該作者
接線怎么接啊
回復(fù)

使用道具 舉報(bào)

18#
ID:589233 發(fā)表于 2019-7-25 10:47 | 只看該作者
棒,幫助不小
回復(fù)

使用道具 舉報(bào)

19#
ID:588060 發(fā)表于 2019-8-7 17:10 | 只看該作者
這個(gè)連接舵機(jī)應(yīng)該連哪幾個(gè)口啊?
回復(fù)

使用道具 舉報(bào)

20#
ID:515975 發(fā)表于 2019-8-8 11:12 | 只看該作者
感謝分享,太棒了
回復(fù)

使用道具 舉報(bào)

21#
ID:587361 發(fā)表于 2019-8-9 16:29 | 只看該作者
支持一下,就是要下載太麻煩了
回復(fù)

使用道具 舉報(bào)

22#
ID:361216 發(fā)表于 2019-8-10 17:44 | 只看該作者
正準(zhǔn)備用這個(gè)型號的舵機(jī),謝謝提醒受教了!!
回復(fù)

使用道具 舉報(bào)

23#
ID:598462 發(fā)表于 2019-8-12 09:36 | 只看該作者
其實(shí)最有效的方法還是查明原理以后,自己根據(jù)原理編程序試驗(yàn)
就算用了別人編的程序后,智能小車開得飛起,又有什么意義呢?
回復(fù)

使用道具 舉報(bào)

24#
ID:207204 發(fā)表于 2020-11-1 21:12 | 只看該作者
實(shí)際應(yīng)用中,程序還是使用兩個(gè)定時(shí)器中斷。
模擬舵機(jī)SG90需要持續(xù)的輸入pwm信號,pwm不需要在主函數(shù)里設(shè)定,定時(shí)器中斷,單片機(jī)持續(xù)輸出穩(wěn)定的pwm信號給舵機(jī),
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 婷婷国产一区二区三区 | 99免费在线观看 | 91视频精选| 一区二区在线看 | 亚洲男人网 | 天堂视频一区 | 狠狠操婷婷 | 中文一区二区 | av一二三区 | 成人性生交大片免费看r链接 | 国产第1页 | 日韩精品在线一区 | a毛片| 国产欧美日韩精品在线观看 | 久久久99国产精品免费 | 在线观看成人精品 | 免费视频二区 | 人人爽人人草 | 91高清视频在线观看 | 国产精品视频久久 | 欧美精品在线免费 | 国产成人av一区二区三区 | 九九热这里 | av在线一区二区三区 | 亚洲精品一区二区三区在线 | 久久久久久综合 | 国产专区免费 | 国内自拍偷拍视频 | 亚洲播放 | 蜜桃视频一区二区三区 | 成人在线观看网址 | 日韩免费视频一区二区 | 91视频在线看 | 日韩精品一区二区在线 | 成人小视频在线观看 | 性色视频| 国产高清一区二区三区 | 国产成人在线视频免费观看 | 日韩免费视频一区二区 | 一区二区三区免费 | 日韩免费视频一区二区 |