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

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

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

如何使用Arduino和Arduino控制步進電機

454398 ? 來源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2019-11-27 17:43 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

概述

步進電機介于常規(guī)直流電機伺服電機之間。它們的優(yōu)點是可以精確定位,一次可以向前或向后移動一個“步”,但是它們也可以連續(xù)旋轉(zhuǎn)。

在本課程中,您將學(xué)習(xí)如何使用Arduino和Arduino控制步進電機。與第15課中的直流電動機一起使用的相同的L293D電動機控制芯片。

如何使用Arduino和Arduino控制步進電機

零件

要構(gòu)建本課中描述的項目,您將需要以下零件。

零件 數(shù)量

5V步進電機 1

L293D IC

1

半尺寸面包板

1

Arduino Uno R3

1

跳線束

1

電路板布局

步進電機有五根引線,這次我們將使用L293D的兩半。這意味著面包板上有很多連接。

電動機的末端有一個5路插座。

i》

請注意,步進電機的紅色導(dǎo)線未連接任何東西。

Arduino代碼

下面的草圖使用串行監(jiān)視器,在草圖安裝并運行后,打開串行監(jiān)視器并輸入許多“步驟”。嘗試將其設(shè)置為大約500,這將導(dǎo)致電動機旋轉(zhuǎn)大約360度。輸入-500,它將向反方向返回。

Stepper庫是包含在較新的Arduino IDE發(fā)行版中-您可能需要升級。

下載:文件

復(fù)制代碼

/*

Adafruit Arduino - Lesson 16. Stepper

*/

#include

int in1Pin = 12;

int in2Pin = 11;

int in3Pin = 10;

int in4Pin = 9;

Stepper motor(512, in1Pin, in2Pin, in3Pin, in4Pin);

void setup()

{

pinMode(in1Pin, OUTPUT);

pinMode(in2Pin, OUTPUT);

pinMode(in3Pin, OUTPUT);

pinMode(in4Pin, OUTPUT);

// this line is for Leonardo‘s, it delays the serial interface

// until the terminal window is opened

while (!Serial);

Serial.begin(9600);

motor.setSpeed(20);

}

void loop()

{

if (Serial.available())

{

int steps = Serial.parseInt();

motor.step(steps);

}

} /*

Adafruit Arduino - Lesson 16. Stepper

*/

#include

int in1Pin = 12;

int in2Pin = 11;

int in3Pin = 10;

int in4Pin = 9;

Stepper motor(512, in1Pin, in2Pin, in3Pin, in4Pin);

void setup()

{

pinMode(in1Pin, OUTPUT);

pinMode(in2Pin, OUTPUT);

pinMode(in3Pin, OUTPUT);

pinMode(in4Pin, OUTPUT);

// this line is for Leonardo’s, it delays the serial interface

// until the terminal window is opened

while (!Serial);

Serial.begin(9600);

motor.setSpeed(20);

}

void loop()

{

if (Serial.available())

{

int steps = Serial.parseInt();

motor.step(steps);

}

}

正如您所期望的,有一個支持步進電機的Arduino庫。

在包括“ Stepper”庫之后,定義了四個控制引腳“ in1”至“ in4”。

告訴ArduinoStepper哪些引腳連接到電機控制器的庫,使用以下命令:

下載:文件

復(fù)制代碼

Stepper motor(768, in1Pin, in2Pin, in3Pin, in4Pin); Stepper motor(768, in1Pin, in2Pin, in3Pin, in4Pin);

第一個參數(shù)是電機完成一次公轉(zhuǎn)所需要的“步數(shù)”。電機可以一次移動一步,以進行非常精確的定位。

然后開始串行通信,以便Arduino準(zhǔn)備從串行監(jiān)視器接收命令。

最后, followingcommand設(shè)置我們希望步進電動機移動的速度,隨后我們告訴它旋轉(zhuǎn)多少步。

下載:文件

復(fù)制代碼

motor.setSpeed(10); motor.setSpeed(10);

“循環(huán)”功能非常簡單。它等待來自SerialMonitor的命令輸入,然后使用‘parseInt’將發(fā)送的數(shù)字文本轉(zhuǎn)換為int。然后,它指示電動機旋轉(zhuǎn)該步數(shù)。

步進電機

步進電機使用帶齒的輪和電磁體一次將輪微調(diào)為“步進”。

通過以正確的順序給線圈通電,電動機被驅(qū)趕。步進電機在360度旋轉(zhuǎn)中的步數(shù)實際上就是齒輪上的齒數(shù)。

我們正在使用的電機具有48步,但是該電機還集成了一個減速齒輪箱:1: 16表示它需要16 x 48 = 768步。

在本課程中,我們不使用公共Redconnection。僅在使用不同類型的驅(qū)動電路時才提供此連接,該驅(qū)動電路不允許每個線圈中的電流反向。每個線圈都有一個中心連接,這意味著您可以為線圈的左側(cè)或右側(cè)通電,并獲得反向電流的效果,而無需使用可以反向電流的電路。

如果使用L293D具有非常好的反向電流,則不需要這種公共連接,我們可以向每個線圈的整個方向提供電流。

其他要做的事情

嘗試更改設(shè)置步進電動機速度的命令:

下載:文件

復(fù)制代碼

motor.setSpeed(20); motor.setSpeed(20);

到較低的值(例如5)上傳草圖,并注意步進器旋轉(zhuǎn)得更慢。

現(xiàn)在嘗試通過將速度提高到20以上來找到步進器的最大速度。在確定一點之后,您會發(fā)現(xiàn)電機完全不動。這是因為它跟不上要求它步進的脈沖流。

嘗試斷開步進器的橙色和粉紅色引線。它仍然應(yīng)該轉(zhuǎn)動,但是您會注意到它較弱,因為它沒有兩個線圈都在推動電機運轉(zhuǎn)。

責(zé)任編輯:wv

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

    關(guān)注

    152

    文章

    3165

    瀏覽量

    149522
  • Arduino
    +關(guān)注

    關(guān)注

    189

    文章

    6497

    瀏覽量

    190614
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    免費分享Arduino入門+進階(全套例程+書籍)

    創(chuàng)意,比如控制燈光、傳感器、電機等。以下是Arduino入門+進階學(xué)習(xí)資料1.Arduino編程語言說明(相關(guān)文件可在下文掃碼領(lǐng)?。?.Arduin
    的頭像 發(fā)表于 05-22 11:40 ?201次閱讀
    免費分享<b class='flag-5'>Arduino</b>入門+進階(全套例程+書籍)

    《ESP32S3 Arduino開發(fā)指南》第二章 Arduino基礎(chǔ)知識

    的發(fā)展,在Arduino出現(xiàn)以前,雖然也有很多公司在推廣一些簡單易用的可編程控制器,但是由于開發(fā)平臺種類繁多,而且使用這些控制器基本上都需要對電子技術(shù)、數(shù)字邏輯、寄存器等內(nèi)容進行多方面的了解和學(xué)習(xí),才能
    發(fā)表于 05-13 09:28

    步進電機控制實現(xiàn)方法

    ? ? ? 步進電機,作為一種將電脈沖信號轉(zhuǎn)換為相應(yīng)角位移或線位移的電動機,是現(xiàn)代數(shù)字控制系統(tǒng)中不可或缺的重要組件。其工作原理基于電磁學(xué)原理,通過接收數(shù)字控制信號(電脈沖信號)并轉(zhuǎn)化為
    的頭像 發(fā)表于 01-21 16:43 ?1288次閱讀
    <b class='flag-5'>步進</b><b class='flag-5'>電機</b>的<b class='flag-5'>控制</b>實現(xiàn)方法

    如何使用Arduino實現(xiàn)CAN總線通信呢

    CAN(Controller Area Network)總線是一種常用于汽車和工業(yè)控制系統(tǒng)的串行通信協(xié)議,以其高可靠性和實時性而聞名。Arduino,作為一種流行的開源微控制器平臺,可以通過附加
    的頭像 發(fā)表于 12-23 09:06 ?1851次閱讀

    Made with KiCad(十一):Sangaboard步進電機控制

    “ ?Sangaboard 是用于單極步進電機(如廉價的 28BYJ-48 電機)的電機控制器。 ? ” 概覽 Sangaboard 是用于
    的頭像 發(fā)表于 12-04 11:52 ?748次閱讀
    Made with KiCad(十一):Sangaboard<b class='flag-5'>步進</b><b class='flag-5'>電機</b><b class='flag-5'>控制</b>板

    基于Arduino的串口通信項目

    基于Arduino的串口通信項目涉及多個方面,包括硬件連接、軟件編程、串口參數(shù)配置等。 一、硬件準(zhǔn)備 Arduino開發(fā)板 :確保你有一塊Arduino開發(fā)板,如Arduino Uno
    的頭像 發(fā)表于 11-22 09:24 ?2120次閱讀

    stm32與Arduino的比較

    在微控制器的世界里,STM32和Arduino是兩個經(jīng)常被提及的名字。STM32是一系列由STMicroelectronics生產(chǎn)的高性能微控制器,而Arduino則是一個開源電子原型
    的頭像 發(fā)表于 11-19 15:45 ?4111次閱讀

    行星減速步進電機步進電機的區(qū)別

    步進電機是一種將電脈沖信號轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開環(huán)控制電機。其工作原理是通過電子電路將直流電分為多相序控制電流,使用這種電流給
    的頭像 發(fā)表于 11-16 15:11 ?816次閱讀
    行星減速<b class='flag-5'>步進</b><b class='flag-5'>電機</b>與<b class='flag-5'>步進</b><b class='flag-5'>電機</b>的區(qū)別

    如何使用Arduino實現(xiàn)CAN總線通信

    CAN總線(Controller Area Network)是一種多主控制的串行通信協(xié)議,廣泛應(yīng)用于汽車電子、工業(yè)自動化等領(lǐng)域。它以其高可靠性、實時性和靈活性而受到青睞。Arduino作為一個
    的頭像 發(fā)表于 11-12 10:09 ?2633次閱讀

    arduino 6軸同步電機驅(qū)動程序

    arduino 6軸同步電機驅(qū)動程序。含加加減速。
    發(fā)表于 11-09 14:09 ?0次下載

    步進電機如何自適應(yīng)控制?步進電機如何細分驅(qū)動控制?

    步進電機是一種將電脈沖信號轉(zhuǎn)換為角位移或線位移的電機,廣泛應(yīng)用于各種自動化控制系統(tǒng)中。為了提高步進電機
    的頭像 發(fā)表于 10-23 10:04 ?1572次閱讀

    步進電機轉(zhuǎn)速怎么控制高低

    步進電機是一種將電脈沖信號轉(zhuǎn)換為角位移或線位移的開環(huán)控制元件。在非超載的情況下,電機的轉(zhuǎn)速、停止的位置只取決于脈沖信號的頻率和脈沖數(shù),而不受負載變化的影響,當(dāng)
    的頭像 發(fā)表于 10-22 15:55 ?1955次閱讀

    步進電機控制技術(shù)及發(fā)展概況有哪些?

    步進電機是一種將電脈沖信號轉(zhuǎn)換為角位移或線位移的執(zhí)行元件,廣泛應(yīng)用于各種自動化控制系統(tǒng)中。步進電機控制
    的頭像 發(fā)表于 10-22 11:50 ?661次閱讀

    步進電機的伺服控制方法有哪些

    步進電機的伺服控制方法主要包括以下幾種: 1. 位置模式 定義 :在位置模式下,步進伺服電機根據(jù)輸入的位置指令,通過閉環(huán)
    的頭像 發(fā)表于 09-04 09:48 ?1133次閱讀

    步進電機伺服控制系統(tǒng)的作用

    步進電機伺服控制系統(tǒng)是一種精密的電機控制系統(tǒng),它通過精確控制
    的頭像 發(fā)表于 09-04 09:46 ?1177次閱讀