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

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

3天內不再提示

將步進電機與STM32F103C8板連接的教程

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

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

所需材料

STM32F103C8 (藍色藥丸)

步進電機(28BYJ-48)

ULN2003 集成電路

電位器 10k

面包板

跳線

步進電機 (28BYJ-48)

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

poYBAGNouTOAcaulAACKtPpkgRI756.jpg

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

pYYBAGNouTaAbZUwAAB7b7VRrg0628.png

ULN2003 電機驅動器 IC

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

poYBAGNouTiATXtKAABQcZ6E12U320.png

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

電路圖和連接

poYBAGNouUCAQbPrAACrOCxMxRI602.png

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

STM32F103C8 (藍色藥丸)

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

STM32-Pin-Details_0.png

STM32F103C8 帶 ULN2003 電機驅動器 IC

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

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

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

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

ULN2003 集成電路引腳 步進電機引腳
輸出1
輸出2 黃色
輸出3 粉紅色
輸出4
.COM

STM32F103C8 帶電位計

電位計用于設定步進電機的速度。

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

采用STM32F103C8的旋轉步進電機

以下是操作步進電機的幾個步驟:

通過改變電位器設置步進電機的速度。

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

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

例如

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

pYYBAGNouU2AMW14AACrF-gWbvY631.jpg

步進電機STM32編程

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

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

#include

然后我們定義 no。旋轉時要完成的步驟,這里我們使用 32,因為我們使用的是全步(4 步序列)所以 (360/32 = 11.25 度)。因此,對于一步,軸移動 11.25 度,即步幅角。在 4 步序列中,一個完整的旋轉需要 4 個步驟。

#define STEPS 32

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

Steps per revolution = 360 / STEP ANGLE

當我們設置速度時,我們必須從連接到電位計的PA4中獲取模擬值。所以我們必須為此聲明 pin

const int speedm = PA4

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

int adc = analogRead(speedm);

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

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

我們必須創(chuàng)建如下所示的實例來設置連接到電機的引腳。在這些步驟中要小心,因為大多數(shù)步驟在此模式中都會出錯。它們給出了錯誤的模式,因此線圈無法通電。

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

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

rotate = Serial.parseInt();

下面的代碼用于調用實例并運行電機。如果旋轉值為 1,則調用函數(shù)步進器一次,完成一次移動。

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

}

}

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

    關注

    150

    文章

    3081

    瀏覽量

    147189
  • STM32F103C8
    +關注

    關注

    1

    文章

    23

    瀏覽量

    8062
收藏 人收藏

    評論

    相關推薦

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

    在本教程中,我們使用 ESP8266 STM32F103C8 連接到互聯(lián)網(wǎng)。在這里,我們 ESP8266 Wi-Fi 模塊與我們的藍丸 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中使用中斷

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

    伺服電機STM32F103C8連接起來的教程

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

    如何使用USB端口對STM32F103C8進行編程

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

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

    在本教程中,我們學習如何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總線與它連接時應該接那兩個引腳,說明書里沒有具體的說法,謝謝啦
    發(fā)表于 08-04 20:32

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

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

    stm32f103c8

    近期買了一塊stm32f103c8的系統(tǒng),苦于沒有對應資料學習,哪位神給介紹下。網(wǎng)上找過很多資料,可差不多都是和指定開發(fā)相關的,不好入門啊。{: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上的實現(xiàn)

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

    STM32F103C8的電路原理圖免費下載

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

    STM32F103C8T6核心的資料合集免費下載

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

    基于STM32F103C8 輸入捕獲實驗

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

    如何使用STM32F103C8的GPS模塊獲取位置坐標

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

    基于MCP4725設計使用STM32F103C8的數(shù)模轉換器

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