標(biāo)題: 淺談?dòng)脝纹瑱C(jī)控制SG90舵機(jī)(原理+編程) [打印本頁]

作者: 我只是過于低調(diào)    時(shí)間: 2019-4-16 11:51
標(biāo)題: 淺談?dòng)脝纹瑱C(jī)控制SG90舵機(jī)(原理+編程)
此篇文章免費(fèi)分享給大家,這篇文章結(jié)合筆者所學(xué)以及在往上參考大神的講解,通過自己的理解整理成文檔,在此免費(fèi)分享給大家,由于筆者是一名在讀學(xué)生,文中難免有不當(dāng)之處,如有錯(cuò)誤,望大家指正!�。∥視�(huì)把源文檔和源程序放在附件中,有黑幣的直接下載,沒有的留下郵箱,看見回

SG90舵機(jī)(模擬舵機(jī))
一、日常吐槽~~~~~~,在開始今天的主題之前,占用大家一些時(shí)間。容我罵街一番,$##%%%$%#$#$$%^艸……………….,哎呀媽呀,罵的有點(diǎn)喘不過來了,額~呸,是(文明人,文明人)。
可能就奇了怪了,你不好好碼字,罵什么街呢!說來慚愧,上邊被罵的人就是筆者自己。今天在調(diào)試程序的時(shí)候,對(duì),就這個(gè)鬼舵機(jī),怎么都不轉(zhuǎn)�。。z查硬件---檢查程序---百度,如此反復(fù)N小時(shí)。始終找不到問題所在,程序呢,怎么看,怎么!硬件呢,怎么看,怎么!說是急,那是快,電閃雷鳴,刀光劍影,啪,一個(gè)數(shù)字1摔在臉上,于是乎,快速打開課本,啪~啪~啪,數(shù)字0、1,大腦瓜子一拍,哎呀,一定是這錯(cuò)誤了!快速拿起閃閃發(fā)光的鼠標(biāo),熟練的打開Keil4,一段操作猛如虎,只聽見那~~~吱,舵機(jī)工作了~~~~
粗心大意定時(shí)器0對(duì)應(yīng)的中端口----void Timer() interrupt 1
馬虎大意的我寫成了這樣:void Timer() interrupt 0.
家都走錯(cuò)了,人家咋可能給你錢,大家一定要引以為戒,細(xì)心細(xì)心再細(xì)心
中斷號(hào)
中斷源
0
外部中斷0
1
定時(shí)器中斷0
2
外部中斷1
3
定時(shí)器中斷1
4
串行口中斷1
注意C語言用關(guān)鍵字“interrupt+數(shù)字”來代替匯編中中斷入口地址
——————————————————————————————————
以上非本次筆記重點(diǎn),只是筆者一點(diǎn)小小的吐槽,外加一點(diǎn)小小的知識(shí)
——————————————————————————————————
二、主咖登場基本概念:1.舵機(jī):舵機(jī)是一種位置(角度)伺服的驅(qū)動(dòng)器,適用那些需要角度不斷變化并可以保持的控制系統(tǒng)。舵機(jī)只是一種通俗的叫法,其實(shí)質(zhì)是一個(gè)伺服馬達(dá)。

2.模擬舵機(jī):需要不斷的發(fā)送目的地PWM信號(hào),才能旋轉(zhuǎn)到指定位置。例如:我現(xiàn)在讓它旋轉(zhuǎn)90度,我就需要不斷的發(fā)送90度的PWM信號(hào)直到到達(dá)指定位置才能停止。

3.數(shù)字舵機(jī):只需給一個(gè)目的地PWM信號(hào),即可旋轉(zhuǎn)到指定位置。例如:我現(xiàn)在讓它旋轉(zhuǎn)90度,我只需要發(fā)送一次90度的PWM信號(hào),它就可以旋轉(zhuǎn)到90度。

4.PWM信號(hào):PWM(脈沖寬度調(diào)制)是利用微處理器的數(shù)字輸出來對(duì)模擬電路進(jìn)行控制的一種非常有效的技術(shù)。那么什么叫PWM信號(hào)呢,筆者就簡單的談一下自己的看法,我們都知道,我們所使用的單片機(jī)都是數(shù)字電路,它的I/O口只有兩種狀態(tài),那就是高電平1,低電平0。知道了這些之后,我們通過控制微處理器輸出1-0-1-0-1-0-1-0……如此循環(huán)往復(fù),就成為下圖1所示的情況,這就是PWM信號(hào)。

1.PWM信號(hào)
5.占空比高電平(或者低電平)占整個(gè)周期的時(shí)間就叫作占空比。

6.PWM頻率PWM頻率是指每秒鐘信號(hào)從高電平到低電平再到高電平的次數(shù)。
工作原理  理解以上的概念,對(duì)我們接下來的學(xué)習(xí)是非常有必要的,希望大家能好好掌握上面的概念。
我所使用的SG90舵機(jī),如下圖2所示

2
接線方法
          紅-------------------------VCC
          棕色----------------------GND
          橙色----------------------信號(hào)線

原理:舵機(jī)內(nèi)部有一個(gè)基準(zhǔn)電壓,微處理器產(chǎn)生的PWM信號(hào)通過信號(hào)線進(jìn)入舵機(jī)產(chǎn)生直流偏置電壓,與舵機(jī)內(nèi)部的基準(zhǔn)電壓作比較,獲得電壓差輸出。電壓差的正負(fù)輸出到電機(jī)驅(qū)動(dòng)芯片上,從而決定正反轉(zhuǎn)。當(dāng)舵機(jī)開始旋轉(zhuǎn)的時(shí)候,舵機(jī)內(nèi)部通過級(jí)聯(lián)減速齒輪帶動(dòng)電位器旋轉(zhuǎn),使得電壓差為零,電機(jī)停止轉(zhuǎn)動(dòng)。

重點(diǎn):作為一個(gè)單片機(jī)編寫者,具體的原理,我們不必要搞清楚,我們只需知道如何控制它即可,以下將講解如何控制舵機(jī)運(yùn)轉(zhuǎn)。

第一步:我們需要使用單片機(jī)產(chǎn)生周期為20ms,高電平t等于0.5ms-2.5ms之間的這樣一個(gè)方波。定時(shí)器+中斷產(chǎn)生這樣的方波。
高電平在一個(gè)周期20ms的持續(xù)時(shí)間對(duì)應(yīng)的舵機(jī)角度,如下圖所示。
高電平t占整個(gè)周期T(20ms)的時(shí)間
舵機(jī)旋轉(zhuǎn)的角度
0.5ms
0度
1ms
45度
1.5ms
90度
2ms
135度
2.5ms
180度
第二步:簡單講一下編程思想吧,我所使用的是方法是定時(shí)器+中斷,定時(shí)器每0.5ms中斷一次,需要中斷40次才能達(dá)到20ms。我們此時(shí)需要一個(gè)全局變量來記錄中斷的次數(shù),當(dāng)中斷達(dá)到40次時(shí),全局變量重新清零。當(dāng)中斷次數(shù)小于a時(shí),信號(hào)線輸出高電平,否則輸出零。此時(shí)a的值對(duì)應(yīng)關(guān)系如下(1--0度,2--45度,3--90度,4--135度,5--180度)。
第三步:著重講程序中一個(gè)語句的含義

為什么此處要此處a==16,a==32,首先,這個(gè)值是我一步步測試出來的,如果你看見源程序的話,上面有詳細(xì)的介紹,此處不再贅述。
我們知道SG90是一個(gè)模擬舵機(jī),需要不斷的給出信號(hào)才能到達(dá)指定的位置。到達(dá)這個(gè)位置并不是一蹴而就的,它需要時(shí)間,實(shí)際上面的a==16,相當(dāng)于延時(shí),這段時(shí)間剛好能夠讓舵機(jī)達(dá)到指定的位置,然后在接收下一個(gè)回?cái)[程序。a==32,是因?yàn)槲倚枰屗鼇砘財(cái)[動(dòng)的時(shí)間對(duì)稱,所以才用a==32的。有興趣的可以改變a的值,觀察一下具體的情況。
程序此處都不貼出來,時(shí)間緊迫,我會(huì)放在附件中,有黑幣的直接下載,沒有的,留下郵箱

單片機(jī)源程序如下:
  1. #include<reg52.h>
  2. sbit SG_PWM=P0^0;
  3. unsigned char count=0;
  4. unsigned char PWM_count=3;                  //1--0度,2--45度,3--90度,4--135度,5--180度
  5. unsigned char a=0;
  6. void Timer_Init()
  7. {
  8.   TMOD=0X01;      //T0定時(shí)方式1
  9.   TH0=0Xfe;
  10.   TL0=0X33;       //計(jì)數(shù)初值設(shè)置為0.5ms
  11.   ET0=1;          //打開定時(shí)器0的中斷
  12.   TR0=1;          //打開定時(shí)器0
  13.   EA=1;           //開總中斷
  14. }
  15. void Timer() interrupt 1      //特別注意此處,0--外部中斷0,1--定時(shí)器中斷0,2--外部中斷1,3--定時(shí)器中斷1,4--串行口中斷1
  16. {
  17.   TR0=0;
  18.   TH0=0Xfe;
  19.   TL0=0X33;       //重新賦計(jì)數(shù)初值為0.5ms
  20.   if(count<=PWM_count)
  21.   {
  22.     SG_PWM=1;
  23.   }
  24.   else
  25.   {
  26.     SG_PWM=0;
  27.   }
  28.   count++;
  29.   if(count>=40)
  30.   {
  31.     count=0;
  32.     a++;
  33.   }
  34.   TR0=1;
  35. }
  36. void main()
  37. {
  38.   Timer_Init();
  39.   while(1)
  40.   {
  41.       if(a==16)                             //20是比較舒服的連貫動(dòng)作,20以上動(dòng)作些許不連貫  10的時(shí)候出現(xiàn)打架情況,15的時(shí)候打架幾乎沒有,16比較完美
  42.       {
  43.         PWM_count=1;
  44.       }
  45.       if(a==32)
  46.       {
  47.               PWM_count=3;
  48.         a=0;
  49.       }
  50.   }
  51. }
復(fù)制代碼


全部資料51hei下載地址:
SG90舵機(jī)--自動(dòng)控制.7z (8.99 KB, 下載次數(shù): 1154)
SG90舵機(jī)--按鍵控制.7z (9.62 KB, 下載次數(shù): 928)
淺談SG90舵機(jī).docx (139.68 KB, 下載次數(shù): 464)



作者: 158751hei0141    時(shí)間: 2019-4-16 22:04
好資料,51黑有你更精彩!!!

作者: 我只是過于低調(diào)    時(shí)間: 2019-4-17 21:10
15871820141 發(fā)表于 2019-4-16 22:04
謝謝

已經(jīng)發(fā)送到你的郵箱
作者: 我只是過于低調(diào)    時(shí)間: 2019-4-18 09:46
我只是過于低調(diào) 發(fā)表于 2019-4-17 21:10
已經(jīng)發(fā)送到你的郵箱

不客氣不客氣,共同學(xué)習(xí)
作者: Rainson    時(shí)間: 2019-4-20 01:38
請問自動(dòng)控制使用什么控制的?
作者: YH123456789    時(shí)間: 2019-4-20 10:00
感謝樓主
作者: 阿鎏尼克    時(shí)間: 2019-4-20 10:10
謝謝
作者: 我只是過于低調(diào)    時(shí)間: 2019-4-20 14:56
Rainson 發(fā)表于 2019-4-20 01:38
請問自動(dòng)控制使用什么控制的?

這個(gè)自動(dòng)控制很簡單,就是我上邊講的a==16,這只不過是個(gè)延時(shí),為了讓舵機(jī)達(dá)到指定位置,然后在返回另一個(gè)指定位置,從而實(shí)現(xiàn)自動(dòng)控制
作者: 我只是過于低調(diào)    時(shí)間: 2019-4-20 14:59
阿鎏尼克 發(fā)表于 2019-4-20 10:10
謝謝392389854@qq.com

已發(fā)送
作者: 我只是過于低調(diào)    時(shí)間: 2019-4-20 14:59
YH123456789 發(fā)表于 2019-4-20 10:00
感謝樓主

已發(fā)送
作者: 我只是過于低調(diào)    時(shí)間: 2019-4-21 17:21
愛瘋的孩紙 發(fā)表于 2019-4-20 15:05

已經(jīng)發(fā)送
作者: 我只是過于低調(diào)    時(shí)間: 2019-4-21 17:22
779380649 發(fā)表于 2019-4-20 23:52

已經(jīng)發(fā)送
作者: lwl812071006    時(shí)間: 2019-4-22 09:08
有電路圖?
作者: 我只是過于低調(diào)    時(shí)間: 2019-4-22 09:42
lwl812071006 發(fā)表于 2019-4-22 09:08
有電路圖?

這個(gè)很簡單的,就是隨手演示一下,沒有特意的去畫電路圖
作者: yyuq    時(shí)間: 2019-4-22 13:05
772497644@qq.com  謝謝樓主
作者: 我只是過于低調(diào)    時(shí)間: 2019-4-22 15:41
yyuq 發(fā)表于 2019-4-22 13:05
謝謝樓主

已發(fā)送,注意查收
作者: 我只是過于低調(diào)    時(shí)間: 2019-4-26 00:00
safadsgsgf 發(fā)表于 2019-4-24 23:53
感謝樓主分享!

已發(fā)送,注意查收
作者: yyhlsf    時(shí)間: 2019-4-28 10:25
謝謝分享
作者: 我只是過于低調(diào)    時(shí)間: 2019-4-28 12:43
explorercc 發(fā)表于 2019-4-27 22:30
,謝謝樓主

已發(fā)送,注意查收
作者: 我只是過于低調(diào)    時(shí)間: 2019-4-28 12:43
yyhlsf 發(fā)表于 2019-4-28 10:25
謝謝分享

共同進(jìn)步
作者: kkk11    時(shí)間: 2019-4-29 09:08
請問轉(zhuǎn)180°應(yīng)該怎么設(shè)置??
作者: 我只是過于低調(diào)    時(shí)間: 2019-4-29 09:23
kkk11 發(fā)表于 2019-4-29 09:08
請問轉(zhuǎn)180°應(yīng)該怎么設(shè)置??

高電平t占有周期的時(shí)間改為2.5ms,理論上可以轉(zhuǎn)到180°,但是不知道什么原因,我得舵機(jī)不能完全轉(zhuǎn)到180°

作者: 我只是過于低調(diào)    時(shí)間: 2019-5-1 09:07
機(jī)械1111 發(fā)表于 2019-4-30 23:15
謝謝樓主

已發(fā)送

作者: 我只是過于低調(diào)    時(shí)間: 2019-5-1 23:27
bazhahei 發(fā)表于 2019-5-1 09:38
2622869349@qq.com    謝謝樓主

已發(fā)送
作者: 我只是過于低調(diào)    時(shí)間: 2019-5-1 23:28
hg1594130342 發(fā)表于 2019-5-1 15:34
謝謝樓主

已發(fā)送
作者: 機(jī)械1111    時(shí)間: 2019-5-2 23:20
樓主,要控制多個(gè)舵機(jī)應(yīng)該怎么辦?我這樣改的程序但是這幾個(gè)舵機(jī)轉(zhuǎn)的角度都不一樣,有的轉(zhuǎn)角特別小
if(count<=PWM_count)
  {
    SG_PWM=1;
         SG_PWM2=1;
         SG_PWM3=1;
         SG_PWM4=1;
  }
  else
  {
    SG_PWM1=0;
         SG_PWM2=0;
         SG_PWM3=0;
         SG_PWM4=0;
  }
作者: 我只是過于低調(diào)    時(shí)間: 2019-5-2 23:37
spang 發(fā)表于 2019-5-2 14:16
謝謝樓主

額  兄弟  別逗了,那么多黑豆,如果覺得能學(xué)到東西就下了吧。沒有的我可以幫忙下載
作者: 123.00    時(shí)間: 2019-5-3 10:48
519902379@qq.com謝謝樓主

作者: 我只是過于低調(diào)    時(shí)間: 2019-5-3 14:12
機(jī)械1111 發(fā)表于 2019-5-2 23:20
樓主,要控制多個(gè)舵機(jī)應(yīng)該怎么辦?我這樣改的程序但是這幾個(gè)舵機(jī)轉(zhuǎn)的角度都不一樣,有的轉(zhuǎn)角特別小
if(co ...

你是想要所有的舵機(jī)轉(zhuǎn)一樣的角度嘛?
作者: 機(jī)械1111    時(shí)間: 2019-5-4 07:16
我只是過于低調(diào) 發(fā)表于 2019-5-3 14:12
你是想要所有的舵機(jī)轉(zhuǎn)一樣的角度嘛?

是的,我想讓它們同步地轉(zhuǎn)一樣的角度
作者: 機(jī)械1111    時(shí)間: 2019-5-4 09:28
機(jī)械1111 發(fā)表于 2019-5-4 07:16
是的,我想讓它們同步地轉(zhuǎn)一樣的角度

實(shí)際上我想做一個(gè)四足機(jī)器人,讓它們都同步轉(zhuǎn)一樣的角度只是先測試一下,最終想實(shí)現(xiàn)的是前兩個(gè)舵機(jī)同步前擺同時(shí)后兩個(gè)舵機(jī)同步向后擺。
作者: decade_lv    時(shí)間: 2019-5-4 10:31
572717043@qq.com

作者: 我只是過于低調(diào)    時(shí)間: 2019-5-4 16:00
機(jī)械1111 發(fā)表于 2019-5-4 09:28
實(shí)際上我想做一個(gè)四足機(jī)器人,讓它們都同步轉(zhuǎn)一樣的角度只是先測試一下,最終想實(shí)現(xiàn)的是前兩個(gè)舵機(jī)同步前 ...

具體情況我也不太清楚,你可以單個(gè)舵機(jī)調(diào)試,讓每個(gè)舵機(jī)都轉(zhuǎn)90°,之后在四個(gè)舵機(jī)一起調(diào)試。我懷疑是不是舵機(jī)初始位置不一樣,你可以試試
作者: kkk11    時(shí)間: 2019-5-5 09:19
我只是過于低調(diào) 發(fā)表于 2019-4-29 09:23
高電平t占有周期的時(shí)間改為2.5ms,理論上可以轉(zhuǎn)到180°,但是不知道什么原因,我得舵機(jī)不能完全轉(zhuǎn)到180° ...

第一次做,不是很明白,請問要怎樣改?謝謝
作者: KeltC    時(shí)間: 2019-5-8 22:54
544988232@qq.com    謝謝樓主
作者: 我只是過于低調(diào)    時(shí)間: 2019-5-9 15:43
decade_lv 發(fā)表于 2019-5-4 10:31

已發(fā)送
作者: 我只是過于低調(diào)    時(shí)間: 2019-5-9 15:44
KeltC 發(fā)表于 2019-5-8 22:54
謝謝樓主

已發(fā)送

作者: ZimmerHo    時(shí)間: 2019-5-10 16:20
1135749091@qq.com謝謝樓主了啊 有急用
作者: 我只是過于低調(diào)    時(shí)間: 2019-5-10 20:25
ZimmerHo 發(fā)表于 2019-5-10 16:20
1135749091@qq.com謝謝樓主了啊 有急用

已發(fā)送
作者: ZimmerHo    時(shí)間: 2019-5-10 21:52
1135749091@qq.com求發(fā)
作者: gyh123gyh    時(shí)間: 2019-5-11 06:43
1297714938@qq.com 謝謝樓主
作者: 我只是過于低調(diào)    時(shí)間: 2019-5-11 09:01
ZimmerHo 發(fā)表于 2019-5-10 21:52
1135749091@qq.com求發(fā)

已發(fā)送

作者: 我只是過于低調(diào)    時(shí)間: 2019-5-11 09:02
gyh123gyh 發(fā)表于 2019-5-11 06:43
1297714938@qq.com 謝謝樓主

已發(fā)送
作者: 初心22    時(shí)間: 2019-5-12 18:18
1652493957@qq.com謝謝樓主!

作者: 初心22    時(shí)間: 2019-5-12 19:33
1652493957@qq.com 謝謝!
作者: 我只是過于低調(diào)    時(shí)間: 2019-5-13 08:36
初心22 發(fā)表于 2019-5-12 19:33
1652493957@qq.com 謝謝!

已發(fā)送
作者: yjj2011    時(shí)間: 2019-5-13 15:45
41467046@qq.com  感謝樓主
作者: 落楓。念流月    時(shí)間: 2019-5-15 00:02
1351956824@qq.com
非常非常感謝
作者: nailuo    時(shí)間: 2019-5-15 11:14
1348662577@qq.com  謝謝

作者: mhtzjl    時(shí)間: 2019-5-15 17:22
18866546599@163.com   謝謝
作者: mhtzjl    時(shí)間: 2019-5-15 18:02
1420633563@qq.com非常感謝,有急用
作者: 我只是過于低調(diào)    時(shí)間: 2019-5-15 18:49
落楓。念流月 發(fā)表于 2019-5-15 00:02
非常非常感謝

電腦重裝系統(tǒng)了,郵箱還沒裝上,裝上的時(shí)候發(fā)
作者: 我只是過于低調(diào)    時(shí)間: 2019-5-15 18:49
mhtzjl 發(fā)表于 2019-5-15 18:02
1420633563@qq.com非常感謝,有急用

電腦重裝系統(tǒng)了,還沒來的及安裝郵箱
作者: 我只是過于低調(diào)    時(shí)間: 2019-5-16 23:11
落楓。念流月 發(fā)表于 2019-5-15 00:02
非常非常感謝

已經(jīng)發(fā)送,用網(wǎng)頁版的發(fā)的
作者: 我只是過于低調(diào)    時(shí)間: 2019-5-16 23:12
nailuo 發(fā)表于 2019-5-15 11:14
謝謝

已發(fā)送
作者: 我只是過于低調(diào)    時(shí)間: 2019-5-16 23:14
mhtzjl 發(fā)表于 2019-5-15 18:02
1420633563@qq.com非常感謝,有急用

已經(jīng)發(fā)送
作者: a751123973    時(shí)間: 2019-5-17 19:40
樓主你好,我的舵機(jī)是數(shù)字舵機(jī),我按照您的代碼,在中斷的count > 40 的判斷里加了一句 TR0 = 0以中斷計(jì)時(shí)。這樣子使數(shù)字電機(jī)僅接受一次pwm。但是舵機(jī)沒有動(dòng)靜。如果什么都不改,舵機(jī)就會(huì)左右亂擺,毫無規(guī)律。我的舵機(jī)是ds3119
作者: 我只是過于低調(diào)    時(shí)間: 2019-5-19 10:10
a751123973 發(fā)表于 2019-5-17 19:40
樓主你好,我的舵機(jī)是數(shù)字舵機(jī),我按照您的代碼,在中斷的count > 40 的判斷里加了一句 TR0 = 0以中斷計(jì)時(shí) ...

第一,有沒有將中斷后面的TR0=1注釋掉
第二,這個(gè)數(shù)字舵機(jī)的驅(qū)動(dòng)方式是否和這個(gè)模擬舵機(jī)一樣
作者: 小笨鳥O    時(shí)間: 2019-5-22 17:54
只有3個(gè)幣,下不了,請樓主或其他版友發(fā)一個(gè),謝謝先啦!
yan53h@163.com
作者: 平凡的世界ol    時(shí)間: 2019-5-22 18:32
928383715@qq.com  麻煩了
作者: 小笨鳥O    時(shí)間: 2019-5-22 20:46
我下午跟的帖子,為什么看不到呢?
作者: 我只是過于低調(diào)    時(shí)間: 2019-5-23 10:55
小笨鳥O 發(fā)表于 2019-5-22 20:46
我下午跟的帖子,為什么看不到呢?

我才看見
作者: a751123973    時(shí)間: 2019-5-23 12:01
我只是過于低調(diào) 發(fā)表于 2019-5-19 10:10
第一,有沒有將中斷后面的TR0=1注釋掉
第二,這個(gè)數(shù)字舵機(jī)的驅(qū)動(dòng)方式是否和這個(gè)模擬舵機(jī)一樣

你好,我遇到了一些問題,我寫回源代碼后,有時(shí)候可以正常工作,但有時(shí)又會(huì)呈現(xiàn)出毫無規(guī)律的運(yùn)動(dòng),請問是和我的電源的選擇有關(guān)系嗎?
作者: a751123973    時(shí)間: 2019-5-23 12:31
我只是過于低調(diào) 發(fā)表于 2019-5-19 10:10
第一,有沒有將中斷后面的TR0=1注釋掉
第二,這個(gè)數(shù)字舵機(jī)的驅(qū)動(dòng)方式是否和這個(gè)模擬舵機(jī)一樣

不好意思打擾了,已經(jīng)解決了,謝謝。是我的共地沒有接好
作者: 我只是過于低調(diào)    時(shí)間: 2019-5-23 14:49
a751123973 發(fā)表于 2019-5-23 12:31
不好意思打擾了,已經(jīng)解決了,謝謝。是我的共地沒有接好

好滴,也沒幫到你,不客氣了
作者: 我只是過于低調(diào)    時(shí)間: 2019-5-23 14:50
樓上的,都不一一恢復(fù)了,我看到得都回復(fù)了
作者: 小笨鳥O    時(shí)間: 2019-5-23 19:17
非常感謝樓主!
作者: 小笨鳥O    時(shí)間: 2019-5-23 21:24
遇到一個(gè)奇怪的事:sbit PM=P0^1,然后和P0^0取反,編譯沒有錯(cuò)誤和警告。但是P0^1的舵機(jī)不動(dòng),用示波器看一下,發(fā)現(xiàn)P0^1啥波形都沒有,奇怪不?
作者: a18611503728    時(shí)間: 2019-5-24 02:17
請問,您有這個(gè)型號(hào)舵機(jī)的原理圖嗎?
作者: 我只是過于低調(diào)    時(shí)間: 2019-5-24 09:25
a18611503728 發(fā)表于 2019-5-24 02:17
請問,您有這個(gè)型號(hào)舵機(jī)的原理圖嗎?

這個(gè)沒有啊
作者: 我只是過于低調(diào)    時(shí)間: 2019-5-24 09:30
小笨鳥O 發(fā)表于 2019-5-23 21:24
遇到一個(gè)奇怪的事:sbit PM=P0^1,然后和P0^0取反,編譯沒有錯(cuò)誤和警告。但是P0^1的舵機(jī)不動(dòng),用示波器看一 ...

看看定時(shí)器是否配置正確,示波器也就做實(shí)驗(yàn)用過,我也不太懂!你們條件真好
作者: 無回?zé)o悔    時(shí)間: 2019-5-24 10:32
928936978@qq.com 謝謝
作者: 無回?zé)o悔    時(shí)間: 2019-5-24 10:53
928936978@qq.com
作者: 我只是過于低調(diào)    時(shí)間: 2019-5-24 13:53
無回?zé)o悔 發(fā)表于 2019-5-24 10:53
928936978@qq.com

發(fā)過了
作者: 小笨鳥O    時(shí)間: 2019-5-24 18:36
我只是過于低調(diào) 發(fā)表于 2019-5-24 09:30
看看定時(shí)器是否配置正確,示波器也就做實(shí)驗(yàn)用過,我也不太懂!你們條件真好

我的示波器是玩具型的,80元左右(附圖),看I/O簡單的信號(hào)方便,缺點(diǎn)是會(huì)卡。P0^0取反有信號(hào),只是t是低電平,T—t是高電平,舵機(jī)不認(rèn)識(shí),所以不動(dòng),和舵機(jī)反向器不一樣(附舵機(jī)反向器圖,和一角硬幣差不多大)�,F(xiàn)在最希望舵機(jī)擺動(dòng)能受控,想做個(gè)遙控的劃艇或是龍舟玩,遙控接收機(jī)輸出的信號(hào)和舵機(jī)一樣的,是t=1~2ms, T=20ms

IMG_20190524_152615.jpg (1.14 MB, 下載次數(shù): 1250)

IMG_20190524_152615.jpg

IMG_20190524_152729.jpg (1.57 MB, 下載次數(shù): 1216)

IMG_20190524_152729.jpg

作者: 我只是過于低調(diào)    時(shí)間: 2019-5-25 14:33
小笨鳥O 發(fā)表于 2019-5-24 18:36
我的示波器是玩具型的,80元左右(附圖),看I/O簡單的信號(hào)方便,缺點(diǎn)是會(huì)卡。P0^0取反有信號(hào),只是t是低電 ...

不得不承認(rèn),你比我玩的好,我還是小菜雞一個(gè)呢
作者: 小笨鳥O    時(shí)間: 2019-5-25 20:33
我只是過于低調(diào) 發(fā)表于 2019-5-25 14:33
不得不承認(rèn),你比我玩的好,我還是小菜雞一個(gè)呢

您太過謙啦!如果有笨笨比賽的話,我保證能拿金牌,比如高考英文最高一次是11分,所以學(xué)編程很難,學(xué)了十多年,一月前才入門,現(xiàn)在對(duì)中斷和計(jì)時(shí)程序任然看不懂,比如: if(count<=PWM_count)
  {
    SG_PWM=1;
  }
  else
  {
    SG_PWM=0;
  }
  count++;
  if(count>=40)
  {
    count=0;
    a++;
  }
  TR0=1;
}
這段程序,我只猜到40是20ms,其他的都不知道是啥意思。
另外,倒數(shù)第三句a==32;我改成a==a+a;為啥就報(bào)錯(cuò)呢?請樓主指點(diǎn),謝謝!
作者: 我只是過于低調(diào)    時(shí)間: 2019-5-26 11:27
小笨鳥O 發(fā)表于 2019-5-25 20:33
您太過謙啦!如果有笨笨比賽的話,我保證能拿金牌,比如高考英文最高一次是11分,所以學(xué)編程很難,學(xué)了十 ...

其實(shí)給你些建議吧:
1.英語和編程是兩回事,如果真的說他倆有點(diǎn)關(guān)系的話,那可能就是芯片手冊了吧
2.這個(gè)程序比較簡單,如果中間好多理解不了的話,建議去看下定時(shí)器,好好理解下
3.編程學(xué)了10多年?一個(gè)月前才入門,這個(gè)優(yōu)點(diǎn)尷尬啊
4.C語言一定要有扎實(shí)的基礎(chǔ)
作者: 261779498    時(shí)間: 2019-5-27 01:12
261779498@qq.com謝謝樓主
作者: 小笨鳥O    時(shí)間: 2019-5-27 16:30
我只是過于低調(diào) 發(fā)表于 2019-5-26 11:27
其實(shí)給你些建議吧:
1.英語和編程是兩回事,如果真的說他倆有點(diǎn)關(guān)系的話,那可能就是芯片手冊了吧
2.這 ...

聽您的建議,我把定時(shí)器有關(guān)的視頻教程又看了好幾遍,還是許多不懂。
說實(shí)話,我的這樣智商,學(xué)習(xí)十幾年能入門,會(huì)搞LED了,開心了好久呢!哈哈~
請問一下:學(xué)好51編程需要看那些書?以前看C語言書 發(fā)現(xiàn)和51聯(lián)系不大。
另外,如果寫一個(gè)受控的舵機(jī)程序,難度大啊?估計(jì)是目前這個(gè)程序的幾倍?謝謝!
我目前是用純硬件做一套可以遙控的舵機(jī)控制系統(tǒng),非常麻煩,所以想用單片機(jī)來弄,
作者: 小笨鳥O    時(shí)間: 2019-5-27 20:14
再請教一事:如果讓舵機(jī)先從90度到0度,然后再0~90度擺動(dòng),是不是只需改下面這段程序:
if(count<=PWM_count)
{
  SG_PWM=1;
}
else
{
  SG_PWM=0;
}
count++;
if(count>=40)
{
  count=0;
  a++;
我改了N次,總是不行,不知道為什么?
作者: 李大意兒    時(shí)間: 2019-5-28 11:05
非常感謝樓主!
最近剛好在使用SG90舵機(jī)做無碳小車轉(zhuǎn)彎模塊,但是目前調(diào)試出來的結(jié)果是舵機(jī)一直在朝一個(gè)方向不停轉(zhuǎn)動(dòng),唉,不知道問題出在哪里了,哭泣
希望能得到您的資料,謝謝!
nustlty@163.com
再次感謝!
作者: 我只是過于低調(diào)    時(shí)間: 2019-5-28 17:13
小笨鳥O 發(fā)表于 2019-5-27 16:30
聽您的建議,我把定時(shí)器有關(guān)的視頻教程又看了好幾遍,還是許多不懂。
說實(shí)話,我的這樣智商,學(xué)習(xí)十幾年 ...

加我QQ,782977902,記得備注
作者: 我只是過于低調(diào)    時(shí)間: 2019-5-28 17:14
李大意兒 發(fā)表于 2019-5-28 11:05
非常感謝樓主!
最近剛好在使用SG90舵機(jī)做無碳小車轉(zhuǎn)彎模塊,但是目前調(diào)試出來的結(jié)果是舵機(jī)一直在朝一個(gè)方 ...

好滴 ,發(fā)給你了
作者: 蝦兵0蟹將    時(shí)間: 2019-5-28 17:37
學(xué)習(xí)了,謝謝樓主
作者: 1234567890一天    時(shí)間: 2019-5-28 19:36
我的郵箱869260915@qq.com,謝謝兄弟了
作者: 我只是過于低調(diào)    時(shí)間: 2019-5-28 20:01
李大意兒 發(fā)表于 2019-5-28 11:05
非常感謝樓主!
最近剛好在使用SG90舵機(jī)做無碳小車轉(zhuǎn)彎模塊,但是目前調(diào)試出來的結(jié)果是舵機(jī)一直在朝一個(gè)方 ...

已經(jīng)發(fā)給你了
作者: 146啊哈    時(shí)間: 2019-5-28 20:01
1462970411@qq.com
作者: 我只是過于低調(diào)    時(shí)間: 2019-5-28 20:02
小笨鳥O 發(fā)表于 2019-5-24 18:36
我的示波器是玩具型的,80元左右(附圖),看I/O簡單的信號(hào)方便,缺點(diǎn)是會(huì)卡。P0^0取反有信號(hào),只是t是低電 ...

這上邊好像不讓加好友,有問題將你的號(hào)碼發(fā)到我郵箱
作者: 146啊哈    時(shí)間: 2019-5-28 20:20
樓主,發(fā)我一下,謝謝1462970411@qq.com
作者: Lannianji    時(shí)間: 2019-5-29 16:59
1175940555@qq.com,謝謝樓主。
作者: 小笨鳥O    時(shí)間: 2019-5-29 20:25
我只是過于低調(diào) 發(fā)表于 2019-5-28 17:13
加我QQ,782977902,記得備注

謝謝!已加
作者: rtc900    時(shí)間: 2019-5-30 09:51
這個(gè)應(yīng)該有用,航模的油門的控制是不是用的這種pwm的方式呢、?
作者: 我只是過于低調(diào)    時(shí)間: 2019-5-31 10:27
rtc900 發(fā)表于 2019-5-30 09:51
這個(gè)應(yīng)該有用,航模的油門的控制是不是用的這種pwm的方式呢、?

這個(gè)還真不知道,沒有玩過航模
作者: 小笨鳥O    時(shí)間: 2019-5-31 21:44
我只是過于低調(diào) 發(fā)表于 2019-5-26 11:27
其實(shí)給你些建議吧:
1.英語和編程是兩回事,如果真的說他倆有點(diǎn)關(guān)系的話,那可能就是芯片手冊了吧
2.這 ...

您說的對(duì)!C語言基礎(chǔ)很重要。
我從入門時(shí)的LED重頭看,知道延時(shí)用delay,for,while都可以。
又仔細(xì)學(xué)習(xí)定時(shí)器,現(xiàn)在能大概看懂程序了,還有一些不太懂,等你答辯搞好再請教,學(xué)業(yè)優(yōu)先,祝您答得順利!
作者: 6kl    時(shí)間: 2019-6-3 21:31
624622392@qq.com
作者: 6kl    時(shí)間: 2019-6-3 21:32
624622392@qq.com謝謝樓主
作者: 66666ly    時(shí)間: 2019-6-5 17:08
1743607877@qq.com,謝謝樓主
作者: linyuyu    時(shí)間: 2019-6-6 17:25
1576334798@qq.com謝謝
作者: 炫啦    時(shí)間: 2019-6-13 18:15
2963640193@qq.com
現(xiàn)在我也在調(diào)試這個(gè),一籌莫展,看了樓主的帖,頗有啟發(fā),謝謝





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1