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

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

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

通過Arduino控制步進(jìn)電機速度和旋轉(zhuǎn)方向

454398 ? 來源:一板網(wǎng) ? 作者:風(fēng)箏 ? 2020-10-28 16:28 ? 次閱讀

在本篇文章中,我們將學(xué)習(xí)如何使用搖桿和Arduino開發(fā)板控制步進(jìn)電機的知識。在這里,我們將使用Arduino UNO開發(fā)板和PS2游戲桿控制步進(jìn)電機的速度和旋轉(zhuǎn)方向。

我們使用帶有內(nèi)部驅(qū)動器的單極5V DC步進(jìn)電機28BYJ-48。因此,不需要任何步進(jìn)電機驅(qū)動。相反,我們將使用ULN2003A達(dá)林頓電機驅(qū)動器IC。 PS2游戲桿由兩個10k歐姆的電位器組成,即一個用于X軸,另一個用于Y軸。它還包括一個按鈕。但是我們將僅使用X軸來控制步進(jìn)電機的運動。

所需的組件

● Arduino UNO開發(fā)板

● 28BYJ-48 5V DC步進(jìn)電機

● ULN2003芯片

● PS2游戲桿

● 5V DC電源

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

步進(jìn)電動機(stepper motor)是一種無刷直流電動機,它將完整的全周長分為多個相等的步長。然后可以命令電機的位置移動并保持在其中一個步進(jìn),而無需任何位置傳感器進(jìn)行反饋(開環(huán)控制器),只要在轉(zhuǎn)矩和速度方面仔細(xì)選擇適合電動機尺寸的電動機即可。

步進(jìn)電機28-BYJ48的連接方式

步進(jìn)電動機28-BYJ48是一個具有5引線線圈布置的單極電動機。必須按特定順序為四個線圈通電。紅線連接到+ 5V電壓,其余四根線將被拉到接地以觸發(fā)相應(yīng)的線圈。我們使用Arduino開發(fā)板以特定順序為這些線圈通電,并使電動機執(zhí)行所需的步數(shù)。

步進(jìn)電機需要借助驅(qū)動器芯片才能進(jìn)行操作。原因是控制器需要較高的電流才能運行,但是僅步進(jìn)電機將無法從其I / O引腳提供足夠的電流來使電機運行。因此使用ULN2003作為驅(qū)動模塊,電流被放大了。

連接電路圖

要使用搖桿和Arduino控制步進(jìn)電機,請如下圖所示組裝電路。

步數(shù)計算

在將代碼上傳到Arduino板上之前需要進(jìn)行步數(shù)計算

在Arduino中,我們將以4步順序操作電機,因此需要計算步幅角(Stride Angle)。

步幅角= 5.625°

Arduino步驟順序= 4

所需步驟順序= 8

步數(shù)角度= 5.625 * 2 = 11.25

每轉(zhuǎn)的步數(shù)= 360 /步角= 360 / 11.25 =每轉(zhuǎn)32步。

源代碼/程序:

#include 《Stepper.h》

#define STEPS 32

// define stepper motor control pins

#define IN1 7

#define IN2 6

#define IN3 5

#define IN4 4

// initialize stepper library

Stepper stepper(STEPS, IN4, IN2, IN3, IN1);

// joystick pot output is connected to Arduino A0

#define joystick A0

void setup()

{

}

void loop()

{

// read analog value from the potentiometer

int val = analogRead(joystick);

// if the joystic is in the middle ===》 stop the motor

if( (val 》 500) && (val 《 523) )

{

digitalWrite(IN1, LOW);

digitalWrite(IN2, LOW);

digitalWrite(IN3, LOW);

digitalWrite(IN4, LOW);

}

else

{

// move the motor in the first direction

while (val 》= 523)

{

// map the speed between 5 and 500 rpm

int speed_ = map(val, 523, 1023, 5, 500);

// set motor speed

stepper.setSpeed(speed_);

// move the motor (1 step)

stepper.step(1);

val = analogRead(joystick);

}

// move the motor in the other direction

while (val 《= 500)

{

// map the speed between 5 and 500 rpm

int speed_ = map(val, 500, 0, 5, 500);

// set motor speed

stepper.setSpeed(speed_);

// move the motor (1 step)

stepper.step(-1);

val = analogRead(joystick);

}

}

}
編輯:hfy

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

    關(guān)注

    51

    文章

    8011

    瀏覽量

    145055
  • 電位器
    +關(guān)注

    關(guān)注

    14

    文章

    996

    瀏覽量

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

    關(guān)注

    150

    文章

    3049

    瀏覽量

    146875
  • 步進(jìn)電動機
    +關(guān)注

    關(guān)注

    0

    文章

    60

    瀏覽量

    12722
收藏 人收藏

    評論

    相關(guān)推薦

    無刷電機遇到旋轉(zhuǎn)方向相反,應(yīng)如何處理

    在處理無刷電機旋轉(zhuǎn)方向相反的問題時,需要從多個角度進(jìn)行分析和解決。 1. 無刷電機的基本原理 無刷電機(BLDC)是一種沒有電刷的
    的頭像 發(fā)表于 09-03 14:16 ?209次閱讀

    基于STM32單片機的步進(jìn)電機控制系統(tǒng)設(shè)計

    系統(tǒng)內(nèi)使用按鍵進(jìn)行步進(jìn)電機控制,可以控制步進(jìn)電機的啟動和關(guān)閉,使用按鍵進(jìn)行加速和減速以及進(jìn)行
    的頭像 發(fā)表于 06-25 14:14 ?532次閱讀
    基于STM32單片機的<b class='flag-5'>步進(jìn)</b><b class='flag-5'>電機</b><b class='flag-5'>控制</b>系統(tǒng)設(shè)計

    旋轉(zhuǎn)編碼器控制電機速度

    旋轉(zhuǎn)編碼器控制電機速度
    發(fā)表于 06-24 09:16 ?4次下載

    如何改變步進(jìn)電機方向的方法

    步進(jìn)電機作為一種精密的控制電機,其方向控制對于許多應(yīng)用至關(guān)重要。本文將詳細(xì)介紹幾種改變
    的頭像 發(fā)表于 06-14 09:56 ?1554次閱讀

    步進(jìn)控制要點多,你可知曉?

    通過控制脈沖的個數(shù)來控制角位移,從而達(dá)到精確定位的目的;同時通過控制脈沖頻率可以控制
    的頭像 發(fā)表于 06-13 09:00 ?176次閱讀

    步進(jìn)電機旋轉(zhuǎn)角度與哪個參數(shù)有關(guān)

    步進(jìn)電機旋轉(zhuǎn)角度的影響,以及如何通過調(diào)整這些參數(shù)來實現(xiàn)精確控制步進(jìn)
    的頭像 發(fā)表于 06-12 09:51 ?624次閱讀

    步進(jìn)電機通過什么控制轉(zhuǎn)動角度

    步進(jìn)電機是一種電磁驅(qū)動的旋轉(zhuǎn)電機,它具有精確控制轉(zhuǎn)動角度的特性。步進(jìn)
    的頭像 發(fā)表于 06-12 09:49 ?800次閱讀

    步進(jìn)電機控制器怎么調(diào)速度

    引言 步進(jìn)電機是一種將電脈沖信號轉(zhuǎn)換為角位移的電機,具有控制精度高、響應(yīng)速度快、結(jié)構(gòu)簡單等優(yōu)點。在自動化設(shè)備、機器人、數(shù)控機床等領(lǐng)域得到了廣
    的頭像 發(fā)表于 06-12 09:17 ?993次閱讀

    arduino控制步進(jìn)電機代碼

    Arduino是一種開放源代碼的電路板平臺,它可以用于控制各種不同的電子設(shè)備,包括步進(jìn)電機。步進(jìn)電機
    的頭像 發(fā)表于 02-14 16:29 ?1646次閱讀

    步進(jìn)電機控制方法 步進(jìn)電機和伺服電機的區(qū)別

    :全步進(jìn)控制步進(jìn)電機最基本的控制方式。它通過控制
    的頭像 發(fā)表于 01-22 17:18 ?942次閱讀

    步進(jìn)電機控制方法 步進(jìn)電機控制器參數(shù)設(shè)置

    步進(jìn)電機是一種在控制系統(tǒng)中常見的電機類型,它以步進(jìn)角度為單位進(jìn)行旋轉(zhuǎn),并且可以精確
    的頭像 發(fā)表于 01-19 10:50 ?2285次閱讀

    步進(jìn)電機工作原理 步進(jìn)電機四條線怎么分別

    步進(jìn)電機是一種可以實現(xiàn)精確的位置控制的驅(qū)動器。它通過交替通電和斷電的方式來控制電機
    的頭像 發(fā)表于 01-18 11:02 ?3399次閱讀

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

    隨著物聯(lián)網(wǎng)的不斷發(fā)展,電機控制技術(shù)得到了廣泛應(yīng)用,其中步進(jìn)電機作為一種常見的電機類型,在各行各業(yè)中得到了廣泛應(yīng)用。而作為一種強大、靈活的開源
    的頭像 發(fā)表于 01-14 16:37 ?3078次閱讀

    基于單片機的步進(jìn)電機控制系統(tǒng)設(shè)計

    該項目利用51單片機實現(xiàn)了一個步進(jìn)電機控制系統(tǒng),可以實現(xiàn)步進(jìn)電機的正反轉(zhuǎn)、加減速、啟動和停止,并通過
    的頭像 發(fā)表于 12-06 16:39 ?3570次閱讀
    基于單片機的<b class='flag-5'>步進(jìn)</b><b class='flag-5'>電機</b><b class='flag-5'>控制</b>系統(tǒng)設(shè)計

    步進(jìn)電機定位控制的常用方法

    步進(jìn)系統(tǒng)=步進(jìn)驅(qū)動器+步進(jìn)電機步進(jìn)電機步進(jìn)驅(qū)動器
    發(fā)表于 10-30 11:30 ?2766次閱讀
    <b class='flag-5'>步進(jìn)</b><b class='flag-5'>電機</b>定位<b class='flag-5'>控制</b>的常用方法