那曲檬骨新材料有限公司

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

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

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

什么是步進(jìn)電機(jī)?簡單的步進(jìn)電機(jī)驅(qū)動調(diào)試

冬至子 ? 來源:小小李sunny ? 作者:小小李sunny ? 2023-11-27 18:19 ? 次閱讀

1.背景

收拾東西發(fā)現(xiàn)一個步進(jìn)電機(jī)(應(yīng)該是之前從攝像頭拆下來的,42步進(jìn)電機(jī)),驅(qū)動一下試試。簡單記錄一下,內(nèi)容比較簡單,歡迎大家指正。

2.硬件

都是用手邊有的材料:
控制板用ART-Pi;
驅(qū)動板L298N模塊;
電源DC12V;

3.原理

3.1 什么是步進(jìn)電機(jī)

步進(jìn)電機(jī)是將電脈沖信號,轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開環(huán)控制電機(jī),又稱為脈沖電機(jī)。在非超載的情況下,電機(jī)的轉(zhuǎn)速、停止的位置只取決于脈沖信號的頻率和脈沖數(shù),而不受負(fù)載變化的影響。當(dāng)步進(jìn)驅(qū)動器接收到一個脈沖信號時,它就可以驅(qū)動步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動一個固定的角度,稱為“步距角”。

步進(jìn)電機(jī)的旋轉(zhuǎn)是以固定的角度一步一步運(yùn)行的,可以通過控制脈沖個數(shù)來控制角位移量,從而達(dá)到準(zhǔn)確定位的目的,同時可以通過控制脈沖頻率,來控制電機(jī)轉(zhuǎn)動的速度和加速度,從而達(dá)到調(diào)速的目的。(網(wǎng)上摘錄)

3.2 步進(jìn)電機(jī)驅(qū)動方式

1)4拍,整步控制,就是依據(jù)電機(jī)固有結(jié)構(gòu)設(shè)計(jì)固定的步距角工作,一個電脈沖,步進(jìn)電機(jī)前進(jìn)一個步距角;

2)8拍,半步控制,是以電機(jī)固有的結(jié)構(gòu)決定的步距角的一半角度進(jìn)行步進(jìn)旋轉(zhuǎn);

3)微步,細(xì)分控制,步距角更小,就是1/4步、1/8步、1/16步、1/32步,可以到很高的細(xì)分(最高應(yīng)該是1/256步),對應(yīng)的步進(jìn)角度就是在整步步距角乘以微步系數(shù)。微步控制就要用到驅(qū)動芯片了,比如TI的DRV8889A。

3.3 L298N模塊

L298N常用的雙H橋電機(jī)驅(qū)動模塊,都應(yīng)該比較熟悉了不再過多介紹。

4.硬件連接

1)步進(jìn)電機(jī)2相4線,直接接L298N模塊的OUT1~OUT4,ENA、ENB跳線帽,電源DC12V;

OUT1—->A+
OUT2—->A-
OUT3—->B+
OUT4—->B-

2)L298N接ART-Pi

IN1—->PH7
IN2—->PH8
IN3—->PH9
IN4—->PH10

1.jpg

5.程序代碼

這里采用8拍控制方式,簡單驅(qū)動電機(jī)轉(zhuǎn)動,實(shí)現(xiàn)任意角度的正反轉(zhuǎn)控制。

5.1 正轉(zhuǎn)控制(順時針)

void turn_angle_forward(float_t angle)
{
rt_uint16_t half_beat_num = 0;//角度轉(zhuǎn)換半拍總數(shù)
rt_uint16_t half_beat_count = 0;//半拍計(jì)數(shù)
rt_uint8_t beat_now = 0;//當(dāng)前節(jié)拍
//半拍步進(jìn)值360°/50/8 = 0.9°
half_beat_num = (angle * 10) / 9;
while(1)
{
switch (beat_now)
{
case 0://1000
rt_pin_write(IN1_PIN, PIN_HIGH);
rt_pin_write(IN2_PIN, PIN_LOW);
rt_pin_write(IN3_PIN, PIN_LOW);
rt_pin_write(IN4_PIN, PIN_LOW);
beat_now = 1;
break;
case 1: //1010
rt_pin_write(IN1_PIN, PIN_HIGH);
rt_pin_write(IN2_PIN, PIN_LOW);
rt_pin_write(IN3_PIN, PIN_HIGH);
rt_pin_write(IN4_PIN, PIN_LOW);
beat_now = 2;
break;
case 2://0010
rt_pin_write(IN1_PIN, PIN_LOW);
rt_pin_write(IN2_PIN, PIN_LOW);
rt_pin_write(IN3_PIN, PIN_HIGH);
rt_pin_write(IN4_PIN, PIN_LOW);
beat_now = 3;
break;
case 3://0110
rt_pin_write(IN1_PIN, PIN_LOW);
rt_pin_write(IN2_PIN, PIN_HIGH);
rt_pin_write(IN3_PIN, PIN_HIGH);
rt_pin_write(IN4_PIN, PIN_LOW);
beat_now = 4;
break;
case 4://0100
rt_pin_write(IN1_PIN, PIN_LOW);
rt_pin_write(IN2_PIN, PIN_HIGH);
rt_pin_write(IN3_PIN, PIN_LOW);
rt_pin_write(IN4_PIN, PIN_LOW);
beat_now = 5;
break;
case 5://0101
rt_pin_write(IN1_PIN, PIN_LOW);
rt_pin_write(IN2_PIN, PIN_HIGH);
rt_pin_write(IN3_PIN, PIN_LOW);
rt_pin_write(IN4_PIN, PIN_HIGH);
beat_now = 6;
break;
case 6://0001
rt_pin_write(IN1_PIN, PIN_LOW);
rt_pin_write(IN2_PIN, PIN_LOW);
rt_pin_write(IN3_PIN, PIN_LOW);
rt_pin_write(IN4_PIN, PIN_HIGH);
beat_now = 7;
break;
case 7://1001
rt_pin_write(IN1_PIN, PIN_HIGH);
rt_pin_write(IN2_PIN, PIN_LOW);
rt_pin_write(IN3_PIN, PIN_LOW);
rt_pin_write(IN4_PIN, PIN_HIGH);
beat_now = 0;
break;
default:
beat_now = 0;
break;
}
DELAY;
half_beat_count++;
if(angle > 0)
{
if(half_beat_count > half_beat_num)
break;
}
}
turn_stop();
}

5.2 反轉(zhuǎn)控制(逆時針)

反正控制時序,形象點(diǎn)從硬件上來說,把A相和B相調(diào)換,對應(yīng)程序的話就是調(diào)整一下控制時序。

void turn_angle_reverse(float_t angle)
{
rt_uint16_t half_beat_num = 0;//角度轉(zhuǎn)換半拍總數(shù)
rt_uint16_t half_beat_count = 0;//半拍計(jì)數(shù)
rt_uint8_t beat_now = 0;//當(dāng)前節(jié)拍
//半拍步進(jìn)值360°/50/8 = 0.9°
half_beat_num = (angle * 10) / 9;
while(1)
{
switch (beat_now)
{
case 0://0010
rt_pin_write(IN1_PIN, PIN_LOW);
rt_pin_write(IN2_PIN, PIN_LOW);
rt_pin_write(IN3_PIN, PIN_HIGH);
rt_pin_write(IN4_PIN, PIN_LOW);
beat_now = 1;
break;
case 1://1010
rt_pin_write(IN1_PIN, PIN_HIGH);
rt_pin_write(IN2_PIN, PIN_LOW);
rt_pin_write(IN3_PIN, PIN_HIGH);
rt_pin_write(IN4_PIN, PIN_LOW);
beat_now = 2;
break;
case 2://1000
rt_pin_write(IN1_PIN, PIN_HIGH);
rt_pin_write(IN2_PIN, PIN_LOW);
rt_pin_write(IN3_PIN, PIN_LOW);
rt_pin_write(IN4_PIN, PIN_LOW);
beat_now = 3;
break;
case 3://1001
rt_pin_write(IN1_PIN, PIN_HIGH);
rt_pin_write(IN2_PIN, PIN_LOW);
rt_pin_write(IN3_PIN, PIN_LOW);
rt_pin_write(IN4_PIN, PIN_HIGH);
beat_now = 4;
break;
case 4://0001
rt_pin_write(IN1_PIN, PIN_LOW);
rt_pin_write(IN2_PIN, PIN_LOW);
rt_pin_write(IN3_PIN, PIN_LOW);
rt_pin_write(IN4_PIN, PIN_HIGH);
beat_now = 5;
break;
case 5://0101
rt_pin_write(IN1_PIN, PIN_LOW);
rt_pin_write(IN2_PIN, PIN_HIGH);
rt_pin_write(IN3_PIN, PIN_LOW);
rt_pin_write(IN4_PIN, PIN_HIGH);
beat_now = 6;
break;
case 6://0100
rt_pin_write(IN1_PIN, PIN_LOW);
rt_pin_write(IN2_PIN, PIN_HIGH);
rt_pin_write(IN3_PIN, PIN_LOW);
rt_pin_write(IN4_PIN, PIN_LOW);
beat_now = 7;
break;
case 7://0110
rt_pin_write(IN1_PIN, PIN_LOW);
rt_pin_write(IN2_PIN, PIN_HIGH);
rt_pin_write(IN3_PIN, PIN_HIGH);
rt_pin_write(IN4_PIN, PIN_LOW);
beat_now = 0;
break;
default:
beat_now = 0;
break;
}
DELAY;
half_beat_count++;
if(angle > 0)
{
if(half_beat_count > half_beat_num)
break;
}
}
turn_stop();
}
5.3 停止
void turn_stop(void)
{
rt_pin_write(IN1_PIN, PIN_LOW);
rt_pin_write(IN2_PIN, PIN_LOW);
rt_pin_write(IN3_PIN, PIN_LOW);
rt_pin_write(IN4_PIN, PIN_LOW);

5.4 轉(zhuǎn)動效果

正轉(zhuǎn)360°,反轉(zhuǎn)360°

6.總結(jié)

簡單寫了段程序驅(qū)動一下步進(jìn)電機(jī),實(shí)現(xiàn)了步進(jìn)電機(jī)的8拍控制,可以任意角度正反轉(zhuǎn)。調(diào)速可以通過修改脈沖頻率,也就是代碼中的DELAY,但是由于步進(jìn)電機(jī)特性限制,速度不能太快,否則會驅(qū)動不起來;太慢長時間運(yùn)轉(zhuǎn)會發(fā)熱嚴(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ī)驅(qū)動
    +關(guān)注

    關(guān)注

    60

    文章

    1227

    瀏覽量

    86933
  • 步進(jìn)電機(jī)
    +關(guān)注

    關(guān)注

    151

    文章

    3120

    瀏覽量

    147841
  • 正反轉(zhuǎn)控制
    +關(guān)注

    關(guān)注

    3

    文章

    33

    瀏覽量

    11100
  • 脈沖信號
    +關(guān)注

    關(guān)注

    6

    文章

    400

    瀏覽量

    37077
  • L298N
    +關(guān)注

    關(guān)注

    21

    文章

    224

    瀏覽量

    78813
收藏 人收藏

    評論

    相關(guān)推薦

    步進(jìn)電機(jī)驅(qū)動相關(guān)的知識

    之前小白白寫過一篇步進(jìn)電機(jī)驅(qū)動基礎(chǔ),講了最基本的步進(jìn)電機(jī)驅(qū)動方法。
    發(fā)表于 10-19 15:50 ?2216次閱讀
    <b class='flag-5'>步進(jìn)</b><b class='flag-5'>電機(jī)</b><b class='flag-5'>驅(qū)動</b>相關(guān)的知識

    步進(jìn)電機(jī)簡單驅(qū)動方法

    步進(jìn)電機(jī)簡單驅(qū)動方法,了解四軸步進(jìn)電機(jī)驅(qū)動器原理
    發(fā)表于 07-12 08:18

    stm32 驅(qū)動步進(jìn)電機(jī)

    驅(qū)動電路,關(guān)于步進(jìn)電機(jī)部分,主要針對如何設(shè)置步進(jìn)電機(jī)的參數(shù)。
    發(fā)表于 03-14 09:52 ?22次下載

    步進(jìn)電機(jī)的硬件電路設(shè)計(jì),步進(jìn)電機(jī)驅(qū)動原理及方法

    步進(jìn)電機(jī)是一種感應(yīng)電機(jī),它的工作原理是利用電子電路,將直流電變成分時供電的,多相時序控制電流,用這種電流為步進(jìn)電機(jī)供電,
    發(fā)表于 06-11 11:34 ?3.3w次閱讀

    簡單實(shí)現(xiàn)51單片機(jī)步進(jìn)電機(jī)驅(qū)動

    簡單實(shí)現(xiàn)51單片機(jī)步進(jìn)電機(jī)驅(qū)動說明:
    發(fā)表于 11-11 13:06 ?38次下載
    <b class='flag-5'>簡單</b>實(shí)現(xiàn)51單片機(jī)<b class='flag-5'>步進(jìn)</b><b class='flag-5'>電機(jī)</b>的<b class='flag-5'>驅(qū)動</b>

    只要簡單接線配置,輕松將單級步進(jìn)電機(jī)作為雙級步進(jìn)電機(jī)進(jìn)行驅(qū)動

    只要簡單接線配置,輕松將單級步進(jìn)電機(jī)作為雙級步進(jìn)電機(jī)進(jìn)行驅(qū)動
    發(fā)表于 10-28 12:00 ?0次下載
    只要<b class='flag-5'>簡單</b>接線配置,輕松將單級<b class='flag-5'>步進(jìn)</b><b class='flag-5'>電機(jī)</b>作為雙級<b class='flag-5'>步進(jìn)</b><b class='flag-5'>電機(jī)</b>進(jìn)行<b class='flag-5'>驅(qū)動</b>

    步進(jìn)電機(jī)驅(qū)動方式與特征

    到目前為止,我們已經(jīng)介紹了步進(jìn)電機(jī)的結(jié)構(gòu)和步進(jìn)電機(jī)驅(qū)動方法。本文在表格中簡要匯總了步進(jìn)
    的頭像 發(fā)表于 02-24 09:51 ?1538次閱讀
    <b class='flag-5'>步進(jìn)</b><b class='flag-5'>電機(jī)</b>的<b class='flag-5'>驅(qū)動</b>方式與特征

    步進(jìn)電機(jī)簡單驅(qū)動方法_步進(jìn)電機(jī)控制方法

    簡單步進(jìn)電機(jī)驅(qū)動方法是單相雙極驅(qū)動方式,也稱為雙相步進(jìn)驅(qū)
    發(fā)表于 03-08 14:21 ?1.5w次閱讀

    步進(jìn)電機(jī)驅(qū)動教程_步進(jìn)電機(jī)功率計(jì)算

    步進(jìn)電機(jī)是一種特殊的電機(jī),可以通過輸入脈沖信號來控制它的位置和運(yùn)動。步進(jìn)電機(jī)通常由電機(jī)本體和
    發(fā)表于 03-08 14:33 ?4410次閱讀

    步進(jìn)電機(jī)驅(qū)動詳解

    步進(jìn)電機(jī)相比普通直流電機(jī)來說模型結(jié)構(gòu)方面更加復(fù)雜,比如步進(jìn)電機(jī)沒有設(shè)計(jì)直流電機(jī)用于切換電流方向的
    發(fā)表于 03-16 09:28 ?7次下載
    <b class='flag-5'>步進(jìn)</b><b class='flag-5'>電機(jī)</b><b class='flag-5'>驅(qū)動</b>詳解

    步進(jìn)電機(jī)驅(qū)動基礎(chǔ)

    步進(jìn)電機(jī)每輸入一個脈沖信號,轉(zhuǎn)子就轉(zhuǎn)動一個角度或前進(jìn)一步,其輸出的角度輸入的脈沖數(shù)成正比,轉(zhuǎn)速與脈沖頻率成正比。它的驅(qū)動方式也比普通的有刷直流電機(jī)復(fù)雜。 本節(jié)我們就來講講
    發(fā)表于 03-16 09:28 ?7次下載
    <b class='flag-5'>步進(jìn)</b><b class='flag-5'>電機(jī)</b><b class='flag-5'>驅(qū)動</b>基礎(chǔ)

    arduino如何驅(qū)動步進(jìn)電機(jī)

    ,還能輕松驅(qū)動步進(jìn)電機(jī)。本文將詳細(xì)介紹Arduino驅(qū)動步進(jìn)電機(jī)的原理、方法和應(yīng)用。
    的頭像 發(fā)表于 01-14 16:37 ?3796次閱讀

    步進(jìn)電機(jī)驅(qū)動電路原理 步進(jìn)電機(jī)驅(qū)動器可以通用嗎

    步進(jìn)電機(jī)驅(qū)動電路原理是指通過特定的電信號驅(qū)動步進(jìn)電機(jī)工作的原理。而
    的頭像 發(fā)表于 01-24 10:46 ?2717次閱讀

    步進(jìn)電機(jī)工作原理 步進(jìn)電機(jī)簡單驅(qū)動方法

    步進(jìn)電機(jī)是一種將電脈沖信號轉(zhuǎn)換為角位移的電動機(jī)。它具有準(zhǔn)確性、控制性和可靠性強(qiáng)的特點(diǎn),在許多領(lǐng)域得到廣泛應(yīng)用,例如機(jī)械、儀器設(shè)備、電子信息等。理解步進(jìn)電機(jī)的工作原理以及最
    的頭像 發(fā)表于 02-04 09:13 ?1794次閱讀

    步進(jìn)電機(jī)簡單介紹

    步進(jìn)電機(jī)的命名,參數(shù),轉(zhuǎn)速簡單介紹
    的頭像 發(fā)表于 04-17 21:40 ?1272次閱讀
    澳门百家乐官网路单| 晓游棋牌官网| 南通市| 做生意容易成功的八字| 钱大发888扑克| 太阳城百家乐官网娱乐官方网| 夜总会百家乐的玩法技巧和规则| 娱乐网百家乐补丁| 百家乐官网三路秘诀| 百家乐投注秘笈| 威尼斯人娱乐骰宝| 百家乐官网投法| 大发| 百家乐投注方式| 百家乐官网做中介赚钱| 同花顺百家乐的玩法技巧和规则| 玩百家乐官网游戏经验| 百家乐太阳娱乐网| 百家乐官网园百利宫娱乐城怎么样百家乐官网园百利宫娱乐城如何 | 澳门百家乐破解方法| 百家乐官网大路小路| 大发888平台下载| 澳门百家乐官网娱乐场开户注册| bet365提款时间| 7人百家乐桌布| 百家乐官网棋牌交友中心| bet365后备网址| ea百家乐系统| 百家乐官网赌场信息| 威尼斯人娱乐城游戏| 百家乐官网试玩| 皇家赌场下载| 博狗百家乐官网的玩法技巧和规则| 正规博彩通| 真人百家乐赌城| V博百家乐官网的玩法技巧和规则 中骏百家乐官网的玩法技巧和规则 | 百家乐官网开户送18元| 大发888网页版免费| 百家乐小游戏开发| 百家乐官网公式分析| 大发888游戏平台df888|