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

標題: 51單片機控制舵機嘗試 [打印本頁]

作者: 鋼鐵俠mark-50    時間: 2020-2-21 10:14
標題: 51單片機控制舵機嘗試
本來想要寫一篇關于如何用STC89C52來控制舵機的帖子,結果發現舵機一般有三根線
白色的是信號線,接單片機的一個IO口,
紅色的是電源線,接單片機的vcc,
黑色的也是電源線,接單片機的GND,
但是這三根線是并在一起的,因為是大創項目有不好破壞性的拆開。
現在在家因為疫情又不方便出去,出去也沒有杜邦線買,現在物流也不是很方便。
所以想要控制舵機請務必準備三根公對母的杜邦線,否則就會像我一樣嘗嘗失敗的滋味。

作者: 2409297096    時間: 2020-2-24 22:01
舵機怎么控制呀,能分享一下程序嗎?
作者: 2409297096    時間: 2020-2-24 22:02
舵機怎么控制,能分享一下程序嗎?
作者: angmall    時間: 2020-2-29 07:28
單片機源程序如下:

  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定時方式1
  9.         TH0=0Xfe;
  10.         TL0=0X33;       //計數初值設置為0.5ms
  11.         ET0=1;          //打開定時器0的中斷
  12.         TR0=1;          //打開定時器0
  13.         EA=1;           //開總中斷
  14. }
  15. void Timer() interrupt 1      //特別注意此處,0--外部中斷0,1--定時器中斷0,2--外部中斷1,3--定時器中斷1,4--串行口中斷1
  16. {
  17.         TR0=0;
  18.         TH0=0Xfe;
  19.         TL0=0X33;       //重新賦計數初值為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是比較舒服的連貫動作,20以上動作些許不連貫  10的時候出現打架情況,15的時候打架幾乎沒有,16比較完美
  42.                 {
  43.                         PWM_count=1;
  44.                 }
  45.                 if(a==32)
  46.                 {
  47.                         PWM_count=3;
  48.                         a=0;
  49.                 }
  50.         }
  51. }

復制代碼


這是51黑論壇里面別人分享類似程序參考
http://www.raoushi.com/bbs/dpj-156595-1.html


作者: jvko    時間: 2020-2-29 14:40
支持,來學習了!
作者: Mr韓先森    時間: 2020-3-1 15:43
舵機怎么控制呀,能分享一下程序嗎?
作者: 七星瓢蟲    時間: 2020-3-6 23:23
有教程嗎?分享下
作者: lwlkkl    時間: 2020-3-7 16:39
舵機怎么控制呀,能分享一下程序嗎?

作者: 最高權限    時間: 2020-3-7 20:03
請問樓主晶振是11.0592嗎
作者: liqingyong    時間: 2020-3-10 10:01
經過我的測試舵機0度位置送信號50HZ1.5MS,向右轉45度送50HZ2MS,向左轉45度送信號50HZ1MS,準備做個遙控船放長線釣大魚。
作者: 112都是    時間: 2020-3-12 23:50
可以的
作者: caichl    時間: 2020-3-14 07:29
能分享一下程序嗎?
作者: jhy8341    時間: 2020-3-15 21:12
中斷過程中為何丅R0關閉
作者: 51hewzw    時間: 2020-3-26 17:25
謝謝樓主
作者: PWZ970    時間: 2020-3-27 16:14
能分享一下程序嗎
作者: tang1140461770    時間: 2020-3-31 09:55
舵機怎么控制呀,能分享一下程序嗎?
作者: 你消失的蹤跡    時間: 2020-4-14 09:05
Mr韓先森 發表于 2020-3-1 15:43
舵機怎么控制呀,能分享一下程序嗎?

51單片機舵機控制原理+程序(單個和多個的舵機控制都有)
http://www.raoushi.com/bbs/dpj-184738-1.html
(出處: 單片機論壇)

作者: 你消失的蹤跡    時間: 2020-4-14 09:06
tang1140461770 發表于 2020-3-31 09:55
舵機怎么控制呀,能分享一下程序嗎?

51單片機舵機控制原理+程序(單個和多個的舵機控制都有)
http://www.raoushi.com/bbs/dpj-184738-1.html
(出處: 單片機論壇)

作者: 你消失的蹤跡    時間: 2020-4-14 09:06
2409297096 發表于 2020-2-24 22:02
舵機怎么控制,能分享一下程序嗎?

51單片機舵機控制原理+程序(單個和多個的舵機控制都有)
http://www.raoushi.com/bbs/dpj-184738-1.html
(出處: 單片機論壇)

作者: zhangkaiy1220    時間: 2020-4-14 09:30
點贊,漂亮
作者: cyctfl    時間: 2020-4-17 08:48
支持,謝謝分享
作者: wuzufeng    時間: 2020-4-21 17:08
#include <reg52.h>
unsigned char count;      //0.5ms次數標識
sbit pwm =P3^5;          //PWM信號輸出
sbit jia =P1^2;           //角度增加按鍵檢測IO口
sbit jan =P1^3;           //角度減少按鍵檢測IO口
unsigned char jd;         //角度標識
void delay(unsigned char i)//延時
{
  unsigned char j,k;
  for(j=i;j>0;j--)
    for(k=125;k>0;k--);
}
void Time0_Init()          //定時器初始化
{
TMOD = 0x01;           //定時器0工作在方式1   
IE   = 0x82;
TH0  = 0xfe;
TL0  = 0x33;     //11.0592MZ晶振,0.5ms
    TR0=1;                 //定時器開始
}
void Time0_Int() interrupt 1 //中斷程序
{
TH0  = 0xfe;             //重新賦值
TL0  = 0x33;
    if(count< jd)              //判斷0.5ms次數是否小于角度標識
      pwm=1;                  //確實小于,PWM輸出高電平
    else
      pwm=0;                  //大于則輸出低電平
    count+=1;          //0.5ms次數加1
    count=count%40;     //次數始終保持為40 即保持周期為20ms
}
void keyscan()              //按鍵掃描
{
   if(jia==0)               //角度增加按鍵是否按下
  {
    delay(10);              //按下延時,消抖
    if(jia==0)              //確實按下
     {
      jd++;                 //角度標識加1
      count=0;              //按鍵按下 則20ms周期從新開始
      if(jd==6)
        jd=5;               //已經是180度,則保持
      while(jia==0);        //等待按鍵放開
     }
  }
  if(jan==0)                //角度減小按鍵是否按下
  {
    delay(10);
    if(jan==0)
     {
      jd--;                 //角度標識減1
      count=0;
      if(jd==0)
        jd=1;               //已經是0度,則保持
      while(jan==0);
     }
  }
}
void main()
{
jd=1;
count=0;
Time0_Init();            
while(1)
{
  keyscan();               //按鍵掃描
  
}
}
這是我昨天 能控制舵機的代碼,其他網站拿的,用按鍵控制它轉,有點舒服
作者: ytmoola    時間: 2020-4-27 11:45
沒看明白
作者: 千頭創客    時間: 2020-9-11 23:30
wuzufeng 發表于 2020-4-21 17:08
#include
unsigned char count;      //0.5ms次數標識
sbit pwm =P3^5;          //PWM信號輸出

有接線教程嗎,正極可直接接在芯片右上角的VCC管腳?

作者: 千頭創客    時間: 2020-9-11 23:32
數字和模擬舵機都通用的代碼么?





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