0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用單片機(jī)控制伺服電機(jī)?

科技觀察員 ? 來源:英銳恩 ? 作者:英銳恩 ? 2023-07-06 10:53 ? 次閱讀

伺服電機(jī)是我們常用的一種電機(jī),在本文的案例中,將學(xué)習(xí)如何使用單片機(jī)控制伺服電機(jī),案例以PIC16F877A單片機(jī)作為接口的連接與控制示例。

什么是伺服電機(jī)?

伺服電機(jī)是一種根據(jù)給定指令運(yùn)行的特殊電機(jī)。它提供了精確的角度控制,這也意味著與其他電機(jī)通電即旋轉(zhuǎn)不同。伺服電機(jī)僅旋轉(zhuǎn)到一定程度或直到需要下一次旋轉(zhuǎn),在這之前電機(jī)會(huì)停止不動(dòng)并等待下一條指令,才能執(zhí)行進(jìn)一步的動(dòng)作。所以,伺服電機(jī)需要借助伺服機(jī)電路進(jìn)行控制才能按要求旋轉(zhuǎn),它的角旋轉(zhuǎn)和最終運(yùn)動(dòng)由位置反饋決定,其控制線的輸入也決定了輸出軸所需的位置。

伺服電機(jī)與PIC16F877A接口的伺服電機(jī)電路圖:

20220401182021.jpg

它有一個(gè)非常簡單的電路圖。伺服電機(jī)的控制線直接連接到單片機(jī)的RB0引腳。該銷將提供電機(jī)所需的角位移。在這個(gè)項(xiàng)目中,假設(shè)我們正在使用一個(gè)角旋轉(zhuǎn)被限制在0°-180°的伺服電機(jī)。我們可以通過使用寬度變化的脈沖以最高精度控制電機(jī)的旋轉(zhuǎn)以達(dá)到所需的角度。

每20毫秒(20000微秒)后向伺服電機(jī)提供一個(gè)脈沖。電機(jī)的角位置由該脈沖的長度決定。角度位置0°、90°和180°在代碼中演示。

下面是用于控制伺服電機(jī)的PIC單片機(jī)接口的C代碼,我們在編譯器中編寫以下與PIC接口的伺服電機(jī)代碼:

void Rotation0() //0度

{

unsigned int i;

for(i=0;i<50;i++)

{

PORTB.F0 = 1;

Delay_us(800); //800us 脈沖

PORTB.F0 = 0;

Delay_us(19200);

}

}

void Rotation90() //90度

{

unsigned int i;

for(i=0;i<50;i++)

{

PORTB.F0 = 1;

Delay_us(1500); //1500us 的脈沖

PORTB.F0 = 0;

Delay_us(18500);

}

}

void Rotation180() //180 度

{

unsigned int i;

for(i=0;i<50;i++)

{

PORTB.F0 = 1;

Delay_us(2200); //2200us 的脈沖

PORTB.F0 = 0;

Delay_us(17800);

}

}

void main()

{

TRISB = 0; // PORTB作為輸出端口

do

{

Rotation0(); //0度

Delay_ms(2000);

Rotation90(); //90度

Delay_ms(2000);

Rotation180(); //180度

}while(1);

}

代碼開頭已經(jīng)聲明了電機(jī)角旋轉(zhuǎn)0°、90°和 180°的各個(gè)函數(shù)。在本教程中,我們沒有使用PIC16F877A的實(shí)際脈沖寬度調(diào)制功能來生成脈沖。而是,脈沖是在程序延遲的幫助下產(chǎn)生的。特定角度的延遲持續(xù)時(shí)間等于電機(jī)旋轉(zhuǎn)到相應(yīng)角度所需的脈沖長度。也就是說,對于0°角,脈沖寬度約為800ms,因此在PORT引腳RB0設(shè)置為高時(shí)引入了800ms的延遲。同樣,旋轉(zhuǎn)90°需要1500ms的脈沖,180°角度需要2200ms。

在主程序中,將PORTB設(shè)置為輸出端口,三個(gè)函數(shù)都被調(diào)用,它們之間有2000ms的延遲。該程序使電機(jī)以某種模式旋轉(zhuǎn),比如0°–90°–180°–0°等等。這將在無限循環(huán)“do-while”循環(huán)中持續(xù)運(yùn)行,直到程序中止。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6030

    文章

    44489

    瀏覽量

    631980
  • 伺服電機(jī)
    +關(guān)注

    關(guān)注

    85

    文章

    2020

    瀏覽量

    57628
收藏 人收藏

    評論

    相關(guān)推薦

    求教 如何用51單片機(jī)控制伺服電機(jī) 正反轉(zhuǎn)一定圈數(shù)

    電機(jī)型號(hào)是多摩川TBL-i IITS4609N
    發(fā)表于 10-08 10:58

    單片機(jī)控制伺服驅(qū)動(dòng)器控制交流伺服電機(jī)。用什么單片....

    單片機(jī)控制伺服驅(qū)動(dòng)器控制交流伺服電機(jī)。用什么單片機(jī)
    發(fā)表于 04-21 21:02

    labview和單片機(jī)控制伺服電機(jī)

    labview做上位機(jī)單片機(jī)做下位機(jī)控制伺服電機(jī),求幫助。。。
    發(fā)表于 09-27 15:00

    單片機(jī)控制伺服電機(jī)控制系統(tǒng)

    有沒有人有相關(guān)的資源呀,分享分享
    發(fā)表于 09-28 10:21

    8098 單片機(jī)伺服電機(jī)PWM 調(diào)速控制

    8098 單片機(jī)伺服電機(jī)PWM 調(diào)速控制  摘 要 本文介紹應(yīng)用8098 單片機(jī)豐富的接口功能, 采用數(shù)字調(diào)制的方法來實(shí)現(xiàn)直流
    發(fā)表于 04-13 15:09 ?130次下載

    應(yīng)用8098單片機(jī)實(shí)現(xiàn)直流伺服電機(jī)PWM調(diào)速控制

    摘要:本文介紹應(yīng)用8098單片機(jī)豐富的接口功能,采用數(shù)字調(diào)制的方法來實(shí)現(xiàn)直流伺服電機(jī)的PWM調(diào)速控制。關(guān)鍵詞:單片機(jī) PWM調(diào)制波 數(shù)字調(diào)制
    發(fā)表于 08-06 12:42 ?147次下載

    交流伺服電機(jī)單片機(jī)控制及其應(yīng)用

    摘要:介紹了用單片機(jī)實(shí)現(xiàn)對伺服電機(jī)控制的一種方案,能實(shí)現(xiàn)對伺服電機(jī)變速、勻速運(yùn)動(dòng)的平穩(wěn)
    發(fā)表于 08-08 17:00 ?562次下載

    基于單片機(jī)的交流伺服電機(jī)控制系統(tǒng)

    基于單片機(jī)的交流伺服電機(jī)控制系統(tǒng),下來看看
    發(fā)表于 04-26 09:43 ?29次下載

    基于單片機(jī)的交流伺服電機(jī)轉(zhuǎn)速控制系統(tǒng)研究

    基于單片機(jī)的交流伺服電機(jī)轉(zhuǎn)速控制系統(tǒng)研究
    發(fā)表于 04-26 09:43 ?19次下載

    交流伺服電機(jī)單片機(jī)控制及其應(yīng)用

    交流伺服電機(jī)單片機(jī)控制及其應(yīng)用,下來看看。
    發(fā)表于 04-26 10:41 ?35次下載

    基于單片機(jī)控制的交流伺服電機(jī)轉(zhuǎn)速控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

    設(shè)計(jì) 一種單片機(jī)控制下 的交流伺服 電機(jī)轉(zhuǎn) 速系統(tǒng) ,詳細(xì)介紹它 的硬件組 成原理及其軟件實(shí)現(xiàn)過程 ,實(shí)現(xiàn) 了對通用交流伺服
    發(fā)表于 11-08 17:34 ?29次下載
    基于<b class='flag-5'>單片機(jī)</b><b class='flag-5'>控制</b>的交流<b class='flag-5'>伺服</b><b class='flag-5'>電機(jī)</b>轉(zhuǎn)速<b class='flag-5'>控制</b>系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

    如何使用單片機(jī)對實(shí)現(xiàn)伺服電機(jī)控制的方法說明

    介紹了用單片機(jī)實(shí)現(xiàn)對伺服電機(jī)控制的一種方案 ,能實(shí)現(xiàn)對伺服電機(jī)變速、勻速運(yùn)動(dòng)的平穩(wěn)
    發(fā)表于 03-14 08:00 ?103次下載
    如何使用<b class='flag-5'>單片機(jī)</b>對實(shí)現(xiàn)<b class='flag-5'>伺服</b><b class='flag-5'>電機(jī)</b><b class='flag-5'>控制</b>的方法說明

    單片機(jī)控制伺服電機(jī)和舵機(jī)的詳細(xì)資料說明

    伺服電機(jī)是指在伺服系統(tǒng)中控制機(jī)械元件運(yùn)轉(zhuǎn)的發(fā)動(dòng)機(jī),是一種補(bǔ)助馬達(dá)間接變速裝置。伺服電機(jī)可以
    發(fā)表于 07-23 17:37 ?10次下載
    <b class='flag-5'>單片機(jī)</b><b class='flag-5'>控制</b><b class='flag-5'>伺服</b><b class='flag-5'>電機(jī)</b>和舵機(jī)的詳細(xì)資料說明

    交流伺服電機(jī)單片機(jī)控制及其應(yīng)用.

    交流伺服電機(jī)單片機(jī)控制及其應(yīng)用.(村田電源技術(shù)(上海有限公司 (研發(fā)中心)-引言伺服電機(jī)屬于一
    發(fā)表于 09-16 15:42 ?76次下載
    交流<b class='flag-5'>伺服</b><b class='flag-5'>電機(jī)</b>的<b class='flag-5'>單片機(jī)</b><b class='flag-5'>控制</b>及其應(yīng)用.

    stm32單片機(jī)控制伺服電機(jī)轉(zhuǎn)動(dòng)固定角度

    stm32單片機(jī)控制伺服電機(jī)轉(zhuǎn)動(dòng)固定角度在用伺服電機(jī)進(jìn)行二維平臺(tái)移動(dòng)時(shí),會(huì)涉及讓二維平臺(tái)移動(dòng)一個(gè)
    發(fā)表于 11-18 20:21 ?92次下載
    stm32<b class='flag-5'>單片機(jī)</b><b class='flag-5'>控制</b><b class='flag-5'>伺服</b><b class='flag-5'>電機(jī)</b>轉(zhuǎn)動(dòng)固定角度