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

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

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

將步進(jìn)電機(jī)與ARM7-LPC2148連接起來(lái)的方法

科技觀察員 ? 來(lái)源:circuitdigest ? 作者:Pramoth Thangavel ? 2022-09-23 16:50 ? 次閱讀

在當(dāng)今的自動(dòng)化世界中,步進(jìn)電機(jī)伺服電機(jī)是嵌入式系統(tǒng)中最常用的兩種電機(jī)。兩者都用于各種自動(dòng)化機(jī)器,如機(jī)械臂、CNC 機(jī)器、相機(jī)等。在本教程中,我們將了解如何將步進(jìn)電機(jī)與 ARM7-LPC2148 連接以及如何控制它的速度。

步進(jìn)電機(jī)

步進(jìn)電機(jī)是無(wú)刷直流電機(jī),可以小角度旋轉(zhuǎn),這些角度稱(chēng)為步進(jìn)。我們可以通過(guò)向其引腳提供數(shù)字脈沖來(lái)逐步旋轉(zhuǎn)步進(jìn)電機(jī)。步進(jìn)電機(jī)價(jià)格便宜且設(shè)計(jì)堅(jiān)固。電機(jī)的速度可以通過(guò)改變數(shù)字脈沖的頻率來(lái)控制。

pYYBAGMtc3KAOIR1AAA5saEfR0g545.jpg

根據(jù)定子繞組的類(lèi)型,有兩種類(lèi)型的步進(jìn)電機(jī)可用: 單極 和 雙極。這里我們使用的是最常用的步進(jìn)電機(jī)UNIPOLAR步進(jìn)電機(jī)。要旋轉(zhuǎn)步進(jìn)電機(jī),我們需要按順序?yàn)椴竭M(jìn)電機(jī)的線圈通電。根據(jù)旋轉(zhuǎn)操作,它們分為兩種模式:

全步模式:(4步序列)

單相步進(jìn)(WAVE STEPPING)

兩相步進(jìn)

半步模式(8 步序列)

要了解有關(guān)步進(jìn)電機(jī)及其操作的更多信息,請(qǐng)點(diǎn)擊鏈接。

使用 ARM7-LPC2148 旋轉(zhuǎn)步進(jìn)電機(jī)

pYYBAGMtc3aAHHeEAACKtPpkgRI919.jpg

在這里,我們將使用FULL STEP: ONE PHASE ON 或 WAVE STEPPING模式使用 ARM7-LPC2148 旋轉(zhuǎn)步進(jìn)電機(jī)

在這種方法中,我們一次只能為一個(gè)線圈(LPC2148 的一個(gè)引腳)通電。也就是說(shuō),如果第一個(gè)線圈A通電一小段時(shí)間,軸將改變其位置,然后線圈B同樣通電,軸將再次改變其位置。與此相同,線圈 C 和線圈 D 通電以進(jìn)一步移動(dòng)軸。這使得步進(jìn)電機(jī)的軸通過(guò)一次激勵(lì)一個(gè)線圈來(lái)逐步旋轉(zhuǎn)。

通過(guò)這種方法,我們通過(guò)依次為線圈通電來(lái)逐步旋轉(zhuǎn)軸。這被稱(chēng)為四步序列,因?yàn)樗枰膫€(gè)步驟。

您可以根據(jù)下面給出的值使用半步法(8 序列法)旋轉(zhuǎn)步進(jìn)電機(jī)。

pYYBAGMtc0CAJLN9AAASNtlO03Y685.png

所需組件

硬件

ARM7-LPC2148

ULN2003電機(jī)驅(qū)動(dòng)IC

LED – 4

步進(jìn)電機(jī) (28BYJ-48)

面包板

連接線

軟件:

凱爾uVision5

Flasic 魔法工具

步進(jìn)電機(jī) (28BYJ-48)

28BYJ-48步進(jìn)電機(jī)已如上圖所示。它是一個(gè) 單極步進(jìn) 電機(jī),需要 5V 電源。該電機(jī)采用 4 線圈單極排列,每個(gè)線圈的額定電壓為 +5V,因此使用任何微控制器(如 Arduino、Raspberry Pi、STM32、ARM 等)都相對(duì)容易控制。

但是我們需要一個(gè)像 ULN2003 這樣的電機(jī)驅(qū)動(dòng) IC 來(lái)驅(qū)動(dòng)它,因?yàn)椴竭M(jìn)電機(jī)消耗大電流并且可能會(huì)損壞微控制器。

28BYJ-48 的規(guī)格在以下數(shù)據(jù)表中提供:

poYBAGMtczqAUrpMAAEmaKWpAaY107.png

ULN2003步進(jìn)電機(jī)驅(qū)動(dòng)器

大多數(shù) 步進(jìn)電機(jī) 只能在驅(qū)動(dòng)模塊的幫助下運(yùn)行。這是因?yàn)?a target="_blank">控制器模塊(在我們的例子中為 LPC2148)將無(wú)法從其 I/O 引腳提供足夠的電流供電機(jī)運(yùn)行。所以我們將使用像 ULN2003 模塊這樣的外部模塊作為 步進(jìn)電機(jī)驅(qū)動(dòng)器。

在這個(gè)項(xiàng)目中,我們將使用 ULN2003 電機(jī)驅(qū)動(dòng)器 IC。IC的管腳圖如下:

poYBAGMtcy6AEUZTAACrAvkk0VA402.png

引腳(IN1 至 IN7)是用于連接微控制器輸出的輸入引腳,OUT1 至 OUT7 是用于連接步進(jìn)電機(jī)輸入的相應(yīng)輸出引腳。COM 提供輸出設(shè)備和外部電源輸入源所需的正電源電壓。

電路原理

下面給出了將步進(jìn)電機(jī)與 ARM-7 LPC2148 連接的電路圖

poYBAGMtcyqAfIORAAF6MkRiagg668.pngpYYBAGMtc3mAUlAIAACnXpVq_Mo905.jpg

帶有 ULN2003 電機(jī)驅(qū)動(dòng)器 IC 的 ARM7-LPC2148

LPC2148 的 GPIO 引腳(P0.7 至 P0.10)被視為與 ULN2003 IC 的輸入引腳(IN1-IN4)相連的輸出引腳。

poYBAGMtcySAH1SKAAAP0AgK3UU204.png

ULN2003 IC與步進(jìn)電機(jī)的連接(28BYJ-48)

ULN2003 IC 的輸出引腳 (OUT1-OUT4) 連接到步進(jìn)電機(jī)引腳(藍(lán)色、粉色、黃色和橙色)。

poYBAGMtcx2ABUqSAAAQY17bj-8315.png

ULN2003 的 IN1 到 IN4 的 LED

四個(gè) LED(LED1、LED2、LED4、LED 4)陽(yáng)極引腳分別與 ULN2003 的引腳 IN1、IN2、IN3 和 IN4 連接,LED 的陰極連接到 GND,用于指示來(lái)自 LPC2148 的脈沖。我們可以注意到所提供的脈沖模式。模式顯示在最后附上的演示視頻中。

為步進(jìn)電機(jī)編程 ARM7-LPC2148

要對(duì) ARM7-LPC2148 進(jìn)行編程,我們需要 keil uVision 和 Flash Magic 工具。我們正在使用 USB 電纜通過(guò)微型 USB 端口對(duì) ARM7 Stick 進(jìn)行編程。我們使用 Keil 編寫(xiě)代碼并創(chuàng)建一個(gè) hex 文件,然后使用 Flash Magic 將 HEX 文件閃存到 ARM7 棒。

使用 ARM 7 控制步進(jìn)電機(jī)的完整代碼 在本教程的末尾給出,這里我們解釋它的幾個(gè)部分。

1.為了使用完整的 STEP-ONE PHASE ON方法,我們需要包含以下命令。所以我們?cè)诔绦蛑惺褂孟旅孢@行

無(wú)符號(hào)字符順時(shí)針[4] = {0x1,0x2,0x4,0x8};//順時(shí)針旋轉(zhuǎn)命令
unsigned char antilateral[4] = {0x8,0x4,0x2,0x1}; //逆時(shí)針旋轉(zhuǎn)命令
2.以下行用于將 PORT0 引腳初始化為輸出并將它們?cè)O(shè)置為 LOW

PINSEL0 = 0x00000000;//設(shè)置PORT0引腳
IO0DIR |= 0x00000780; //設(shè)置引腳P0.7、P0.8、P0.9、P0.10為OUTPUT
IO0CLR = 0x00000780; //設(shè)置P0.7、P0.8、P0.9、P0.10引腳輸出為低
3.通過(guò)使用此for循環(huán)延遲,根據(jù)順時(shí)針命令將 PORT 引腳(P0.7 至 P0.10)設(shè)置為高電平

for (int j=0; j {
for(int i=0; i<4;i++)
{
IOPIN0 = 順時(shí)針[i]<<7; // 左移后將引腳值逐一設(shè)置為 HIGH
delay(0x10000); //改變這個(gè)值來(lái)改變旋轉(zhuǎn)速度
}
}
Anti-clock Wise 也一樣

for (int z=0;z {
for(int i=0; i<4;i++)
{
IOPIN0 =逆時(shí)針[i]<<7;
延遲(0x10000);//改變這個(gè)值來(lái)改變旋轉(zhuǎn)速度
}
}
4.改變延遲時(shí)間改變步進(jìn)電機(jī)的轉(zhuǎn)速

延遲(0x10000);//更改此值以更改旋轉(zhuǎn)速度
(0x10000)-全速
(0x50000)-變慢
(0x90000)-比以前變慢。因此,通過(guò)增加延遲,我們降低了旋轉(zhuǎn)速度。
5.一整圈的步數(shù)可以用下面的代碼改變

int no_of_steps = 550; //將此值更改為所需的旋轉(zhuǎn)步數(shù)(550 為一個(gè)完整的旋轉(zhuǎn))
對(duì)于我的步進(jìn)電機(jī),完全旋轉(zhuǎn)有 550 步,半旋轉(zhuǎn)有 225 步。所以根據(jù)你的要求改變它。

6.此功能用于創(chuàng)建延遲時(shí)間。

void delay(unsigned int value) //產(chǎn)生延遲的函數(shù)
{
unsigned int z;
for(z=0;z<值;z++);
}

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

    關(guān)注

    150

    文章

    3041

    瀏覽量

    146841
  • ARM7
    +關(guān)注

    關(guān)注

    3

    文章

    207

    瀏覽量

    50237
  • LPC2148
    +關(guān)注

    關(guān)注

    0

    文章

    25

    瀏覽量

    14896
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    使用ARM7-LPC2148控制伺服電機(jī)的教程

    在本教程中,我們將使用 ARM7-LPC2148 控制伺服電機(jī)。伺服電機(jī)步進(jìn)電機(jī)具有低功耗的優(yōu)勢(shì)。當(dāng)?shù)竭_(dá)所需位置時(shí),伺服
    發(fā)表于 09-22 16:40 ?1347次閱讀
    使用<b class='flag-5'>ARM7-LPC2148</b>控制伺服<b class='flag-5'>電機(jī)</b>的教程

    ARM7-LPC2148連接7段顯示器的教程

    今天在本教程中,我們將用ARM7-LPC2148連接7段顯示器。在詳細(xì)介紹之前,我們將了解如何控制7段模塊以顯示任意數(shù)量的字符。
    的頭像 發(fā)表于 10-28 15:34 ?2716次閱讀
    用<b class='flag-5'>ARM7-LPC2148</b><b class='flag-5'>連接</b><b class='flag-5'>7</b>段顯示器的教程

    16x2 LCD與ARM7-LPC2148連接并顯示文字

    在本教程中,我們將了解如何 16x2 LCD 與 ARM7-LPC2148 微控制器連接,并顯示簡(jiǎn)單的歡迎消息。如果您是 ARM7 的新手,請(qǐng)從
    的頭像 發(fā)表于 10-28 17:12 ?1782次閱讀
    <b class='flag-5'>將</b>16x2 LCD與<b class='flag-5'>ARM7-LPC2148</b><b class='flag-5'>連接</b>并顯示文字

    如何數(shù)據(jù)庫(kù)的資料與報(bào)表連接起來(lái)

    如何數(shù)據(jù)庫(kù)的資料與報(bào)表連接起來(lái)
    發(fā)表于 08-07 16:04

    請(qǐng)問(wèn)有什么方法能用線把這里連接起來(lái)

    這兒必須用線連接起來(lái),有沒(méi)有別的方法?89C52的,連接起來(lái)非常費(fèi)勁!我是新手,希望高手來(lái)看看
    發(fā)表于 09-19 05:36

    如何QDR與Virtex 7 FPGA連接起來(lái)

    我們正在QDR與Virtex 7 FPGA連接起來(lái)。QDR - 賽普拉斯 - 帶Xilinx的CY7C2663KV18-450BZI - XC7
    發(fā)表于 05-22 08:38

    利用開(kāi)發(fā)板繼電器和發(fā)電機(jī)連接起來(lái)

    利用開(kāi)發(fā)板繼電器和發(fā)電機(jī)連接起來(lái)通過(guò)兩種方法控制風(fēng)扇的轉(zhuǎn)動(dòng)1.通過(guò)串口的方式進(jìn)行輸入2.通過(guò)開(kāi)發(fā)板上的按鈕進(jìn)行控制最終都能使風(fēng)扇按照操作轉(zhuǎn)動(dòng)視頻:
    發(fā)表于 09-08 07:47

    如何藍(lán)牙與STM32連接起來(lái)

    藍(lán)牙模塊有何功能?如何藍(lán)牙與STM32連接起來(lái)呢?
    發(fā)表于 11-18 07:02

    如何EMMC SanDisk iNAND? 7250與LPC 1850連接起來(lái)?

    我們正在嘗試 EMMC SanDisk iNAND? 7250 與 LPC 1850 連接起來(lái)。EMMC 使用 MMC 5.1,但 1850 提到 4.4 作為標(biāo)準(zhǔn)。經(jīng)過(guò)研究,發(fā)現(xiàn)4.4是向下兼容
    發(fā)表于 04-27 06:33

    CS1238的AINN1和AINN2連接起來(lái)用嗎?

    CS1238的AINN1和AINN2連接起來(lái)用嗎? 需要測(cè)如此信號(hào),打算把兩個(gè)差分對(duì)的負(fù)引腳連接起來(lái)用,這個(gè)用法行不行?
    發(fā)表于 08-24 17:51

    HC-05和MSP430連接起來(lái)控制LED的方式

     今天我們學(xué)習(xí)如何藍(lán)牙模塊 HC-05 與德州儀器 (TI) 的 MSP430 Launchpad 連接起來(lái)。在這個(gè)接口示例中,我們將使用藍(lán)牙終端安卓應(yīng)用程序從智能手機(jī)控制 MSP430 的板載 LED 。
    發(fā)表于 08-29 17:30 ?1498次閱讀
    <b class='flag-5'>將</b>HC-05和MSP430<b class='flag-5'>連接起來(lái)</b>控制LED的方式

    步進(jìn)電機(jī)與Atmega16連接起來(lái)方法

    在本教程中,我們將使用 Atmel Studio 7.0 28BYJ-48步進(jìn)電機(jī)與 Atmega16 AVR 微控制器連接起來(lái)。步進(jìn)
    發(fā)表于 09-09 14:40 ?1204次閱讀
    <b class='flag-5'>將</b><b class='flag-5'>步進(jìn)</b><b class='flag-5'>電機(jī)</b>與Atmega16<b class='flag-5'>連接起來(lái)</b>的<b class='flag-5'>方法</b>

    微型伺服電機(jī)與Atmega16連接起來(lái)方法

    在本教程中,我們將使用 Atmel Studio 7.0微型伺服電機(jī)與 Atmega16 AVR 微控制器連接起來(lái)。伺服電機(jī)額定工作電壓為4.8-6V。我們可以通過(guò)應(yīng)用脈沖串或PWM
    發(fā)表于 09-09 15:00 ?1366次閱讀
    <b class='flag-5'>將</b>微型伺服<b class='flag-5'>電機(jī)</b>與Atmega16<b class='flag-5'>連接起來(lái)</b>的<b class='flag-5'>方法</b>

    如何使用ARM7-LPC2148微控制器中的PWM控制LED的亮度

    在本教程中,我們將使用 ARM7-LPC2148 微控制器中的 PWM 控制 LED 的亮度。
    的頭像 發(fā)表于 09-23 15:14 ?3167次閱讀
    如何使用<b class='flag-5'>ARM7-LPC2148</b>微控制器中的PWM控制LED的亮度

    如何在ARM7-LPC2148中使用ADC

    在本教程中,我們將了解如何在 ARM7-LPC2148 中使用 ADC,方法是向模擬引腳提供不同的電壓,并在模數(shù)轉(zhuǎn)換后將其顯示在16x2 LCD 屏幕上。
    的頭像 發(fā)表于 09-23 17:02 ?2972次閱讀
    如何在<b class='flag-5'>ARM7-LPC2148</b>中使用ADC