找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 8256|回復(fù): 1
收起左側(cè)

單片機(jī)控制舵機(jī)源程序與工作原理講解(按鍵實(shí)現(xiàn)正反轉(zhuǎn))

  [復(fù)制鏈接]
ID:893692 發(fā)表于 2021-8-12 23:11 | 顯示全部樓層 |閱讀模式
​     由于最近放假閑置在家,有空閑時(shí)間做自己想做的小玩意。就想著在家做點(diǎn)小玩意玩。放假?gòu)膶W(xué)校帶了一些模塊回來(lái),有ESP-8266WiFi模塊,HC-05藍(lán)牙模塊,RFID-RC522射頻模塊,JQ8900語(yǔ)音模塊,8歐1W喇叭,51單片機(jī)開(kāi)發(fā)板,STM32F103ZET6核心板,STM32F407ZGT6核心板,0.96寸OLED IIC屏幕...
看著這些外設(shè)和開(kāi)發(fā)板,腦子里當(dāng)時(shí)就想著做一個(gè)基于51單片機(jī)的智能播報(bào)門禁系統(tǒng),本文介紹的是舵機(jī)的控制,后續(xù)會(huì)繼續(xù)更新這個(gè)Demo的各個(gè)部分....
如有不對(duì)煩請(qǐng)各位指正
什么是舵機(jī)
    在機(jī)器人機(jī)電控制系統(tǒng)中,舵機(jī)控制效果是性能的重要影響因素。舵機(jī)可以在微機(jī)電系統(tǒng)和航模中作為基本的輸出執(zhí)行機(jī)構(gòu),其簡(jiǎn)單的控制和輸出使得單片機(jī)系統(tǒng)非常容易與之接口。
   舵機(jī)是一種位置(角度)伺服的驅(qū)動(dòng)器,適用于那些需要角度不斷變化并可以保持的控制系統(tǒng)。目前在高檔遙控玩具,如航模,包括飛機(jī)模型,潛艇模型;遙控機(jī)器人中已經(jīng)使用得比較普遍。舵機(jī)是一種俗稱,其實(shí)是一種伺服馬達(dá)。  
其工作原理是:
控制信號(hào)由接收機(jī)的通道進(jìn)入信號(hào)調(diào)制芯片,獲得直流偏置電壓。它內(nèi)部有一個(gè)基準(zhǔn)電路,產(chǎn)生周期為20ms,寬度為1.5ms的基準(zhǔn)信號(hào),將獲得的直流偏置電壓與電位器的電壓比較,獲得電壓差輸出。最后,電壓差的正負(fù)輸出到電機(jī)驅(qū)動(dòng)芯片決定電機(jī)的正反轉(zhuǎn)。當(dāng)電機(jī)轉(zhuǎn)速一定時(shí),通過(guò)級(jí)聯(lián)減速齒輪帶動(dòng)電位器旋轉(zhuǎn),使得電壓差為0,電機(jī)停止轉(zhuǎn)動(dòng)。當(dāng)然我們可以不用去了解它的具體工作原理,知道它的控制原理就夠了。就象我們使用晶體管一樣,知道可以拿它來(lái)做開(kāi)關(guān)管或放大管就行了,至于管內(nèi)的電子具體怎么流動(dòng)是可以完全不用去考慮的。
舵機(jī)的控制:
舵機(jī)的控制一般需要一個(gè)20ms左右的時(shí)基脈沖,該脈沖的高電平部分一般為0.5ms~2.5ms范圍內(nèi)的角度控制脈沖部分。以180度角度伺服為例,那么對(duì)應(yīng)的控制關(guān)系是這樣的:
   0.5ms--------------0度;
   1.0ms------------45度;
   1.5ms------------90度;
   2.0ms-----------135度;
   2.5ms-----------180度;
1.gif
這個(gè)舵機(jī)動(dòng)圖就很形象的演示了轉(zhuǎn)向

舵機(jī)接線:
2.jpg

接線方法
          紅-------------------------VCC
          棕色----------------------GND
          橙色----------------------信號(hào)線

3.jpg

IMG_20210812_230930.jpg

STC89C52RC單片機(jī)源程序如下:
#include <REGX52.H>
#include "Timer0.h"
#include "key.h"

unsigned char Count;//中斷溢出次數(shù)計(jì)數(shù)
unsigned char Se_Count;//Se_Count = 5時(shí)舵機(jī)反轉(zhuǎn) Se_Count = 20時(shí)舵機(jī)正轉(zhuǎn)
unsigned char Se_TimeCount;//Se_TimeC中斷次數(shù)計(jì)時(shí)

sbit Se = P2^0;
sbit LED = P1^0;
void main(void)
{
        unsigned char KeyNum;
        Timer0Init();
        while(1)
        {
                KeyNum = Key();
                if(KeyNum == 1)
                {
                        Se_Count = 20;//舵機(jī)正轉(zhuǎn)
                        Se_TimeCount = 33;
                        EA = 1;//開(kāi)啟中斷
                        LED = 0;
                        
                }
                if(KeyNum == 2)
                {
                        Se_Count = 5;//舵機(jī)左轉(zhuǎn)
                        Se_TimeCount = 33;
                        EA = 1;//開(kāi)啟中斷
                        LED = 0;
                }

        }
}

void Timer0_Routine() interrupt 1
{
        static unsigned int T0Count,j;
        TL0 = 0xA4;                //設(shè)置定時(shí)初值
        TH0 = 0xFF;                //設(shè)置定時(shí)初值
        T0Count++;
        if(T0Count<=Se_Count)
        {
                Se = 1;
        }
        else if(T0Count>Se_Count&&T0Count<=200)
        {
                Se = 0;
        }
        if(T0Count >=200)
        {
                T0Count = 0;
                j++;
                if(j>=Se_TimeCount)
                {
                        EA = 0;
                        j = 0;
                }
        }

               
               
}

51hei.png
全部代碼51hei下載地址:
project.rar (32.29 KB, 下載次數(shù): 101)

評(píng)分

參與人數(shù) 2黑幣 +68 收起 理由
lyxxzrb + 18 贊一個(gè)!
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:849376 發(fā)表于 2021-8-13 17:01 | 顯示全部樓層
可以可以,昨天也在玩舵機(jī)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表