国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【STM32篇】4988驅(qū)動步進(jìn)電機(jī)

這篇具有很好參考價(jià)值的文章主要介紹了【STM32篇】4988驅(qū)動步進(jìn)電機(jī)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

本文介紹的步進(jìn)電機(jī)驅(qū)動為畢設(shè)所用,學(xué)習(xí)時也借鑒了其他博主和商家的資料,介紹的都很詳細(xì)。但對于剛?cè)腴T的友友萌來說,可能還會存在的一些不解。而我就是被卡在驅(qū)動電源上。下文為我對4988驅(qū)動的一些理解,希望能幫助到剛學(xué)習(xí)步進(jìn)電機(jī)的朋友。

4988驅(qū)動IC價(jià)格便宜驅(qū)動簡單,但在驅(qū)動步進(jìn)電機(jī)時,電機(jī)會存在的明顯震動。下一篇文章將實(shí)現(xiàn)TMC2208驅(qū)動IC控制步進(jìn)電機(jī)。

一、簡介

A4988 是一款完全的微步電動機(jī)驅(qū)動器,帶有內(nèi)置轉(zhuǎn)換器,易于操作。該產(chǎn)品可在全、半、1/4、1/8 及 1/16 步進(jìn)模式時操作雙極步進(jìn)電動機(jī),輸出驅(qū)動性能可達(dá) 35 V 及 ±1 A。A4988 包括一個固定關(guān)斷時間電流穩(wěn)壓器,該穩(wěn)壓器可在慢或混合衰減模式下工作。轉(zhuǎn)換器是 A4988 易于實(shí)施的關(guān)鍵。只要在“步進(jìn)”輸入中輸入一個脈沖,即可驅(qū)動電動機(jī)產(chǎn)生微步。無須進(jìn)行相位順序表、高頻率控制行或復(fù)雜的界面編程。A4988 界面非常適合復(fù)雜的微處理器不可用或過載的應(yīng)用。在微步運(yùn)行時,A4988 內(nèi)的斬波控制可自動選擇電流衰減模式(慢或混合)。在混合衰減模式下,該器件初始設(shè)置為在部分固定停機(jī)時間內(nèi)快速衰減,然后在余下的停機(jī)時間慢速衰減?;旌纤p電流控制方案能減少可聽到的電動機(jī)噪音、增加步進(jìn)精確度并減少功耗。提供內(nèi)部同步整流控制電路,以改善脈寬調(diào)制 (PWM) 操作時的功率消耗。內(nèi)部電路保護(hù)包括:帶滯后的過熱關(guān)機(jī)、欠壓鎖定(UVLO) 及交叉電流保護(hù)。不需要特別的通電排序。

A4988 采用表面安裝 QFN 封裝 (ES),尺寸為 5 mm × 5mm, 標(biāo)稱整體封裝高度為 0.90 mm ,并帶有外露散熱板以增強(qiáng)散熱功能。該封裝為無鉛封裝(后綴–T),采用 100% 霧錫電鍍引腳框。

【STM32篇】4988驅(qū)動步進(jìn)電機(jī)

圖1.HR4988

如圖1所示為HR4988步進(jìn)電機(jī)驅(qū)動模塊非A4988,是一款國產(chǎn)pin to pin完全可替換A4988的驅(qū)動芯片。至于為什么選擇HR4988而不用A4988?也就是懵懂無知,買了一款綠色的驅(qū)動模塊,在學(xué)習(xí)過程中弄壞了,就想試試紅色的。但二者的配置過程一致。

【STM32篇】4988驅(qū)動步進(jìn)電機(jī)

圖2.4988模塊和控制板

二、主要引腳介紹

【STM32篇】4988驅(qū)動步進(jìn)電機(jī)

圖3.A4988典型應(yīng)用示意圖

【STM32篇】4988驅(qū)動步進(jìn)電機(jī)

圖4.HR4988典型應(yīng)用示意圖

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

GND – 電機(jī)電源接地

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

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

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

GND – 邏輯電源接地

ENABLE – 使能引腳(低電平有效)

引腳說明:此當(dāng)此引腳為低電平時,A4988才能進(jìn)行電機(jī)驅(qū)動工作,當(dāng)該引腳為高電平,A4988將不會進(jìn)行電機(jī)驅(qū)動工作。如果該引腳懸空,則A4988默認(rèn)為使能狀態(tài)。即該引腳沒有連接任何電平時,A4988可以正常工作。

MS1, MS2, MS3 – 驅(qū)動模式引腳

引腳說明:這三個引腳控制A4988微步細(xì)分驅(qū)動模式。通過這三個引腳的邏輯電平,我們可以調(diào)整A4988驅(qū)動電機(jī)模式為全、半、1/4、1/8 及 1/16 步進(jìn)模式。Table1圖中右側(cè)的表格里有具體如何調(diào)節(jié)這三個引腳電頻以及A4988在不同的電平組合下的驅(qū)動模式。表格中“L”代表低電平,“H”代表高電平?!癋ULL”為全步進(jìn),“HALF”為半步進(jìn),“QUATER”為1/4步進(jìn), “EIGHTH”為1/8步進(jìn), “SIXTEENTH”為1/16步進(jìn)。當(dāng)MS1, MS2, MS3這幾個引腳懸空時,A4988默認(rèn)為全步進(jìn)電機(jī)驅(qū)動模式。

RESET – 復(fù)位引腳

引腳說明:該引腳為低電平有效,即當(dāng)該引腳為低電平時,A4988將復(fù)位。如果該引腳懸空,則A4988默認(rèn)為高電平。即該引腳沒有連接任何電平時,A4988可以正常工作。

SLEEP – 睡眠引腳

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

STEP – 步進(jìn)引腳

引腳說明:此引腳用于通過Arduino等微控制器向A4988發(fā)送脈沖控制信號,A4988接收到此信號后,會根據(jù) MS1, MS2 和 MS3引腳控制電機(jī)運(yùn)轉(zhuǎn)。占空比50%。

DIR – 方向引腳

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

驅(qū)動模式:

【STM32篇】4988驅(qū)動步進(jìn)電機(jī)

本次使用的二相步進(jìn)電機(jī)步距角為1.8°,在全步模式下,給STEP一個脈沖信號,電機(jī)轉(zhuǎn)動1.8°。半步模式下,一個脈沖信號電機(jī)的轉(zhuǎn)動角度為1.8°/2,依次類推。

三、實(shí)驗(yàn)器材

  • stm32f103c8t6最小系統(tǒng);

  • ST-Link燒錄器;

  • 4988步進(jìn)電機(jī)驅(qū)動模塊;

  • 步進(jìn)電機(jī)驅(qū)動控制板;

  • 42步進(jìn)電機(jī);

  • 12V開關(guān)電源;

  • 導(dǎo)線若干;

開發(fā)環(huán)境:Keil_5

【STM32篇】4988驅(qū)動步進(jìn)電機(jī)

圖5.實(shí)驗(yàn)器材

硬件連接模擬圖:

【STM32篇】4988驅(qū)動步進(jìn)電機(jī)

圖6.硬件連接模擬圖

如圖6為MCU與驅(qū)動器和電機(jī)的連接示意圖,可在面包板上完成接線,外部驅(qū)動電源(8-35V)需要在電源正極與負(fù)極之間接一個47uF電容保護(hù)驅(qū)動器。而我在選擇電源的時候選擇了24V2A開關(guān)電源,接線的時候需要講開關(guān)電源的負(fù)極與開發(fā)板GND連接(共地)。也許是正負(fù)極接反了(猜測),導(dǎo)致上電后燒壞驅(qū)動器和開發(fā)板。

后續(xù)使用的驅(qū)動芯片為HR4988,將面包板換為控制板(如下圖7),控制板的電壓要求為9V,在理論上可以接8~32V,但問客服就說只能接9V。最后使用12V1A開關(guān)電源給驅(qū)動IC供電。

【STM32篇】4988驅(qū)動步進(jìn)電機(jī)

圖7.4988控制板

控制板兩個GND相連,SLEEP引腳也與RESET引腳連接,MS1、MS2、MS3采用撥動開關(guān)設(shè)置步進(jìn)模式。使用控制板的好處就是只需將ENABLE、STEP 、DIR與MCU的IO相連,可節(jié)約IO資源(相較于面包板)。

四、程序設(shè)計(jì)

引腳連接:

ENABLE

PB3

DIR

PB5

STEP

PB8

控制板5V接開發(fā)板5V引腳,控制板GND接開關(guān)電源負(fù)極與開發(fā)板GND,控制板9V接12V開關(guān)電源正極。

初始化配置

將PB8設(shè)置為復(fù)用推挽輸出模式,使用定時器4通道3輸出PWM,控制電機(jī)運(yùn)轉(zhuǎn)。

void MOTOR_Init(void)
{
    //1.引腳初始化
    GPIO_InitTypeDef motor_gpio_init;
    motor_gpio_init.GPIO_Pin = GPIO_Pin_5| GPIO_Pin_3;
    motor_gpio_init.GPIO_Mode = GPIO_Mode_Out_PP;
    motor_gpio_init.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOB,&motor_gpio_init);    //DIR ENABLE 通用推挽輸出模式
    motor_gpio_init.GPIO_Pin = GPIO_Pin_8;
    motor_gpio_init.GPIO_Mode = GPIO_Mode_AF_PP;
    GPIO_Init(GPIOB,&motor_gpio_init);    //STEP 復(fù)用推挽輸出
    
    //2.定時器初始化配置
    TIM_DeInit(TIM4);
    TIM_TimeBaseInitTypeDef motor_TimeInit;
    motor_TimeInit.TIM_Prescaler = 31;                    //預(yù)分頻值
    motor_TimeInit.TIM_ClockDivision = TIM_CKD_DIV1;
    motor_TimeInit.TIM_CounterMode = TIM_CounterMode_Up;//向上計(jì)數(shù)模式
    motor_TimeInit.TIM_Period = 3999;                    //重裝載值
    motor_TimeInit.TIM_RepetitionCounter = 0;            //重復(fù)計(jì)數(shù)值
    TIM_TimeBaseInit(TIM4,&motor_TimeInit);                //基本計(jì)數(shù)模式
    
    TIM_ITConfig(TIM4,TIM_IT_Update,ENABLE);            //配置更新中斷
    TIM_ClearFlag(TIM4,TIM_FLAG_Update);                //清除更新中斷位
    
    TIM_OCInitTypeDef motor_OCInit;
    TIM_OCStructInit(&motor_OCInit);
    motor_OCInit.TIM_OCMode = TIM_OCMode_PWM1;
    motor_OCInit.TIM_OutputState = TIM_OutputState_Enable;
    motor_OCInit.TIM_Pulse = 1499;
    TIM_OC3Init(TIM4,&motor_OCInit);                    //配置通道3PWM
    //失能motor 
    MOTOR_STOP();
    MOTOR_ENABLE;
    MOTOR_DIR_CW;                                        //順時針
    //MOTOR_DIR_CCW;
}

控制電機(jī)轉(zhuǎn)動速度就是控制脈沖周期,一個脈沖電機(jī)步進(jìn)一定角度,修改脈沖周期便可控制電機(jī)轉(zhuǎn)動速度。

#define SET_MOTOR_SPEED(x) TIM_SetAutoreload(TIM4,x-1);TIM_SetCompare3(TIM2,x/2-1)

中斷服務(wù)函數(shù)

通過撥動步進(jìn)開關(guān),設(shè)置為1/16步進(jìn)模式。實(shí)現(xiàn)電機(jī)正轉(zhuǎn)一圈反轉(zhuǎn)一圈反復(fù)循環(huán)。

void TIM4_IRQHandler(void)
{
    if(RESET != TIM_GetITStatus(TIM4,TIM_IT_Update))
    {
        TIM_ClearITPendingBit(TIM4,TIM_IT_Update);        //清除中斷標(biāo)志位
        motor_sleep++;
        if(motor_sleep==3200)    //改變轉(zhuǎn)向
        {
            MOTOR_STOP();        //停止運(yùn)轉(zhuǎn)
            motor_sleep=0;
            motor_dir=!motor_dir;
            if(motor_dir)        //順時針
            {
                MOTOR_DIR_CW;
                MOTOR_START();
            }
            else
            {
                MOTOR_DIR_CCW;
                MOTOR_START();
            }
        }
    }
}

五、演示

4988驅(qū)動步進(jìn)電機(jī)

【STM32篇】4988驅(qū)動步進(jìn)電機(jī)

六、程序代碼

mian.c


#include "motor.h"
#include "systick.h"

void clock_config(void);
void nvic_config(void);

int main(void)
{
    clock_config();        //配置RCC時鐘
    nvic_config();        //配置中斷優(yōu)先級
    MOTOR_Init();        //motor初始化
    MOTOR_START();
    while(1)
    {

    }
}
void clock_config(void)
{
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);
}
void NVIC_IQR_Confing(uint8_t nvic_IRQChannel,uint8_t nvic_PreemptionPriority, uint8_t nvic_SubPriority)
{
    NVIC_InitTypeDef nvic_Init;
    nvic_Init.NVIC_IRQChannel = nvic_IRQChannel;//中斷號
    nvic_Init.NVIC_IRQChannelPreemptionPriority = nvic_PreemptionPriority;//搶占優(yōu)先級
    nvic_Init.NVIC_IRQChannelSubPriority = nvic_SubPriority;//子優(yōu)先級
    nvic_Init.NVIC_IRQChannelCmd = ENABLE;//啟用中斷優(yōu)先級
    NVIC_Init(&nvic_Init);
}
void nvic_config(void)
{
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//配置中斷優(yōu)先級分組
    NVIC_IQR_Confing(TIM4_IRQn,1,0);
}

motor.c



#include "motor.h"
/*
引腳連接:
        PB5 - DIR                方向引腳
        PB8 - STEP TIM4_CH3        步進(jìn)引腳
        PB3 - ENABLE            使能引腳
*/
uint16_t  motor_sleep;
uint8_t motor_dir=1;
void MOTOR_Init(void)
{
    //1.引腳初始化
    GPIO_InitTypeDef motor_gpio_init;
    motor_gpio_init.GPIO_Pin = GPIO_Pin_5| GPIO_Pin_3;
    motor_gpio_init.GPIO_Mode = GPIO_Mode_Out_PP;
    motor_gpio_init.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOB,&motor_gpio_init);    //DIR ENABLE 通用推挽輸出模式
    motor_gpio_init.GPIO_Pin = GPIO_Pin_8;
    motor_gpio_init.GPIO_Mode = GPIO_Mode_AF_PP;
    GPIO_Init(GPIOB,&motor_gpio_init);    //STEP 復(fù)用推挽輸出
    
    //2.定時器初始化配置
    TIM_DeInit(TIM4);
    TIM_TimeBaseInitTypeDef motor_TimeInit;
    motor_TimeInit.TIM_Prescaler = 31;                    //預(yù)分頻值
    motor_TimeInit.TIM_ClockDivision = TIM_CKD_DIV1;
    motor_TimeInit.TIM_CounterMode = TIM_CounterMode_Up;//向上計(jì)數(shù)模式
    motor_TimeInit.TIM_Period = 3999;                    //重裝載值
    motor_TimeInit.TIM_RepetitionCounter = 0;            //重復(fù)計(jì)數(shù)值
    TIM_TimeBaseInit(TIM4,&motor_TimeInit);                //基本計(jì)數(shù)模式
    
    TIM_ITConfig(TIM4,TIM_IT_Update,ENABLE);            //配置更新中斷
    TIM_ClearFlag(TIM4,TIM_FLAG_Update);                //清除更新中斷位
    
    TIM_OCInitTypeDef motor_OCInit;
    TIM_OCStructInit(&motor_OCInit);
    motor_OCInit.TIM_OCMode = TIM_OCMode_PWM1;
    motor_OCInit.TIM_OutputState = TIM_OutputState_Enable;
    motor_OCInit.TIM_Pulse = 1499;
    TIM_OC3Init(TIM4,&motor_OCInit);                    //配置通道3PWM
    //失能motor 
    MOTOR_STOP();
    MOTOR_ENABLE;
    MOTOR_DIR_CW;                                        //順時針
    //MOTOR_DIR_CCW;
}

//中斷服務(wù)函數(shù)
void TIM4_IRQHandler(void)
{
    if(RESET != TIM_GetITStatus(TIM4,TIM_IT_Update))
    {
        TIM_ClearITPendingBit(TIM4,TIM_IT_Update);        //清除中斷標(biāo)志位
        motor_sleep++;
        if(motor_sleep==3200)    //改變轉(zhuǎn)向
        {
            MOTOR_STOP();        //停止運(yùn)轉(zhuǎn)
            motor_sleep=0;
            motor_dir=!motor_dir;
            if(motor_dir)        //順時針
            {
                MOTOR_DIR_CW;
                MOTOR_START();
            }
            else
            {
                MOTOR_DIR_CCW;
                MOTOR_START();
            }
        }
    }
}
/*
    \brief:    設(shè)置motor運(yùn)轉(zhuǎn)速度
    \param:    speed: 速度
                速度=(1/2M) * speed * (1.8/16)  度/秒
    \retval:    none
*/
void MOTOR_Set_Speed(uint16_t speed)
{
    TIM_SetAutoreload(TIM4,speed-1);
    TIM_SetCompare3(TIM4,speed/2-1);
}

//設(shè)置步進(jìn)模式 (用于MS1、MS2、MS3與單片機(jī)IO連接時使用)
#if 0
void setMotorStepMod(uint8_t stepMod)
{
    switch(StepMode)
        {
            case MOTOR_FULL_STEP:
                                MOTOR_MS1(0);
                                MOTOR_MS2(0);
                                MOTOR_MS3(0);
                break;
            case MOTOR_HALF_STEP:
                                MOTOR_MS1(1);
                                MOTOR_MS2(0);
                                MOTOR_MS3(0);
                break;
            case MOTOR_QUARTER_STEP:
                                MOTOR_MS1(0);
                                MOTOR_MS2(1);
                                MOTOR_MS3(0);
                break;
            case MOTOR_EIGHTH_STEP:
                                MOTOR_MS1(1);
                                MOTOR_MS2(1);
                                MOTOR_MS3(0);
                break;
            case MOTOR_SIXTEENTH_STEP:
                                MOTOR_MS1(1);
                                MOTOR_MS2(1);
                                MOTOR_MS3(1);
                break;
            default :
                                MOTOR_MS1(1);
                                MOTOR_MS2(1);
                                MOTOR_MS3(1);
                break;
        }
}
#endif

motor.h文章來源地址http://www.zghlxwxcb.cn/news/detail-428246.html

#ifndef _MOTOR_H_
#define _MOTOR_H_

#include "stm32f10x.h"

#define MOTOR_DIR_CW GPIO_ResetBits(GPIOB,GPIO_Pin_5)        //順時針
#define MOTOR_DIR_CCW GPIO_SetBits(GPIOB,GPIO_Pin_5)        //逆時針
#define MOTOR_ENABLE GPIO_ResetBits(GPIOB,GPIO_Pin_3)
#define MOTOR_STOP() TIM_Cmd(TIM4,DISABLE)                    //停止轉(zhuǎn)動
#define MOTOR_START() TIM_Cmd(TIM4,ENABLE)                    //開始轉(zhuǎn)動

#define MOTOR_FULL_STEP             0 //滿步
#define MOTOR_HALF_STEP             1 //二分之一步
#define MOTOR_QUARTER_STEP        2      //四分之一步
#define MOTOR_EIGHTH_STEP            3 //八分之一步
#define MOTOR_SIXTEENTH_STEP    4      //十六分之一步 

extern uint8_t motor_dir;

void MOTOR_Init(void);
void MOTOR_Set_Speed(uint16_t speed);

#endif

到了這里,關(guān)于【STM32篇】4988驅(qū)動步進(jìn)電機(jī)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 基于STM32的步進(jìn)電機(jī)驅(qū)動設(shè)計(jì)

    基于STM32的步進(jìn)電機(jī)驅(qū)動設(shè)計(jì)

    程序源碼提取鏈接放置文章底部,自行提取即可。 采用STM32驅(qū)動28BYJ4步進(jìn)電機(jī),實(shí)現(xiàn)正轉(zhuǎn)反轉(zhuǎn),完成角度調(diào)整。步進(jìn)電機(jī)是一種將電脈沖轉(zhuǎn)化為角位移的執(zhí)行機(jī)構(gòu)。當(dāng)步進(jìn)驅(qū)動器接收到一個脈沖信號,它就驅(qū)動步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動------一個固定的角度(及步進(jìn)角)。可以

    2024年02月02日
    瀏覽(25)
  • 【STM32篇】DRV8425驅(qū)動步進(jìn)電機(jī)

    【STM32篇】DRV8425驅(qū)動步進(jìn)電機(jī)

    【STM32篇】4988驅(qū)動步進(jìn)電機(jī)_hr4988-CSDN博客 ????????在上篇文章中使用了HR4988實(shí)現(xiàn)了步進(jìn)電機(jī)的驅(qū)動,在實(shí)際運(yùn)用過程,HR4988或者A4988驅(qū)動步進(jìn)電機(jī)會存在電機(jī)噪音太大的現(xiàn)象。本次將向各位友友介紹一個驅(qū)動簡單且非常靜音的一款步進(jìn)電機(jī)驅(qū)動IC。 ????????DRV8424/25 是適

    2024年04月11日
    瀏覽(29)
  • STM32CubeMX ULN2003步進(jìn)電機(jī)驅(qū)動

    STM32CubeMX ULN2003步進(jìn)電機(jī)驅(qū)動

    一、28BYJ-48 步進(jìn)電機(jī) ?28BYJ-48是一款5線單極步進(jìn)電機(jī),運(yùn)行電壓為5V。 根據(jù)數(shù)據(jù)表,當(dāng)28BYJ-48電機(jī)在全步模式下運(yùn)行時,每步對應(yīng)于11.25°的旋轉(zhuǎn)。這意味著每轉(zhuǎn)有32步 (360°/11.25° = 32)。 如上圖所示,步距角=5.625°/64 意思就是每64個脈沖步進(jìn)電機(jī)就會轉(zhuǎn)5.625度,因此我們很容易得

    2024年01月18日
    瀏覽(33)
  • STM32F4驅(qū)動42步進(jìn)電機(jī)(采用驅(qū)動器)

    STM32F4驅(qū)動42步進(jìn)電機(jī)(采用驅(qū)動器)

    提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 stm32f407zgt6芯片,tb6600驅(qū)動器 植樹機(jī)代碼,可以驅(qū)動四路42步進(jìn)電機(jī),以下是只驅(qū)動1路。 : 紅線接B+(TB6600), 藍(lán)線接B-, 綠線接A-, 黑線接A+ 該圖片是轉(zhuǎn)載的。根據(jù)本文代碼:Signal的-統(tǒng)一接開發(fā)板的GND(解

    2024年02月03日
    瀏覽(27)
  • 【STM32】步進(jìn)電機(jī)及其驅(qū)動(ULN2003驅(qū)動28BYJ-48丨按鍵控制電機(jī)旋轉(zhuǎn))

    【STM32】步進(jìn)電機(jī)及其驅(qū)動(ULN2003驅(qū)動28BYJ-48丨按鍵控制電機(jī)旋轉(zhuǎn))

    參考文章與課程: ??【視頻課程】步進(jìn)電機(jī)基礎(chǔ)原理和應(yīng)用——程子華主講 ??【視頻課程】電機(jī)系列教學(xué)視頻(基于STM32硬件)——野火 ??【霄耀在努力】STM32驅(qū)動步進(jìn)電機(jī)(原理、程序、解決電機(jī)只震動不轉(zhuǎn)動問題) ??步進(jìn)控制系統(tǒng)由以下三個部分組成: 控制器

    2023年04月09日
    瀏覽(18)
  • STM32控制步進(jìn)電機(jī):基于HAL庫定時器中斷的閉環(huán)步進(jìn)電機(jī)驅(qū)動+精準(zhǔn)控制脈沖數(shù)

    STM32控制步進(jìn)電機(jī):基于HAL庫定時器中斷的閉環(huán)步進(jìn)電機(jī)驅(qū)動+精準(zhǔn)控制脈沖數(shù)

    該篇文章中用到的步進(jìn)電機(jī)閉環(huán)驅(qū)動器為Emm42_V4.0步進(jìn)電機(jī)閉環(huán)驅(qū)動器。該閉環(huán)驅(qū)動器自帶FOC矢量閉環(huán)控制算法,能實(shí)現(xiàn)力矩、速度、位置三環(huán)控制。 如下圖所示,該42步進(jìn)閉環(huán)電機(jī)驅(qū)動器的A+、A-、B+、B-連接步進(jìn)電機(jī),通過右側(cè)的使能、脈沖、方向端對步進(jìn)電機(jī)進(jìn)行驅(qū)動控制

    2024年02月01日
    瀏覽(24)
  • 【STM32】實(shí)戰(zhàn)3.1—用STM32與TB6600驅(qū)動器驅(qū)動42步進(jìn)電機(jī)(一)

    【STM32】實(shí)戰(zhàn)3.1—用STM32與TB6600驅(qū)動器驅(qū)動42步進(jìn)電機(jī)(一)

    目錄 0 參考資料出處 1 實(shí)驗(yàn)預(yù)期效果 2 硬件學(xué)習(xí) 2.1 TB6600驅(qū)動器 ?2.1.1 通過撥碼開關(guān)設(shè)定細(xì)分與電流 2.1.2 共陰共陽接線法 2.2 開關(guān)電源(AC轉(zhuǎn)DC變壓器) 電源線 2.3 42步進(jìn)電機(jī) 2.3.1 基本知識 2.3.2 轉(zhuǎn)速細(xì)分控制 2.3.3 滿步、半步、微步驅(qū)動原理 3 軟件配置與硬件接線 3.1?STM32CubeM

    2024年02月02日
    瀏覽(30)
  • STM32自學(xué)筆記14-步進(jìn)電機(jī)驅(qū)動項(xiàng)目-TB67H450驅(qū)動

    STM32自學(xué)筆記14-步進(jìn)電機(jī)驅(qū)動項(xiàng)目-TB67H450驅(qū)動

    目前的項(xiàng)目是一種2相4線步進(jìn)電機(jī)的閉環(huán)驅(qū)動電路,使用的電機(jī)驅(qū)動芯片是 TB67H450 ,再使用磁編碼器 MT6816 ,使用 FOC 算法,基于 STM32F1 單片機(jī)。 這一節(jié)是步進(jìn)電機(jī)的驅(qū)動芯片驅(qū)動研究 首先研究驅(qū)動芯片 TB67H450 的datasheet 這是一個PWM斬波電機(jī)驅(qū)動芯片,內(nèi)部框圖可以看出來內(nèi)

    2024年02月07日
    瀏覽(166)
  • STM32自學(xué)筆記16-步進(jìn)電機(jī)驅(qū)動項(xiàng)目-磁編碼器的校準(zhǔn)

    上節(jié)我把MT6816的驅(qū)動給大致整明白了,接下去需要看看如何 校準(zhǔn) 。 為什么編碼器需要校準(zhǔn)? 如上節(jié)所說,MT6816是一款 絕對值編碼器 ,它為每個測量位置分配了唯一的二進(jìn)制代碼或字, 即使斷電,也可以跟蹤編碼器的確切位置 。 但是由于硬件或其他因素的影響,編碼器輸

    2024年02月16日
    瀏覽(173)
  • stm32使用TB6600驅(qū)動器控制42BYGH型步進(jìn)電機(jī)

    stm32使用TB6600驅(qū)動器控制42BYGH型步進(jìn)電機(jī)

    stm32使用TB6600驅(qū)動器控制42BYGH型步進(jìn)電機(jī) 例如:隨著人工智能的不斷發(fā)展,機(jī)器學(xué)習(xí)這門技術(shù)也越來越重要,很多人都開啟了學(xué)習(xí)機(jī)器學(xué)習(xí),本文就介紹了機(jī)器學(xué)習(xí)的基礎(chǔ)內(nèi)容。 24V電源就是通過電路控制開關(guān)進(jìn)行高速的導(dǎo)通于截至,將直流電轉(zhuǎn)化為高頻率的交流電提供給變壓

    2024年02月11日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包