找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 13322|回復(fù): 12
收起左側(cè)

通過三個(gè)按鍵PWM控制舵機(jī)程序 正點(diǎn)原子stm32 mini板

  [復(fù)制鏈接]
ID:201949 發(fā)表于 2017-9-30 19:30 | 顯示全部樓層 |閱讀模式
我也來發(fā)一個(gè),正點(diǎn)原子stm32 mini板通過三個(gè)按鍵PWM控制舵機(jī)的程序。

根據(jù)工作原理,舵機(jī)的具體控制方法就是需要一個(gè)20ms左右的時(shí)基脈沖,
該脈沖的高電平部分一般為0.5ms~2.5ms范圍內(nèi)的角度控制脈沖部分。
脈沖寬度從0.5ms~2.5ms,相對應(yīng)舵盤的位置為0~180度,呈線性變化。

***************一般舵機(jī)脈沖寬度20ms,高電平寬度與角度對應(yīng)關(guān)系***********
0.5ms————0度;
1.0ms————45度;
1.5ms————90度;
2.0ms————135度;
2.5ms————180度;

根據(jù)上面的原理,我們知道單片機(jī)只要產(chǎn)生20ms的脈沖信號(hào),通過改變高電平時(shí)間從0.5ms到2.5ms變化,就能使舵機(jī)轉(zhuǎn)動(dòng)到對應(yīng)的角度


單片機(jī)源程序如下:

  1. /*
  2.      此程序是從網(wǎng)上找到的,本人修改了下
  3.      程序小白,如有錯(cuò)誤,請見諒^_^      
  4. */


  5. #include "led.h"
  6. #include "delay.h"
  7. #include "sys.h"
  8. #include "pwm.h"
  9. #include "key.h"
  10. #define key1 PCin(5)
  11. #define key2 PAin(15)
  12. #define key3 PAin(0)       

  13. u16 cout;
  14. int main(void)
  15. {       
  16.           cout=1850;
  17.                 KEY_Init();
  18.                 delay_init();                            //延時(shí)函數(shù)初始化          
  19.                 LED_Init();                                    //初始化與LED連接的硬件接口
  20.                 TIM1_PWM_Init(1999,719);    //PWM頻率===(2000*720)/72000000=0.02=20ms
  21.            while(1)
  22.         {         
  23.       if(key3==0&&key1==0)   //key1按下,舵機(jī)緩慢正向轉(zhuǎn)動(dòng)
  24.                          {  
  25.                                  if(key1==0)
  26.                            {  
  27.                                          delay_ms(5);
  28.                              cout+=1;
  29.                                  }
  30.                                  
  31.          
  32.                          }
  33.                   else        if(key3==1&&key1==0)  //key1、key3同時(shí)按下,舵機(jī)加速轉(zhuǎn)動(dòng)
  34.                            {  
  35.                                          delay_ms(5);
  36.                              cout+=5;
  37.                                  }
  38.                       if(key1==1&&key2==1&&key3==0)    //舵機(jī)回到90度(起始位置)
  39.                                                 {  
  40.                                                         cout=1850;                
  41.                                                 }

  42.                         if(key3==0&&key2==0)      //key2按下,舵機(jī)緩慢反向轉(zhuǎn)動(dòng)
  43.                             {       
  44.                                                         delay_ms(5);
  45.                                 cout-=1;
  46.                                         }
  47.                         else        if(key3==1&&key2==0)   //key2、key3同時(shí)按下,舵機(jī)加速轉(zhuǎn)動(dòng)
  48.                            {  
  49.                                          delay_ms(5);
  50.                              cout-=5;          
  51.                                  }
  52.                                                                                
  53.               TIM_SetCompare1(TIM1,cout); //PWM輸出
  54.               delay_ms(50);

  55.        
  56.          
  57. }
  58.                          
  59. }
復(fù)制代碼
0.png
所有資料51hei提供下載:
PWM控制舵機(jī).rar (395.65 KB, 下載次數(shù): 498)


評(píng)分

參與人數(shù) 2黑幣 +54 收起 理由
菜雞一只314159 + 4 共享資料的黑幣獎(jiǎng)勵(lì)!
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:228939 發(fā)表于 2018-4-26 22:15 | 顯示全部樓層
收下了
回復(fù)

使用道具 舉報(bào)

ID:317046 發(fā)表于 2018-5-13 16:04 | 顯示全部樓層
謝謝樓主
回復(fù)

使用道具 舉報(bào)

ID:332728 發(fā)表于 2018-5-18 09:26 | 顯示全部樓層
謝謝樓主
回復(fù)

使用道具 舉報(bào)

ID:403519 發(fā)表于 2018-10-1 15:08 | 顯示全部樓層
感謝感謝
回復(fù)

使用道具 舉報(bào)

ID:486944 發(fā)表于 2019-3-8 15:42 | 顯示全部樓層
謝謝樓主
回復(fù)

使用道具 舉報(bào)

ID:535707 發(fā)表于 2019-5-11 20:08 | 顯示全部樓層
請問樓主方不方便加個(gè)QQ 我有許多地方請教一下 就差個(gè)主程序不會(huì)編了
回復(fù)

使用道具 舉報(bào)

ID:535707 發(fā)表于 2019-5-11 20:09 | 顯示全部樓層
QQ是549236986
回復(fù)

使用道具 舉報(bào)

ID:470508 發(fā)表于 2019-6-15 20:57 | 顯示全部樓層
高手  感謝
回復(fù)

使用道具 舉報(bào)

ID:380985 發(fā)表于 2019-8-2 10:09 來自手機(jī) | 顯示全部樓層
好資料。值得學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

ID:620272 發(fā)表于 2019-12-7 15:35 | 顯示全部樓層
f4的板子可以用么?
回復(fù)

使用道具 舉報(bào)

ID:574789 發(fā)表于 2019-12-18 08:46 | 顯示全部樓層
請問舵機(jī)用什么型號(hào)的
回復(fù)

使用道具 舉報(bào)

ID:1073927 發(fā)表于 2023-4-25 00:43 | 顯示全部樓層
太棒了
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表