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

標題: 關于STM32驅動MG995舵機,請大神指點,糾結好長時間了,不知道問題出在哪? [打印本頁]

作者: 探路    時間: 2018-6-11 17:15
標題: 關于STM32驅動MG995舵機,請大神指點,糾結好長時間了,不知道問題出在哪?
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的值
                                }         
}
不對著人,串口打印如圖所示                                對著人打印如下:
                                             








作者: 野獸kid    時間: 2018-6-11 19:45
支持下,幫頂
作者: zsyzdx    時間: 2018-6-11 21:07
你檢測人和沒檢測到人是怎么做的?會不會是你檢測人的波形有問題?
作者: HC6800-ES-V2.0    時間: 2018-6-12 07:34
MG995舵機的功率較大,只用單片機的IO口是無法驅動的,必須加一個電機驅動模塊才行。
即:舵機的電源口要與電機驅動模塊相連接,控制口與單片機連接,就可以控制MG995舵機了。

作者: 探路    時間: 2018-6-12 21:03
zsyzdx 發表于 2018-6-11 21:07
你檢測人和沒檢測到人是怎么做的?會不會是你檢測人的波形有問題?

檢測到人理應是讓舵機定住不動,一旦人離開舵機紅外沒檢測到人的話,開始轉動;紅外檢測到人直接會給單片機一個3.3v高電平
作者: 探路    時間: 2018-6-12 21:04
HC6800-ES-V2.0 發表于 2018-6-12 07:34
MG995舵機的功率較大,只用單片機的IO口是無法驅動的,必須加一個電機驅動模塊才行。
即:舵機的電源口要 ...

我單獨用單片機可以驅動它正反轉,只是加了紅外后連pwm波形都是亂的
作者: 探路    時間: 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的值
                                }         
作者: ebingyu    時間: 2018-10-10 10:57
都是大神,膜拜了!
作者: xzsxzs    時間: 2019-8-5 21:14
都是大神,膜拜了!也可以在電源線上加一個電阻
作者: xzsxzs    時間: 2019-8-5 21:15
舵機的信號線加電阻連串口,抱歉說錯了
作者: 浙科陳冠希    時間: 2019-8-6 09:45
MG995舵機的功率較大,只用單片機的IO口是無法驅動的,必須加一個電機驅動模塊才行。
即:舵機的電源口要與電機驅動模塊相連接,控制口與單片機連接,就可以控制MG995舵機了。

作者: witheMe    時間: 2019-8-8 09:55
我在51上面做的時候曾遇到過相同的問題,紅外模塊觸發中斷之后可能打亂了pwm的輸出周期,可能需要調整的是外部中斷和pwm生成的次序
作者: Tadashi    時間: 2019-8-10 13:53
我也遇到過類似問題,沒解決,也來學習一下
作者: hufeng    時間: 2019-8-12 15:12
學習一下,樓主搞出來了嗎

作者: qzwddf    時間: 2019-8-12 22:47
你用示波器量一下測人高電平然后用手揮看看有沒有高低電平變更!




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