欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 通過三個按鍵PWM控制舵機程序 正點原子stm32 mini板 [打印本頁]

作者: liushuiwuqing    時間: 2017-9-30 19:30
標題: 通過三個按鍵PWM控制舵機程序 正點原子stm32 mini板
我也來發(fā)一個,正點原子stm32 mini板通過三個按鍵PWM控制舵機的程序。

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

***************一般舵機脈沖寬度20ms,高電平寬度與角度對應關系***********
0.5ms————0度;
1.0ms————45度;
1.5ms————90度;
2.0ms————135度;
2.5ms————180度;

根據上面的原理,我們知道單片機只要產生20ms的脈沖信號,通過改變高電平時間從0.5ms到2.5ms變化,就能使舵機轉動到對應的角度


單片機源程序如下:

  1. /*
  2.      此程序是從網上找到的,本人修改了下
  3.      程序小白,如有錯誤,請見諒^_^      
  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();                            //延時函數初始化          
  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按下,舵機緩慢正向轉動
  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同時按下,舵機加速轉動
  34.                            {  
  35.                                          delay_ms(5);
  36.                              cout+=5;
  37.                                  }
  38.                       if(key1==1&&key2==1&&key3==0)    //舵機回到90度(起始位置)
  39.                                                 {  
  40.                                                         cout=1850;                
  41.                                                 }

  42.                         if(key3==0&&key2==0)      //key2按下,舵機緩慢反向轉動
  43.                             {       
  44.                                                         delay_ms(5);
  45.                                 cout-=1;
  46.                                         }
  47.                         else        if(key3==1&&key2==0)   //key2、key3同時按下,舵機加速轉動
  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. }
復制代碼

所有資料51hei提供下載:
PWM控制舵機.rar (395.65 KB, 下載次數: 498)



作者: 孤獨求敗    時間: 2018-4-26 22:15
收下了
作者: 一波三折    時間: 2018-5-13 16:04
謝謝樓主
作者: WJHBCCM    時間: 2018-5-18 09:26
謝謝樓主
作者: 老規(guī)矩    時間: 2018-10-1 15:08
感謝感謝
作者: h348463963    時間: 2019-3-8 15:42
謝謝樓主
作者: sa549236986    時間: 2019-5-11 20:08
請問樓主方不方便加個QQ 我有許多地方請教一下 就差個主程序不會編了

作者: sa549236986    時間: 2019-5-11 20:09
QQ是549236986
作者: JamesGordan    時間: 2019-6-15 20:57
高手  感謝
作者: 18239311863    時間: 2019-8-2 10:09
好資料。值得學習
作者: 4591314    時間: 2019-12-7 15:35
f4的板子可以用么?
作者: 委曲求全    時間: 2019-12-18 08:46
請問舵機用什么型號的

作者: fatee    時間: 2023-4-25 00:43
太棒了




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