iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 29
1
IoT

熟悉Arduino的Maker必看!30天帶你快速入門基於STM32嵌入式開發~系列 第 29

[Day 29]-【STM32系列】實作-步進馬達 + ULN2003 控制

今天介紹步進馬達,疑?昨天不是才說過馬達嗎?昨天的是伺服馬達,今天的則是伺服馬達
這兩者有甚麼不一樣嗎?伺服馬達能轉到指定的角度,但是步進馬達則是轉過指定的角度,甚麼意思呢?
伺服馬達控制轉到75°位置,可是步進馬達是以目前為初始方向連續轉75°,步進馬達沒有像伺服馬達限制角度範圍所以可以一直轉。

伺服馬達 步進馬達
轉到指定角度 轉過指定角度
3條線 4~6條線

步進馬達採用脈衝信號驅動,每次以一定角度逐步轉動,可簡單實現精準的定位運轉,在機器人領域上也得到廣泛的應用。

https://ithelp.ithome.com.tw/upload/images/20201014/2012009364U4PiUe5r.jpg

步進馬達因為需要足夠多的電流供給,所以通常會搭配 IC ULN2003驅動作使用。

簡單控制

我們可以透過控制1~4腳輸出不同的變化讓馬達連續運轉,如下表剛好是一個循環,一個循環大約旋轉0.7度

step A B C D
1 1 0 0 0
2 0 1 0 0
3 0 0 1 0
4 0 0 0 1

Setup

https://ithelp.ithome.com.tw/upload/images/20201014/20120093WXqge9x0MT.png

1.Pinout

  • 基本設定:
    RCC → HSE、LSE → Crystal/Ceramic Resonator✅
    SYS → Debug Serial Wire ✅

  • 額外設定:
    GPIOA → PA0 ~ PA3 → GPIO_Output

2.Clock

https://ithelp.ithome.com.tw/upload/images/20201001/20120093mwsW2dOAkz.png
最快32MHz

CODE

// 正轉
while(1)
{
    HAL_GPIO_WritePin (GPIOA , GPIO_PIN_0 , GPIO_PIN_SET );
    HAL_GPIO_WritePin (GPIOA , GPIO_PIN_1 , GPIO_PIN_RESET );
    HAL_GPIO_WritePin (GPIOA , GPIO_PIN_2 , GPIO_PIN_RESET );
    HAL_GPIO_WritePin (GPIOA , GPIO_PIN_3 , GPIO_PIN_RESET );
    HAL_Delay(1);
    HAL_GPIO_WritePin (GPIOA , GPIO_PIN_0 , GPIO_PIN_RESET );
    HAL_GPIO_WritePin (GPIOA , GPIO_PIN_1 , GPIO_PIN_SET );
    HAL_GPIO_WritePin (GPIOA , GPIO_PIN_2 , GPIO_PIN_RESET );
    HAL_GPIO_WritePin (GPIOA , GPIO_PIN_3 , GPIO_PIN_RESET );
    HAL_Delay(1);
    HAL_GPIO_WritePin (GPIOA , GPIO_PIN_0 , GPIO_PIN_RESET );
    HAL_GPIO_WritePin (GPIOA , GPIO_PIN_1 , GPIO_PIN_RESET );
    HAL_GPIO_WritePin (GPIOA , GPIO_PIN_2 , GPIO_PIN_SET );
    HAL_GPIO_WritePin (GPIOA , GPIO_PIN_3 , GPIO_PIN_RESET );
    HAL_Delay(1);
    HAL_GPIO_WritePin (GPIOA , GPIO_PIN_0 , GPIO_PIN_RESET );
    HAL_GPIO_WritePin (GPIOA , GPIO_PIN_1 , GPIO_PIN_RESET );
    HAL_GPIO_WritePin (GPIOA , GPIO_PIN_2 , GPIO_PIN_RESET );
    HAL_GPIO_WritePin (GPIOA , GPIO_PIN_3 , GPIO_PIN_SET );
    HAL_Delay(1);
}


相關連結


結語

30天好快


上一篇
[Day 28]-【STM32系列】實作-伺服馬達 SG- 90 PWM控制
下一篇
[Day 30]-【STM32系列終章之不負責任地說再見】
系列文
熟悉Arduino的Maker必看!30天帶你快速入門基於STM32嵌入式開發~30

尚未有邦友留言

立即登入留言