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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9538|回復: 14
打印 上一主題 下一主題
收起左側

關于STM32驅動MG995舵機,請大神指點,糾結好長時間了,不知道問題出在哪?

  [復制鏈接]
回帖獎勵 6 黑幣 回復本帖可獲得 3 黑幣獎勵! 每人限 2 次(中獎概率 60%)
跳轉到指定樓層
樓主
TIM1_PWM_Init(4999,287);//50hz
         while(1)
         {
                 
                 delay_ms(100);
                 if(dir) t=t+20;
                 else t=t-20;
                 if(t>660)dir=0;
                 if(t==140)dir=1;
//                 printf("t:%d\n",t);
                  TIM_SetCompare1(TIM1,t);
         }
}         這段程序還能使舵來回轉,pwm波形正確

但這段程序用示波器檢測pwn都沒有,舵機不動,用串口打印調試如圖所示
while(1)
                 {
                         delay_ms(100);
                         dianpin= GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1);//紅外檢測是否有人,有人輸出高電平
                        printf("%d\n",dianpin);用串口調試,觀看對著人與不對著人的電平高低變化
                         if(!dianpin)//沒檢測到人,讓舵機轉動檢測
                         {
                         delay_ms(20000);
                                 
                         if(dir) t=t+20;
                         else t=t-20;
                         if(t>660) dir=0;        
                         if(t==140)dir=1;               
                        TIM_SetCompare1(TIM1,t);
                        }
                          else//檢測到人,舵機在原來的位置停止
                                {
                                delay_ms(1000);
                                TIM_SetCompare1(TIM1,t);
                                }
                                 printf("t:%d\n ",t); //用串口調試觀察t的值
                                }         
}
不對著人,串口打印如圖所示                                對著人打印如下:
                                             







評分

參與人數 2黑幣 +3 收起 理由
小九九 + 1 還行就是看不太懂
yy960901 + 2 很給力!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂2 踩
回復

使用道具 舉報

沙發
ID:349741 發表于 2018-6-11 19:45 | 只看該作者
支持下,幫頂
回復

使用道具 舉報

板凳
ID:320306 發表于 2018-6-11 21:07 | 只看該作者
你檢測人和沒檢測到人是怎么做的?會不會是你檢測人的波形有問題?
回復

使用道具 舉報

地板
ID:164602 發表于 2018-6-12 07:34 | 只看該作者
MG995舵機的功率較大,只用單片機的IO口是無法驅動的,必須加一個電機驅動模塊才行。
即:舵機的電源口要與電機驅動模塊相連接,控制口與單片機連接,就可以控制MG995舵機了。
回復

使用道具 舉報

5#
ID:229016 發表于 2018-6-12 21:03 | 只看該作者
zsyzdx 發表于 2018-6-11 21:07
你檢測人和沒檢測到人是怎么做的?會不會是你檢測人的波形有問題?

檢測到人理應是讓舵機定住不動,一旦人離開舵機紅外沒檢測到人的話,開始轉動;紅外檢測到人直接會給單片機一個3.3v高電平
回復

使用道具 舉報

6#
ID:229016 發表于 2018-6-12 21:04 | 只看該作者
HC6800-ES-V2.0 發表于 2018-6-12 07:34
MG995舵機的功率較大,只用單片機的IO口是無法驅動的,必須加一個電機驅動模塊才行。
即:舵機的電源口要 ...

我單獨用單片機可以驅動它正反轉,只是加了紅外后連pwm波形都是亂的
回復

使用道具 舉報

7#
ID:229016 發表于 2018-6-12 21:08 | 只看該作者
HC6800-ES-V2.0 發表于 2018-6-12 07:34
MG995舵機的功率較大,只用單片機的IO口是無法驅動的,必須加一個電機驅動模塊才行。
即:舵機的電源口要 ...

TIM1_PWM_Init(4999,287);//50hz
         while(1)
         {
                 
                 delay_ms(100);
                 if(dir) t=t+20;
                 else t=t-20;
                 if(t>660)dir=0;
                 if(t==140)dir=1;
//                 printf("t:%d\n",t);
                  TIM_SetCompare1(TIM1,t);
         }
}
這段代碼就可以使舵機來回轉,pwm波形正確20ms的周期,高電平在0.5毫秒與2.5毫秒來回循環,但是下面這段程序就連pwm都是亂的,連周期都在變
   delay_ms(100);
                         dianpin= GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1);//紅外檢測是否有人,有人輸出高電平
                        printf("%d\n",dianpin);用串口調試,觀看對著人與不對著人的電平高低變化
                         if(!dianpin)//沒檢測到人,讓舵機轉動檢測
                         {
                         delay_ms(20000);
                                 
                         if(dir) t=t+20;
                         else t=t-20;
                         if(t>660) dir=0;        
                         if(t==140)dir=1;               
                        TIM_SetCompare1(TIM1,t);
                        }
                          else//檢測到人,舵機在原來的位置停止
                                {
                                delay_ms(1000);
                                TIM_SetCompare1(TIM1,t);
                                }
                                 printf("t:%d\n ",t); //用串口調試觀察t的值
                                }         
回復

使用道具 舉報

8#
ID:406408 發表于 2018-10-10 10:57 來自手機 | 只看該作者
都是大神,膜拜了!
回復

使用道具 舉報

9#
ID:328753 發表于 2019-8-5 21:14 | 只看該作者
都是大神,膜拜了!也可以在電源線上加一個電阻
回復

使用道具 舉報

10#
ID:328753 發表于 2019-8-5 21:15 | 只看該作者
舵機的信號線加電阻連串口,抱歉說錯了
回復

使用道具 舉報

11#
ID:582082 發表于 2019-8-6 09:45 | 只看該作者
MG995舵機的功率較大,只用單片機的IO口是無法驅動的,必須加一個電機驅動模塊才行。
即:舵機的電源口要與電機驅動模塊相連接,控制口與單片機連接,就可以控制MG995舵機了。
回復

使用道具 舉報

12#
ID:542954 發表于 2019-8-8 09:55 | 只看該作者
我在51上面做的時候曾遇到過相同的問題,紅外模塊觸發中斷之后可能打亂了pwm的輸出周期,可能需要調整的是外部中斷和pwm生成的次序
回復

使用道具 舉報

13#
ID:598763 發表于 2019-8-10 13:53 | 只看該作者
我也遇到過類似問題,沒解決,也來學習一下
回復

使用道具 舉報

14#
ID:158956 發表于 2019-8-12 15:12 | 只看該作者
學習一下,樓主搞出來了嗎
回復

使用道具 舉報

15#
ID:599517 發表于 2019-8-12 22:47 | 只看該作者
你用示波器量一下測人高電平然后用手揮看看有沒有高低電平變更!
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕在线一区二区三区 | 激情影院久久 | 欧美a免费| 日韩一区二区三区视频 | 日韩av一区二区在线观看 | 国产一区二区三区四区三区四 | 在线欧美视频 | 欧美毛片免费观看 | 亚洲一二三区精品 | 欧美色性 | 一本大道久久a久久精二百 国产成人免费在线 | 国产最新网址 | 国产一区二区在线免费视频 | 国产在线精品一区二区三区 | 亚洲男人天堂av | 久久天天 | 中文字幕日韩欧美一区二区三区 | 日韩精品一区二区三区久久 | 久久久久国产精品一区 | 欧美人妖网站 | 国产精品久久久久久久久久久久 | 久久高清国产视频 | av毛片| 野狼在线社区2017入口 | 国产精久久久久久 | 亚洲日韩中文字幕一区 | 国产黄色大片 | 欧美精品在线免费观看 | 亚洲国产一区二区三区在线观看 | 精品美女| 高清人人天天夜夜曰狠狠狠狠 | 91一区 | 国产成人精品一区二区三区在线观看 | 国产黄色一级电影 | 国产日韩中文字幕 | 国产精品免费一区二区三区四区 | 岛国av一区二区 | 中文字幕亚洲精品 | 91国自产| 日韩一区二区三区视频 | 久久精品视频在线观看 |