chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

基于STM32F103C8T6控制A4988模塊驅(qū)動(dòng)2相4線步進(jìn)電機(jī)

jf_88434166 ? 來(lái)源:jf_88434166 ? 作者:jf_88434166 ? 2025-09-13 17:22 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、A4988模塊簡(jiǎn)介

A4988 是一款功能齊全的微步進(jìn)電機(jī)驅(qū)動(dòng)器,內(nèi)置轉(zhuǎn)換器,操作簡(jiǎn)便。它設(shè)計(jì)用于在全步進(jìn)、半步進(jìn)、四分之一步進(jìn)、八分之一步進(jìn)和十六分之一步進(jìn)模式下驅(qū)動(dòng)雙極步進(jìn)電機(jī),輸出驅(qū)動(dòng)能力高達(dá) 35 V 和 ±2 A。A4988 內(nèi)置一個(gè)固定關(guān)斷時(shí)間電流調(diào)節(jié)器,可在慢速或混合衰減模式下工作。轉(zhuǎn)換器是 A4988 輕松實(shí)現(xiàn)的關(guān)鍵。只需在 STEP 輸入端輸入一個(gè)脈沖,即可驅(qū)動(dòng)電機(jī)進(jìn)行一個(gè)微步。無(wú)需相序表、高頻控制線或復(fù)雜的編程接口。A4988 接口非常適合無(wú)法使用復(fù)雜微處理器或微處理器負(fù)擔(dān)過(guò)重的應(yīng)用。在步進(jìn)操作期間,A4988 中的斬波控制會(huì)自動(dòng)選擇電流衰減模式:慢速或混合。在混合衰減模式下,設(shè)備初始設(shè)置為在固定關(guān)斷時(shí)間內(nèi)以快速衰減,然后在剩余關(guān)斷時(shí)間內(nèi)以慢速衰減?;旌纤p電流控制可降低電機(jī)可聽(tīng)噪聲,提高步進(jìn)精度,并降低功耗。內(nèi)置同步整流控制電路,用于改善 PWM 工作期間的功耗。內(nèi)部電路保護(hù)包括:帶滯后的熱關(guān)斷、欠壓鎖定 (UVLO) 和交叉電流保護(hù)。
特性
? 低導(dǎo)通電阻 (RDS(ON)) 輸出
? 自動(dòng)電流衰減模式檢測(cè)/選擇
? 混合和慢速電流衰減模式
? 同步整流,低功耗
? 內(nèi)部欠壓鎖定 (UVLO)
? 交叉電流保護(hù)
? 3.3 V 和 5 V 兼容邏輯電源
? 熱關(guān)斷電路
? 接地短路保護(hù)
? 負(fù)載短路保護(hù)
? 五種可選步進(jìn)模式:全步進(jìn)、1/2、1/4、1/8 和 1/16
在這里插入圖片描述

二、A4988引腳說(shuō)明

在這里插入圖片描述

EN:使能引腳(低電平有效),該引腳懸空或接低電平,A4988都可以正常工作;接高電平則不工作。

MS1,MS2,MS3:微步細(xì)分驅(qū)動(dòng)控制,通過(guò)這三個(gè)引腳的邏輯電平,調(diào)整A4988驅(qū)動(dòng)電機(jī)模式為全、半、1/4、1/8 及 1/16 步進(jìn)模式。

MS1MS2MS3微步分辨率
LLL全步
HLL半步
LHL1/4步
HHL1/8步
HHH1/16步

RST:復(fù)位引腳(低電平有效),該引腳懸空,則默認(rèn)為高電平。即該引腳沒(méi)有連接任何電平時(shí),A4988可以正常工作。

SLP:睡眠引腳,該引腳連接電平為低電平時(shí),A4988將進(jìn)入低能耗睡眠狀態(tài),即消耗最小的電能。如果無(wú)需使用SLeep功能,則可以將SLEEP引腳與RESET引腳連接,則A4988將持續(xù)保持正常能耗狀態(tài)而不會(huì)進(jìn)入低能耗狀態(tài)。

STEP:步進(jìn)引腳,通過(guò)MCU控制器向A4988發(fā)送脈沖控制信號(hào),A4988接收到此信號(hào)后,會(huì)根據(jù) MS1, MS2 和 MS3引腳控制電機(jī)運(yùn)轉(zhuǎn)。

DIR:方向引腳,通過(guò)此引腳可以調(diào)整A4988控制電機(jī)運(yùn)行方向。當(dāng)此引腳為低電平,A4988將控制電機(jī)順時(shí)針旋轉(zhuǎn)。高電平則逆時(shí)針旋轉(zhuǎn)。

1A,1B:電機(jī)繞組1控制引腳。

2A,2B:電機(jī)繞組2控制引腳。

VMOT:電機(jī)電源正極(可用電源電壓為8V ~ 35V)注:此引腳用于連接為電機(jī)供電的電源。

VDD:邏輯電源正極(3 – 5.5伏)注:此引腳用于為A4988電機(jī)驅(qū)動(dòng)板供電。

GND:電機(jī)電源接地和邏輯電源接地。

三、A4988的Vref電壓調(diào)節(jié)

Vref電壓調(diào)節(jié)是通過(guò)A4988上的電位器旋鈕調(diào)節(jié)Vref參考電壓。該電壓將直接影響到步進(jìn)電機(jī)在工作時(shí)流過(guò)線圈的電流強(qiáng)度。請(qǐng)注意,這一步操作非常重要,如果忽略這一步有可能會(huì)產(chǎn)生電機(jī)損壞的后果。
A4988 Vref參考電壓計(jì)算公式:

Rs: 市面上A4988模塊上的Rs電阻值一般有3種類型,0.05 歐姆, 0.1 歐姆或0.2 歐姆。店鋪的A4988模塊上的Rs電阻值為0.1歐姆,大部分A4988模塊順時(shí)針旋轉(zhuǎn)電位器可調(diào)大Vref,逆時(shí)針旋轉(zhuǎn)電位器調(diào)小Vref。

Vref: 電位器金屬旋鈕和GND之間的電壓即為Vref??墒褂眯「腻F旋轉(zhuǎn)電位器旋鈕從而改變Vref。(如下圖所示)。

Imax:步進(jìn)電機(jī)工作時(shí),線圈允許流過(guò)的最大電流。

例:Rs為0.1歐姆,電機(jī)Imax為1.5A,通過(guò)以上公式計(jì)算,Vref參考電壓為1.2V。即將通過(guò)調(diào)節(jié)電位器旋鈕 將Vref調(diào)節(jié)為1.2伏特左右。

測(cè)量Vref時(shí)注意:

  1. A4988模塊的VDD引腳需要連接+5V電壓
  2. A4988模塊的GND引腳必須與電路中的其它設(shè)備共地
  3. A4988模塊的VMOT引腳無(wú)需通電,但是通電也不影響Vref的測(cè)量。
  4. A4988模塊的1A/1B/2A/2B引腳可以不與步進(jìn)電機(jī)連接,但連接也不會(huì)影響Vref的測(cè)量

四、STM32F103C8T6控制A4988驅(qū)動(dòng)2相4線步進(jìn)電機(jī)

準(zhǔn)備工作

STM32F103C8T6最小系統(tǒng)板,A4988驅(qū)動(dòng)模塊,OLED顯示屏,EC11旋轉(zhuǎn)編碼器,按鍵和導(dǎo)線若干。

引腳接線

STM32F103C8T6A4988
電機(jī)電源正VMOT
電機(jī)電源負(fù)GND
3.3VVDD
GNDGND
PA0STEP
PA4EN
PA5DIR
PB3MS1
PB4MS2
PB5MS3
PA1編碼器的A ,控制頻率和占空比的調(diào)節(jié)
PA2編碼器的B,控制頻率和占空比的調(diào)節(jié)
PA3編碼器的S,切換調(diào)節(jié)頻率還是調(diào)節(jié)占空比
PA6與PA0短接,捕獲PWM
PB10按鍵1,控制細(xì)分切換
PB11按鍵2,控制方向切換

代碼示例

A4988.c

#include "A4988.h"
#include "Delay.h"

void A4988_Init(void)
{
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
	
	GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOA, &GPIO_InitStructure);
	
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOB, &GPIO_InitStructure);
	
	GPIO_ResetBits(GPIOA, GPIO_Pin_4 | GPIO_Pin_5);
	GPIO_ResetBits(GPIOB, GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5);
}

void A4988_SetStep(uint8_t step)
{
	switch(step)
	{
		case 1:		//1細(xì)分
			A4988_MS1_L;
			A4988_MS2_L;
			A4988_MS3_L;
			break;
		case 2:		//1/2細(xì)分
			A4988_MS1_H;
			A4988_MS2_L;
			A4988_MS3_L;
			break;
		case 3:		//1/4細(xì)分
			A4988_MS1_L;
			A4988_MS2_H;
			A4988_MS3_L;
			break;
		case 4:		//1/8細(xì)分
			A4988_MS1_H;
			A4988_MS2_H;
			A4988_MS3_L;
			break;
		case 5:		//1/16細(xì)分
			A4988_MS1_H;
			A4988_MS2_H;
			A4988_MS3_H;
			break;
	}
}

void A4988_SetDir(uint8_t dir)
{	
	A4988_EN_H;
	Delay_ms(20);
	
	if(dir == 1) A4988_DIR_H
	else A4988_DIR_L
	
	A4988_EN_L;
}

main.c

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "OLED.h"
#include "KEY.h"
#include "A4988.h"
#include "PWM.h"
#include "IC.h"
#include "Encoder.h"

uint8_t step = 0;
uint8_t dir = 0;

int main(void)
{
	OLED_Init();
    PWM_Init();
    A4988_Init();
    Key_Init();
    Encoder_Init();
	
	OLED_ShowString(1, 5, "A4988");
	OLED_ShowString(1, 12, "F");  //F:調(diào)節(jié)頻率,D:調(diào)節(jié)占空比
	OLED_ShowString(2, 4, "0000Hz");
	OLED_ShowString(2, 11, "000%");
	OLED_ShowString(3, 4, "1   ");
	OLED_ShowString(3, 11, "+");
	
	PWM_SetPrescaler(720 - 1);			//Freq = 72M / (PSC + 1) / 100
	PWM_SetCompare1(50);				//Duty = CCR / 100
	
	A4988_SetDir(1);
	A4988_SetStep(1);
	
	Update_Display();
	
	while (1)
	{
		int16_t encoder_change = Encoder_GetValue();

        if(encoder_change != 0)
        {
            if(setting_mode == 0)  // 調(diào)頻率
            {
                pwm_freq += encoder_change * 10;
                if(pwm_freq > 2000) pwm_freq = 2000;
                if(pwm_freq < 10) pwm_freq = 10;
				PWM_SetPrescaler(pwm_freq - 1);
            }
            else  // 調(diào)占空比
            {
                pwm_duty += encoder_change;
                if(pwm_duty > 100) pwm_duty = 100;
                if(pwm_duty < 0) pwm_duty = 0;
				PWM_SetCompare1(pwm_duty);
            }
            Update_PWM();
            Update_Display();
        }

        if(Encoder_GetKey())  // 按下編碼器按鍵切換調(diào)節(jié)模式
        {
            setting_mode ^= 1;  // 0/1切換
            Update_Display();
        }

		Delay_ms(20);
		
		KeyEvent_TypeDef key_event = Key_Scan();
		
		switch (key_event)
		{
			case KEY_MODE_CLICK:
				// Mode鍵短按事件
				step++;
				if (step > 5) step = 1;
				switch(step)
				{
					case 1: 
						A4988_SetStep(1); OLED_ShowString(3,4,"1   "); break;
					case 2: 
						A4988_SetStep(2); OLED_ShowString(3,4,"1/2 "); break;
					case 3: 
						A4988_SetStep(3); OLED_ShowString(3,4,"1/4 "); break;
					case 4: 
						A4988_SetStep(4); OLED_ShowString(3,4,"1/8 "); break;
					case 5: 
						A4988_SetStep(5); OLED_ShowString(3,4,"1/16"); break;
				}
				break;
			case KEY_DIR_CLICK:
				dir++;
				if(dir > 2) dir = 1;
				if(dir == 1) 
				{
					A4988_SetDir(1); 
					OLED_ShowString(3, 11, "+"); //正轉(zhuǎn)
				}
				else
				{
					A4988_SetDir(0);
					OLED_ShowString(3, 11, "-"); //反轉(zhuǎn)
				}
				break;
		}
		Delay_ms(20);
	}
}

效果展示

五、A4988電機(jī)驅(qū)動(dòng)板常見(jiàn)問(wèn)題

1)4988驅(qū)動(dòng)板可以驅(qū)動(dòng)多大的電流?
如果4988芯片上沒(méi)有加散熱片,電流最好在1A以下。如果加散熱片,電流可以達(dá)到2A。

2)步進(jìn)電機(jī)的連接方式是什么?
先判斷哪兩根線為同一相,短接兩兩線有明顯阻力的為同一相,A相和B相可以不區(qū)分,只有是同一相接在同一個(gè)電機(jī)繞組控制引腳即可。

3)接上電后,電機(jī)左右抖動(dòng)不能正常運(yùn)行是什么原因?
電機(jī)出現(xiàn)抖動(dòng)一般有兩個(gè)原因,一是缺相:可能是4988與電機(jī)沒(méi)有接好導(dǎo)致4988的輸出端某一相斷開(kāi),造成電機(jī)缺相從而抖動(dòng)。也有可能是步進(jìn)電機(jī)接線接錯(cuò):如果步進(jìn)電機(jī)沒(méi)有正確的進(jìn)行連接,電機(jī)會(huì)出現(xiàn)抖動(dòng)的情況。二是驅(qū)動(dòng)電流過(guò)大或過(guò)小導(dǎo)致的,調(diào)節(jié)板載上的電位器調(diào)到電機(jī)正常平穩(wěn)運(yùn)行就可。

4)電機(jī)丟步如何解決?
相電流的大小跟步進(jìn)電機(jī)的扭力有直接關(guān)系,如果感覺(jué)你的步進(jìn)電機(jī)扭力不足、丟步,可能是4988輸出的電流太小。您可以調(diào)節(jié)A4988模塊上的電位器調(diào)節(jié)A4988模塊的輸出電流強(qiáng)度。具體調(diào)節(jié)方法請(qǐng)參考上面的Vref電壓的調(diào)節(jié)方法。請(qǐng)注意:如A4988輸出電流強(qiáng)度大于電機(jī)工作電流強(qiáng)可能會(huì)燒毀您的步進(jìn)電機(jī)。請(qǐng)小心調(diào)節(jié)。

5)4988可以驅(qū)動(dòng)兩相六線或兩相五線的電機(jī)嗎?
可以,兩相連線按照問(wèn)題2連接,將中間抽頭懸空即可。

6)電機(jī)停止轉(zhuǎn)動(dòng)時(shí)會(huì)有滋滋的電流聲。
這是正?,F(xiàn)象。步進(jìn)電機(jī)有一個(gè)參數(shù)-步距角。通過(guò)細(xì)分驅(qū)動(dòng)可以縮小步進(jìn)角度,比如步距角為1.8度的步進(jìn)電機(jī),采用16細(xì)分,最小可以走的角度是1.8/16=0.1125度。由于這個(gè)角度非常小,當(dāng)電機(jī)停止時(shí),可能處于非電機(jī)物理位置(1.8度為一個(gè)物理位置)。因此步進(jìn)電機(jī)在靜止時(shí)會(huì)有電流聲,這屬于正常現(xiàn)象,不用擔(dān)心。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • 轉(zhuǎn)換器
    +關(guān)注

    關(guān)注

    27

    文章

    9282

    瀏覽量

    154276
  • 步進(jìn)電機(jī)
    +關(guān)注

    關(guān)注

    152

    文章

    3195

    瀏覽量

    151027
  • 電機(jī)驅(qū)動(dòng)器

    關(guān)注

    16

    文章

    782

    瀏覽量

    65982
  • STM32F
    +關(guān)注

    關(guān)注

    1

    文章

    42

    瀏覽量

    18663
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    STM32F103RBT6單片機(jī)和A4988驅(qū)動(dòng)控制步進(jìn)電機(jī)

    本帖最后由 王亞 于 2015-1-13 11:04 編輯 誰(shuí)用過(guò)STM32F103RBT6單片機(jī)和A4988驅(qū)動(dòng)控制步進(jìn)
    發(fā)表于 01-07 16:18

    stm32f103c8t6是怎樣去控制多個(gè)步進(jìn)電機(jī)的?

    stm32f103c8t6控制多個(gè)步進(jìn)電機(jī)關(guān)于兩步進(jìn)電機(jī)
    發(fā)表于 07-07 07:09

    A4988驅(qū)動(dòng)步進(jìn)電機(jī)的程序

    驅(qū)動(dòng)步進(jìn)電機(jī)常見(jiàn)的有42,56步進(jìn)電機(jī),但如何驅(qū)動(dòng)呢。首先要了解
    發(fā)表于 08-31 06:09

    如何使用A4988控制步進(jìn)電機(jī)

    A4988控制雙極步進(jìn)電機(jī)驅(qū)動(dòng)模塊,在本文中,我們學(xué)習(xí)如何使用它
    發(fā)表于 01-10 06:23

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

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

    使用STM32F103C8T6A4988驅(qū)動(dòng)42步進(jìn)電機(jī)的原理圖和源代碼免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用STM32F103C8T6A4988驅(qū)動(dòng)42步進(jìn)電機(jī)的原理圖和源代碼免費(fèi)下載。
    發(fā)表于 01-18 08:00 ?79次下載
    使用<b class='flag-5'>STM32F103C8T6</b>和<b class='flag-5'>A4988</b><b class='flag-5'>驅(qū)動(dòng)</b>42<b class='flag-5'>步進(jìn)</b><b class='flag-5'>電機(jī)</b>的原理圖和源代碼免費(fèi)下載

    STM32F103C8T6原理圖

    STM32F103C8T6原理圖免費(fèi)下載。
    發(fā)表于 06-02 10:01 ?211次下載

    stm32f103c8t6單片機(jī)驅(qū)動(dòng)臺(tái)達(dá)伺服電機(jī)

    、簡(jiǎn)介本文使用的是伺服電機(jī)的位置模式,以stm32f103c8t6單片機(jī)輸出脈沖,作為伺服電機(jī)驅(qū)動(dòng)器的位置脈沖輸入,從而達(dá)到伺服電機(jī)位置
    發(fā)表于 11-18 21:06 ?83次下載
    <b class='flag-5'>stm32f103c8t6</b>單片機(jī)<b class='flag-5'>驅(qū)動(dòng)</b>臺(tái)達(dá)伺服<b class='flag-5'>電機(jī)</b>

    【51單片機(jī)】 A4988驅(qū)動(dòng)模塊驅(qū)動(dòng)步進(jìn)電機(jī)

    A4988控制雙極步進(jìn)電機(jī)驅(qū)動(dòng)模塊,在本文中,我們學(xué)習(xí)如何使用它
    發(fā)表于 11-20 13:36 ?81次下載
    【51單片機(jī)】 <b class='flag-5'>A4988</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>模塊</b><b class='flag-5'>驅(qū)動(dòng)</b>四<b class='flag-5'>線</b><b class='flag-5'>步進(jìn)</b><b class='flag-5'>電機(jī)</b>

    STM32F103C8t6程序下載

    STM32F103C8t6程序下載
    發(fā)表于 11-24 18:21 ?244次下載
    <b class='flag-5'>STM32F103C8t6</b>程序下載

    stm32f103c8t6控制多個(gè)步進(jìn)電機(jī)

    stm32f103c8t6控制多個(gè)步進(jìn)電機(jī)關(guān)于兩步進(jìn)電機(jī)
    發(fā)表于 11-26 11:21 ?78次下載
    <b class='flag-5'>stm32f103c8t6</b><b class='flag-5'>控制</b>多個(gè)<b class='flag-5'>步進(jìn)</b><b class='flag-5'>電機(jī)</b>

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

    A4988是一款十分普及且價(jià)格實(shí)惠的步進(jìn)電機(jī)驅(qū)動(dòng)板。尤其是在3D打印以及數(shù)控機(jī)床領(lǐng)域,A4988十分常見(jiàn)。在使用Arduino通過(guò)
    發(fā)表于 03-20 10:55 ?11次下載
    <b class='flag-5'>A4988</b><b class='flag-5'>驅(qū)動(dòng)</b>NEMA<b class='flag-5'>步進(jìn)</b><b class='flag-5'>電機(jī)</b>

    STM32 A4988控制步進(jìn)電機(jī)

    使用硬件型號(hào)為:STM32F103C8T6最小系統(tǒng)板、A4988模塊、42步進(jìn)電機(jī)(42BYGH39) 1.1
    發(fā)表于 03-22 09:39 ?14次下載
    <b class='flag-5'>STM32</b> <b class='flag-5'>A4988</b><b class='flag-5'>控制</b><b class='flag-5'>步進(jìn)</b><b class='flag-5'>電機(jī)</b>

    ch32f103c8t6stm32f103c8t6的區(qū)別

    ch32f103c8t6stm32f103c8t6的區(qū)別 STM32F103C8T6是一款32位微處理器,屬于STM32F1系列中的一員。它是一款廉價(jià)而且高性能的微處理器,被廣泛應(yīng)用
    的頭像 發(fā)表于 08-22 16:05 ?1.4w次閱讀

    分享STM32F103C8T6原理圖

    STM32F103C8T6最小系統(tǒng)原理圖
    發(fā)表于 08-29 15:52 ?151次下載