在本篇文章中,我們將學(xué)習(xí)如何使用電位器和Arduino開發(fā)板實(shí)現(xiàn)步進(jìn)電機(jī)控制。步進(jìn)電機(jī)可用于軟盤驅(qū)動(dòng)器、平板掃描儀、計(jì)算機(jī)打印機(jī)、繪圖儀、圖像掃描儀、光盤驅(qū)動(dòng)器、智能照明、相機(jī)鏡頭、CNC機(jī)器以及最近比較流行的3D打印機(jī)。
因此,在本文中我們將學(xué)習(xí)有關(guān)步進(jìn)電機(jī)及其應(yīng)用的基礎(chǔ)知識(shí)。我們還將步進(jìn)電機(jī)與Arduino進(jìn)行連接。步進(jìn)電機(jī)的運(yùn)動(dòng)和旋轉(zhuǎn)方向?qū)⑼ㄟ^電位器控制。
什么是步進(jìn)電機(jī)
步進(jìn)電動(dòng)機(jī)(stepper motor)是一種無刷直流電動(dòng)機(jī),它將完整的全周長(zhǎng)分為多個(gè)相等的步長(zhǎng)。然后可以命令電機(jī)的位置移動(dòng)并保持在其中一個(gè)步進(jìn),而無需任何位置傳感器進(jìn)行反饋(開環(huán)控制器),只要在轉(zhuǎn)矩和速度方面仔細(xì)選擇適合電動(dòng)機(jī)尺寸的電動(dòng)機(jī)即可。
步進(jìn)電機(jī)的構(gòu)造和工作原理
步進(jìn)電機(jī)以其特性而聞名,它將一系列輸入脈沖(通常為方波脈沖)轉(zhuǎn)換為軸位置中精確定義的增量。每個(gè)脈沖將軸移動(dòng)固定角度。
實(shí)際上,步進(jìn)電機(jī)具有多個(gè)“帶齒”電磁鐵,圍繞中央齒輪狀鐵片排列。電磁鐵由外部驅(qū)動(dòng)器電路或微控制器供電。為了使電動(dòng)機(jī)軸旋轉(zhuǎn),首先,給電磁鐵供電,該電磁鐵以磁性方式吸引齒輪的齒。當(dāng)齒輪的齒與第一個(gè)電磁鐵對(duì)齊時(shí),它們與下一個(gè)電磁鐵稍有偏移。這意味著當(dāng)下一個(gè)電磁鐵打開并且第一個(gè)電磁鐵關(guān)閉時(shí),齒輪會(huì)輕微旋轉(zhuǎn)以與下一個(gè)電磁鐵對(duì)齊。然后從該處開始重復(fù)該過程。這些旋轉(zhuǎn)中的每一個(gè)都稱為一個(gè)“步”,其中整數(shù)個(gè)步進(jìn)行完整的旋轉(zhuǎn)。這樣,電動(dòng)機(jī)可以旋轉(zhuǎn)一個(gè)精確的角度。
電磁鐵的圓形排列分為幾組,每組稱為一個(gè)相,每組中有相等數(shù)量的電磁鐵。組數(shù)由步進(jìn)電機(jī)的設(shè)計(jì)者選擇。每組的電磁鐵與其他組的電磁鐵交錯(cuò)以形成均勻的布置圖案。例如,如果步進(jìn)電動(dòng)機(jī)具有兩個(gè)組,分別標(biāo)識(shí)為A或B,總共有十個(gè)電磁鐵,則分組模式將為ABABABABAB。
同一組中的電磁鐵都一起通電。因此,具有更多相位的步進(jìn)電動(dòng)機(jī)通常具有更多的導(dǎo)線(或引線)來控制電動(dòng)機(jī)。
所需的組件
為了學(xué)習(xí)使用電位器和Arduino控制步進(jìn)電機(jī),我們需要以下組件:
● Arduino UNO開發(fā)板
● ULN2003驅(qū)動(dòng)芯片
● 10K電位器
● 步進(jìn)電機(jī)28-BYJ48
● 面包板和連接線
電路連接圖
以下是Arduino控制步進(jìn)電機(jī)的電路圖:
步進(jìn)電動(dòng)機(jī)28-BYJ48是一個(gè)具有5引線線圈布置的單極電動(dòng)機(jī)。必須按特定順序?yàn)樗膫€(gè)線圈通電。紅線連接到+ 5V電壓,其余四根線將被拉到接地以觸發(fā)相應(yīng)的線圈。我們使用Arduino開發(fā)板以特定順序?yàn)檫@些線圈通電,并使電動(dòng)機(jī)執(zhí)行所需的步數(shù)。
步進(jìn)電機(jī)需要借助驅(qū)動(dòng)器芯片才能進(jìn)行操作。原因是控制器需要較高的電流才能運(yùn)行,但是僅步進(jìn)電機(jī)將無法從其I / O引腳提供足夠的電流來使電機(jī)運(yùn)行。因此使用ULN2003作為驅(qū)動(dòng)模塊,電流被放大了。
步數(shù)計(jì)算
在將代碼上傳到Arduino板上之前需要進(jìn)行步數(shù)計(jì)算
在Arduino中,我們將以4步順序操作電機(jī),因此需要計(jì)算步幅角(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》 // Include the header file
#define STEPS 64
Stepper stepper(STEPS, 8, 10, 9, 11);
int Pv = 0;
int potV = 0;
void setup() {
Serial.begin(9600);
stepper.setSpeed(200);
}
void loop() {
potV = map(analogRead(A0),0,1024,0,360);
if (potV》Pv)
stepper.step(5);
if (potV《Pv)
stepper.step(-5);
Pv = potV;
Serial.println(Pv);
}
編輯:hfy
-
電位器
+關(guān)注
關(guān)注
14文章
1004瀏覽量
66674 -
步進(jìn)電動(dòng)機(jī)
+關(guān)注
關(guān)注
0文章
60瀏覽量
12753 -
Arduino
+關(guān)注
關(guān)注
187文章
6458瀏覽量
186504 -
3D打印機(jī)
+關(guān)注
關(guān)注
9文章
521瀏覽量
44020
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論