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

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

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

將步進(jìn)電機(jī)與STM32F103C8板連接的教程

科技觀察員 ? 來源:circuitdigest ? 作者:Pramoth Thangavel ? 2022-11-07 15:52 ? 次閱讀

步進(jìn)電機(jī)是無刷直流電機(jī),可以小角度旋轉(zhuǎn),這些角度稱為步進(jìn)。一般步進(jìn)電機(jī)使用200步完成360度旋轉(zhuǎn),意味著其每步旋轉(zhuǎn)1.8度。步進(jìn)電機(jī)用于許多需要精確旋轉(zhuǎn)運(yùn)動的設(shè)備,如機(jī)器人天線、硬盤驅(qū)動器等。我們可以通過給出適當(dāng)?shù)恼f明將步進(jìn)電機(jī)旋轉(zhuǎn)到任何特定角度。主要有兩種類型的步進(jìn)電機(jī)可供選擇,單極和雙極。單極更容易操作、控制,也更容易獲得。在本教程中,我們將步進(jìn)電機(jī)與STM32F103C8(藍(lán)色藥丸)板連接。

所需材料

STM32F103C8 (藍(lán)色藥丸)

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

ULN2003 集成電路

電位器 10k

面包板

跳線

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

28BYJ-48 是一款單極步進(jìn)電機(jī),需要 5V 電源。電機(jī)具有4線圈單極性布置,每個(gè)線圈的額定電壓為+5V,因此使用Arduino,Raspberry Pi和STM32等任何微控制器都相對容易控制。但是我們需要像ULN2003這樣的電機(jī)驅(qū)動IC來驅(qū)動它,因?yàn)椴竭M(jìn)電機(jī)消耗大電流,可能會損壞微控制器。

poYBAGNouTOAcaulAACKtPpkgRI756.jpg

另一個(gè)需要注意的重要數(shù)據(jù)是步幅角度:5.625°/64。這意味著電機(jī)按 8 步順序運(yùn)行時(shí)每一步移動 5.625 度,完成一整圈需要 64 步(5.625*64=360)。以下數(shù)據(jù)表中提供了其他規(guī)格

pYYBAGNouTaAbZUwAAB7b7VRrg0628.png

ULN2003 電機(jī)驅(qū)動器 IC

它用于根據(jù)從微控制器接收到的脈沖驅(qū)動電機(jī)。以下是ULN2003的圖片圖:

poYBAGNouTiATXtKAABQcZ6E12U320.png

引腳(IN1 到 IN7)是輸入引腳,(OUT 1 到 OUT 7)是相應(yīng)的輸出引腳。COM 被賦予輸出設(shè)備所需的正源電壓。步進(jìn)電機(jī)的進(jìn)一步連接在下面的電路圖部分給出。

電路圖和連接

poYBAGNouUCAQbPrAACrOCxMxRI602.png

以下是上述電路圖的連接說明。

STM32F103C8 (藍(lán)色藥丸)

如下圖所示,PWM引腳以波形(~)表示,有15個(gè)這樣的引腳可用于步進(jìn)電機(jī)的脈沖輸出。我們只需要四個(gè)引腳,我們使用(PA0到PA3)。

STM32-Pin-Details_0.png

STM32F103C8 帶 ULN2003 電機(jī)驅(qū)動器 IC

引腳(PA0 至 PA3)被視為與 ULN2003 IC 的輸入引腳 (IN1-IN4) 連接的輸出引腳。

STM32F103C8的引腳 ULN2003 集成電路引腳
質(zhì)保 合1
質(zhì)量保證 IN2
質(zhì)量保證 HNR
卡塔爾里亞爾 IN4
5V .COM
接地 接地

ULN2003 帶步進(jìn)電機(jī)的集成電路 (28BYJ-48)

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

ULN2003 集成電路引腳 步進(jìn)電機(jī)引腳
輸出1
輸出2 黃色
輸出3 粉紅色
輸出4 藍(lán)
.COM

STM32F103C8 帶電位計(jì)

電位計(jì)用于設(shè)定步進(jìn)電機(jī)的速度。

電位計(jì) STM32F103C8
左(輸入) 3.3
中心(輸出) 質(zhì)保
右(接地) 接地

采用STM32F103C8的旋轉(zhuǎn)步進(jìn)電機(jī)

以下是操作步進(jìn)電機(jī)的幾個(gè)步驟:

通過改變電位器設(shè)置步進(jìn)電機(jī)的速度。

然后通過ARDUINO IDE(工具>串行監(jiān)視器)或CTRL + SHIFT + M中的串行MONITER以順時(shí)針(+值)或逆時(shí)針方向(-值)手動輸入旋轉(zhuǎn)步驟。

根據(jù)串行監(jiān)視器中給出的輸入值,步進(jìn)電機(jī)中會發(fā)生某些旋轉(zhuǎn)步驟。

例如

串行監(jiān)控器中給出的值 旋轉(zhuǎn)
2048 (360) 克萊克·懷斯
1024 (180)CLK WISE
512 (90)CLK WISE
-2048 (-360)反克利明智
-1024 (-180)反克利明智
-512 (-90)反克利明智

pYYBAGNouU2AMW14AACrF-gWbvY631.jpg

步進(jìn)電機(jī)STM32編程

與前面的教程一樣,我們通過USB端口使用Arduino IDE對STM32F103C8進(jìn)行了編程,而無需使用FTDI編程器。

首先,我們必須包含步進(jìn)庫文件#include ,以便使用步進(jìn)器函數(shù)。

#include

然后我們定義 no。旋轉(zhuǎn)時(shí)要完成的步驟,這里我們使用 32,因?yàn)槲覀兪褂玫氖侨剑? 步序列)所以 (360/32 = 11.25 度)。因此,對于一步,軸移動 11.25 度,即步幅角。在 4 步序列中,一個(gè)完整的旋轉(zhuǎn)需要 4 個(gè)步驟。

#define STEPS 32

我們還可以使用半步模式,其中有 8 步序列 (360/64=5.625) 步幅。

Steps per revolution = 360 / STEP ANGLE

當(dāng)我們設(shè)置速度時(shí),我們必須從連接到電位計(jì)的PA4中獲取模擬值。所以我們必須為此聲明 pin

const int speedm = PA4

然后,我們將模擬值轉(zhuǎn)換為數(shù)字值,將這些值存儲在整數(shù)類型的變量中,之后我們必須映射ADC值以設(shè)置速度,因此我們使用以下語句。在此處了解有關(guān)將ADC與STM32配合使用的更多信息

int adc = analogRead(speedm);

int result = map(adc, 0, 4096, 1, 1023);

為了設(shè)置速度,我們使用stepper.setSpeed(result);我們的速度范圍為 (1-1023)。

我們必須創(chuàng)建如下所示的實(shí)例來設(shè)置連接到電機(jī)的引腳。在這些步驟中要小心,因?yàn)榇蠖鄶?shù)步驟在此模式中都會出錯(cuò)。它們給出了錯(cuò)誤的模式,因此線圈無法通電。

Stepper stepper(STEPS, PA0, PA2, PA1, PA3);

以下語句用于從串行監(jiān)視器獲取步驟的值。例如,我們需要 2048 個(gè)值進(jìn)行一次完整旋轉(zhuǎn) (32*64 = 2048),即 64 將是齒輪比,32 將是一次旋轉(zhuǎn)的半步序列。

rotate = Serial.parseInt();

下面的代碼用于調(diào)用實(shí)例并運(yùn)行電機(jī)。如果旋轉(zhuǎn)值為 1,則調(diào)用函數(shù)步進(jìn)器一次,完成一次移動。

stepper.step(rotate);

/STM32 stepper motor control code

//CIRCUIT DIGEST


#include // Include the Stepper motor header file

#define STEPS 32 // change this to the number of steps on your motor

const int speedm = PA4; // Pin for input speed

Stepper stepper(STEPS, PA0, PA2, PA1, PA3); // create an instance of the stepper class using the steps and pins

int rotate = 0; //declare variable rotate with 0 for input rotation.

void setup() //Setup() runs only once

{

Serial.begin(9600); //begins serial communication at 9600baud rate

pinMode(speedm,INPUT); //set pin PA4 as input

}


void loop() //loop() runs infinitely

{

if (Serial.available()>0) //Checks if serial data is entered or not in serial monitor

{

rotate = Serial.parseInt(); //gets the value for rotation from serial monitor

int adc = analogRead(speedm); //read analog value from pin PA0

int result = map(adc, 0, 4096, 0, 1023); //maps the result of ADC from (0to4096)with (0to1023)

stepper.setSpeed(result); //sets the speed of motor

stepper.step(rotate); //makes the motor to rotate

Serial.println(rotate); //prints the value you specified to rotate

}

}

聲明:本文內(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ìn)電機(jī)
    +關(guān)注

    關(guān)注

    150

    文章

    3111

    瀏覽量

    147486
  • STM32F103C8
    +關(guān)注

    關(guān)注

    1

    文章

    23

    瀏覽量

    8088
收藏 人收藏

    評論

    相關(guān)推薦

    使用ESP8266STM32F103C8連接到互聯(lián)網(wǎng)的方法

    在本教程中,我們使用 ESP8266 STM32F103C8 連接到互聯(lián)網(wǎng)。在這里,我們 ESP8266 Wi-Fi 模塊與我們的藍(lán)丸 STM
    的頭像 發(fā)表于 10-28 17:25 ?1.1w次閱讀
    使用ESP8266<b class='flag-5'>將</b><b class='flag-5'>STM32F103C8</b><b class='flag-5'>連接</b>到互聯(lián)網(wǎng)的方法

    如何在STM32F103C8中使用中斷

    在本項(xiàng)目中,為了理解STM32F103C8中的中斷,我們將使用按鈕作為外部中斷。在這里,我們將從 0 開始遞增一個(gè)數(shù)字并將其顯示在 16x2 LCD 上,每當(dāng)按下按鈕時(shí),LED 就會亮起,LCD 顯示屏就會顯示中斷。松開按鈕后,LED 立即熄滅。
    的頭像 發(fā)表于 11-03 17:11 ?2533次閱讀
    如何在<b class='flag-5'>STM32F103C8</b>中使用中斷

    伺服電機(jī)STM32F103C8連接起來的教程

    在本教程中,我們將了解伺服電機(jī)以及如何伺服與STM32F103C8連接。 還連接了一個(gè)電位計(jì)
    發(fā)表于 11-04 14:49 ?3013次閱讀
    <b class='flag-5'>將</b>伺服<b class='flag-5'>電機(jī)</b>與<b class='flag-5'>STM32F103C8</b><b class='flag-5'>板</b><b class='flag-5'>連接</b>起來的教程

    如何使用USB端口對STM32F103C8進(jìn)行編程

    搭載STM32F103C8微控制器的STM32開發(fā)采用ARM Cortex M3架構(gòu),具有高運(yùn)行速度和更多外設(shè)選項(xiàng),因此越來越受歡迎。此外,由于該可以使用Arduino IDE輕松
    發(fā)表于 11-08 17:11 ?6082次閱讀
    如何使用USB端口對<b class='flag-5'>STM32F103C8</b><b class='flag-5'>板</b>進(jìn)行編程

    如何LCD與STM32F103C8T6 STM32開發(fā)連接并編程

    在本教程中,我們學(xué)習(xí)如何16×2 LCD顯示器與STM32F103C8T6 STM32開發(fā)連接
    的頭像 發(fā)表于 11-09 16:18 ?1.3w次閱讀
    如何<b class='flag-5'>將</b>LCD與<b class='flag-5'>STM32F103C8</b>T6 <b class='flag-5'>STM32</b>開發(fā)<b class='flag-5'>板</b><b class='flag-5'>連接</b>并編程

    STM32F103C8

    有人用過STM32F103C8嗎?CAN總線與它連接時(shí)應(yīng)該接那兩個(gè)引腳,說明書里沒有具體的說法,謝謝啦
    發(fā)表于 08-04 20:32

    STM32F103C8開發(fā)介紹參考資料下載

    本帖最后由 真心朋友 于 2013-6-27 16:28 編輯 STM32F103C8開發(fā)(旺旺:fan2012918)寶貝詳情一、板子資源一個(gè)JLINK\ULINK 20PIN仿真器接口
    發(fā)表于 06-18 14:14

    stm32f103c8

    近期買了一塊stm32f103c8的系統(tǒng),苦于沒有對應(yīng)資料學(xué)習(xí),哪位神給介紹下。網(wǎng)上找過很多資料,可差不多都是和指定開發(fā)相關(guān)的,不好入門啊。{:23:}
    發(fā)表于 07-14 10:57

    stm32f103C8如何移植FreeRTOS

    命名為FreeRTOS。選擇芯片STM32F103C8。3、搭建工程框架,打開官方固件庫包:1)STM32F10x_StdPeriph_Lib_V3.5.0\Libraries...
    發(fā)表于 08-24 07:57

    IAP在STM32F103C8上的實(shí)現(xiàn)

    IAP 在STM32F103C8上的實(shí)現(xiàn)已經(jīng)在[STM32F103C8在應(yīng)用編程(IAP)介紹及實(shí)現(xiàn)]具體講解了。但由于STM32F030C8STM32F103C8在中斷向量表上的設(shè)
    發(fā)表于 03-02 07:34

    STM32F103C8的電路原理圖免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是STM32F103C8的電路原理圖免費(fèi)下載。
    發(fā)表于 04-23 17:14 ?63次下載
    <b class='flag-5'>STM32F103C8</b>的電路原理圖免費(fèi)下載

    STM32F103C8T6核心的資料合集免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是STM32F103C8T6核心的資料合集免費(fèi)下載包括了:STM32F103C8T6核心測試程序(PC13閃爍),ST
    發(fā)表于 06-04 08:00 ?720次下載
    <b class='flag-5'>STM32F103C8</b>T6核心<b class='flag-5'>板</b>的資料合集免費(fèi)下載

    基于STM32F103C8 輸入捕獲實(shí)驗(yàn)

    基于STM32F103C8 輸入捕獲實(shí)驗(yàn)-目的該項(xiàng)目是在實(shí)習(xí)時(shí)做的一個(gè)基于STM32+CUBEMX工具讀取溫度計(jì)輸出的PWM波的實(shí)驗(yàn),使用到了TIMER讀取輸入捕獲和UART輸出到串口,最終實(shí)現(xiàn)讀取
    發(fā)表于 11-30 10:36 ?12次下載
    基于<b class='flag-5'>STM32F103C8</b> 輸入捕獲實(shí)驗(yàn)

    如何使用STM32F103C8的GPS模塊獲取位置坐標(biāo)

    在本教程中,我們GPS 模塊與 STM32F103C8 微控制器連接,以查找位置坐標(biāo)并將其顯示在16x2 LCD顯示屏上。
    的頭像 發(fā)表于 09-08 15:03 ?8462次閱讀
    如何使用<b class='flag-5'>STM32F103C8</b>的GPS模塊獲取位置坐標(biāo)

    基于MCP4725設(shè)計(jì)使用STM32F103C8的數(shù)模轉(zhuǎn)換器

    今天我們將使用相同的 MCP4725 DAC IC 來設(shè)計(jì)一個(gè)使用 STM32F103C8 微控制器的數(shù)模轉(zhuǎn)換器。
    發(fā)表于 09-08 15:24 ?4692次閱讀
    基于MCP4725設(shè)計(jì)使用<b class='flag-5'>STM32F103C8</b>的數(shù)模轉(zhuǎn)換器