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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機控制舵機(含程序)

[復制鏈接]
跳轉到指定樓層
樓主
本帖最后由 51黑tt 于 2016-3-5 04:24 編輯

什么是舵機:
舵機如下所示:
  

有三根線,一般依次是地,電源(5V左右),信號(信號的幅值>=3.3V),不清楚各個腳打開舵機一測量就知道了。

2.     其工作原理是:
控制信號由接收機的通道進入信號調制芯片,獲得直流偏置電壓。它內部有一個基準電路,產生周期為20ms,寬度為1.5ms的基準信號,將獲得的直流偏置電壓與電位器的電壓比較,獲得電壓差輸出。最后,電壓差的正負輸出到電機驅動芯片決定電機的正反轉。當電機轉速一定時,通過級聯減速齒輪帶動電位器旋轉,使得電壓差為0,電機停止轉動。當然我們可以不用去了解它的具體工作原理,知道它的控制原理就夠了。就象我們使用晶體管一樣,知道可以拿它來做開關管或放大管就行了,至于管內的電子具體怎么流動是可以完全不用去考慮的。
3.     舵機的控制:
舵機的控制一般需要一個20ms左右的時基脈沖,該脈沖的高電平部分一般為0.5ms~2.5ms范圍內的角度控制脈沖部分。以180度角度伺服為例,那么對應的控制關系是這樣的:
   0.5ms--------------0度;
   1.0ms------------45度;
   1.5ms------------90度;
   2.0ms-----------135度;
   2.5ms-----------180度;

重要說明:

1:上面部分還是成線形關系的,Y=90X-45(X單位是ms,Y單位是度數:)

2:上面所說的0度 45度等是指度 45度位置(什么意思呢:我說明一下就知道了,就拿45度位置來說,若舵機停在0度位置,下載45度位置程序后則舵機停在45度,即順時針走了45度,若當時舵機在135度位置,則反轉90度到45度位置。所以舵機不存在正轉反轉問題。這點非常重要。
3:若想轉動到45度位置,要一直產生1.0ms的高電平(即PA0=1;Delay(1ms);PA0=0;Delay(20ms);要不停的產生這個高低電平,產生PWM脈沖

請看下形象描述吧:

下面是我在ATMEGA32上的測試程序,開發軟件:ICC AVR
#include <iom32v.h>

typedef struct BYTE_BIT
{
      unsigned BIT0:1;
      unsigned BIT1:1;
      unsigned BIT2:1;
      unsigned BIT3:1;
      unsigned BIT4:1;
      unsigned BIT5:1;
      unsigned BIT6:1;
     unsigned BIT7:1;
}BYTEBIT;
#define SET_BIT8_FORMAT(Addr)     (*((volatile BYTEBIT *)&Addr))
# define PORTB_BIT     SET_BIT8_FORMAT(PORTB)
# define _PB0        PORTB_BIT.BIT0
# define _PB1        PORTB_BIT.BIT1
# define _PB2        PORTB_BIT.BIT2
# define _PB3        PORTB_BIT.BIT3
# define _PB4        PORTB_BIT.BIT4
# define _PB5        PORTB_BIT.BIT5
# define _PB6        PORTB_BIT.BIT6
# define _PB7        PORTB_BIT.BIT7

/*delay(1)延時時間為300US
delay(80)延時時間為20mS
delay(4)延時時間為1mS
delay(8)延時時間為2mS
delay(6)延時時間為1.55mS
delay(2)延時時間為0.55MS
delay(10)延時時間為2.5mS
*/
void Delay(int j)
{     
    int i;
     for(;j>0;j--)
    {
          for(i=0;i<35;i++);
    }
}


void main(void)
{
     int i,j;
     DDRB=0XFF;
     while(1)
    {
           //2.0ms   135度位置
          _PB7=1;
           Delay(8);
         _PB7=0;

         Delay(74);

         /*
         //1.0ms   45度位置
        _PB7=1;
        Delay(4);
        _PB7=0;

        Delay(78);
   
         //1.5ms   90度位置
       _PB7=1;
         Delay(6);
         _PB7=0;

         Delay(78);

        // 2.5ms   180度位置
        _PB7=1;
        Delay(10);
       _PB7=0;

         Delay(72);
       //0.5ms         0度位置
     _PB7=1;
       Delay(2);
        _PB7=0;

        Delay(78);

        */
     }
}


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

使用道具 舉報

沙發
ID:102389 發表于 2016-3-5 21:34 | 只看該作者
這動圖做的真棒
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表