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

基于STM32的步進電機驅(qū)動設計

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


程序源碼提取鏈接放置文章底部,自行提取即可。

前言

采用STM32驅(qū)動28BYJ4步進電機,實現(xiàn)正轉(zhuǎn)反轉(zhuǎn),完成角度調(diào)整。步進電機是一種將電脈沖轉(zhuǎn)化為角位移的執(zhí)行機構(gòu)。當步進驅(qū)動器接收到一個脈沖信號,它就驅(qū)動步進電機按設定的方向轉(zhuǎn)動------一個固定的角度(及步進角)。可以通過控制脈沖個來控制角位移量,從而達到準確定位的目的;同時可以通過控制脈沖頻率來控制電機轉(zhuǎn)動的速度和加速度,從而達到調(diào)速的目的。


一、步進電機

1. 基本概念

stm32步進電機驅(qū)動程序,STM32,stm32,單片機,嵌入式硬件,arm開發(fā),物聯(lián)網(wǎng)
步進電機是一種將電脈沖信號轉(zhuǎn)換成相應角位移或線位移的電動機。每輸入一個脈沖信號,轉(zhuǎn)子就轉(zhuǎn)動一個角度或前進一步,其輸出的角位移或線位移與輸入的脈沖數(shù)成正比,轉(zhuǎn)速與脈沖頻率成正比。因此,步進電動機又稱脈沖電動機。

步進電機控制特點:

  1. 它是通過輸入脈沖信號來進行控制的。
  2. 電機的總轉(zhuǎn)動角度由輸入脈沖數(shù)決定。
  3. 電機的轉(zhuǎn)速由脈沖信號頻率決定。

相數(shù):產(chǎn)生不同對極N、S磁場的激磁線圈對數(shù)。常用m表示。

拍數(shù):完成一個磁場周期性變化所需脈沖數(shù)或?qū)щ姞顟B(tài)用n表示,或指電機轉(zhuǎn)過一個齒距角所需脈沖數(shù),以四相電機為例,有四相四拍運行方式即AB-BC-CD-DA-AB,四相八拍運行方式即A-AB-B-BC-C-CD-D-DA-A。

步距角:也叫步進角,對應一個脈沖信號,電機轉(zhuǎn)子轉(zhuǎn)過的角位移用0表示。0=360度/(轉(zhuǎn)子齒數(shù)J運行拍數(shù)),以常規(guī)二、四相,轉(zhuǎn)子齒為50齒電機為例。四拍運行時步距角為0=360度/(504) =1.8度(俗稱整步),八拍運行時步距角為0=360度/(50*8)=0.9度(俗稱半步)。

保持轉(zhuǎn)矩:(HOLDING TORQUE)是指步進電機通電但沒有轉(zhuǎn)動時,定子鎖住轉(zhuǎn)子的力矩。它是步進電機最重要的參數(shù)之一,通常步進電機在低速時的力矩接近保持轉(zhuǎn)矩。

空載啟動頻率:步進電機有一個技術(shù)參數(shù):空載啟動頻率,即步進電機在空載情況下能夠正常啟動的脈沖頻率,如果脈沖頻率高于該值,電機不能正常啟動,可能發(fā)生丟步或堵轉(zhuǎn)。在有負載的情況下,啟動頻率應更低。如果要使電機達到高速轉(zhuǎn)動,脈沖頻率應該有加速過程,即啟動頻率較低,然后按一定加速度升到所希望的高頻(電機轉(zhuǎn)速從低速升到高速)。

2. 電機結(jié)構(gòu)

stm32步進電機驅(qū)動程序,STM32,stm32,單片機,嵌入式硬件,arm開發(fā),物聯(lián)網(wǎng)
原理圖:

stm32步進電機驅(qū)動程序,STM32,stm32,單片機,嵌入式硬件,arm開發(fā),物聯(lián)網(wǎng)

3. 工作原理

stm32步進電機驅(qū)動程序,STM32,stm32,單片機,嵌入式硬件,arm開發(fā),物聯(lián)網(wǎng)
驅(qū)動節(jié)拍模式:
stm32步進電機驅(qū)動程序,STM32,stm32,單片機,嵌入式硬件,arm開發(fā),物聯(lián)網(wǎng)

4. 產(chǎn)品參數(shù)

1. 技術(shù)參數(shù)
stm32步進電機驅(qū)動程序,STM32,stm32,單片機,嵌入式硬件,arm開發(fā),物聯(lián)網(wǎng)
2. 外形尺寸(單位mm)
stm32步進電機驅(qū)動程序,STM32,stm32,單片機,嵌入式硬件,arm開發(fā),物聯(lián)網(wǎng)

二、ULN2003驅(qū)動板

ULN2003是最常見的電機驅(qū)動器IC之一,由7對達林頓晶體管對的陣列組成,每對能夠驅(qū)動高達500mA和50V的負載。該板上使用了七對中的四對。

stm32步進電機驅(qū)動程序,STM32,stm32,單片機,嵌入式硬件,arm開發(fā),物聯(lián)網(wǎng)

連接器:可以完美地匹配電動機的電線,這使得將電動機輕松連接到板上非常容易;還有用于四個控制輸入的連接以及電源連接。

四個LED:在四根控制輸入線上顯示活動(以指示步進狀態(tài)),它們在電機運行時提供良好的視覺效果。

ON / OFF跳線:用于隔離步進電機的電源。

引腳排列
stm32步進電機驅(qū)動程序,STM32,stm32,單片機,嵌入式硬件,arm開發(fā),物聯(lián)網(wǎng)
IN1 – IN4腳:用于驅(qū)動電動機。將它們連接到stm32上的數(shù)字輸出引腳。

GND:是常見的接地引腳。

VCC:為電動機供電。將其連接到外部5V電源。由于電機消耗的功率過多,因此切勿使用Arduino的5V電源為步進電機供電。

馬達接頭:電機插入的地方。該連接器是帶鍵的,因此只能以一種方式進入。

原理圖:
stm32步進電機驅(qū)動程序,STM32,stm32,單片機,嵌入式硬件,arm開發(fā),物聯(lián)網(wǎng)

三、驅(qū)動程序

motor

unsigned int Zz_flag = 0;
unsigned int Fz_flag = 0;
unsigned int Zz_Value = 0;
unsigned int Fz_Value = 0;

void Motor_Init(void)
{
	
	GPIO_InitTypeDef GPIO_InitStruct;
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
	
	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStruct.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9;
	GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOC,&GPIO_InitStruct);
	//GPIO_ResetBits(GPIOC,GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9);
}
 
void Motor_Zz(void)//正轉(zhuǎn)
{
	Zz_Value = 1;
	Fz_Value = 0;
}
void Motor_Fz(void)//反轉(zhuǎn)
{
	Fz_Value = 1;
	Zz_Value = 0;
}
void Motor_Stop(void)
{
	Zz_Value = 0;
	Fz_Value = 0;
	Motor_A = 0;
	Motor_B = 0;
	Motor_C = 0;
	Motor_D = 0;
}
void Motor_Zz_Function(void)
{
			switch(Zz_flag)//八拍
		{
			case 0 : Motor_A = 1;Motor_B = 0;Motor_C = 0; Motor_D = 0;Zz_flag++;break;//A
			
			case 1 : Motor_A = 1;Motor_B = 1;Motor_C = 0; Motor_D = 0;Zz_flag++;break;//AB
			
			case 2 : Motor_A = 0;Motor_B = 1;Motor_C = 0; Motor_D = 0;Zz_flag++;break;//B
			
			case 3 : Motor_A = 0;Motor_B = 1;Motor_C = 1; Motor_D = 0;Zz_flag++;break;//BC
			
			case 4 : Motor_A = 0;Motor_B = 0;Motor_C = 1; Motor_D = 0;Zz_flag++;break;//C
			
			case 5 : Motor_A = 0;Motor_B = 0;Motor_C = 1; Motor_D = 1;Zz_flag++;break;//CD
			
			case 6 : Motor_A = 0;Motor_B = 0;Motor_C = 0; Motor_D = 1;Zz_flag++;break;//D
			
			case 7 : Motor_A = 1;Motor_B = 0;Motor_C = 0; Motor_D = 1;Zz_flag = 0;break;//DA
			
			default : break;
			
		}
}
void Motor_Fz_Function(void)
{
	switch(Fz_flag)
		{
			case 0 : Motor_A = 1;Motor_B = 0;Motor_C = 0; Motor_D = 1;Fz_flag++;break;//DA
			
			case 1 : Motor_A = 0;Motor_B = 0;Motor_C = 0; Motor_D = 1;Fz_flag++;break;//D
			
			case 2 : Motor_A = 0;Motor_B = 0;Motor_C = 1; Motor_D = 1;Fz_flag++;break;//CD
			
			case 3 : Motor_A = 0;Motor_B = 0;Motor_C = 1; Motor_D = 0;Fz_flag++;break;//C
			
			case 4 : Motor_A = 0;Motor_B = 1;Motor_C = 1; Motor_D = 0;Fz_flag++;break;//BC
			
			case 5 : Motor_A = 0;Motor_B = 1;Motor_C = 0; Motor_D = 0;Fz_flag++;break;//B
			
			case 6 : Motor_A = 1;Motor_B = 1;Motor_C = 0; Motor_D = 0;Fz_flag++;break;//AB
			
			case 7 : Motor_A = 1;Motor_B = 0;Motor_C = 0; Motor_D = 0;Fz_flag=0;break;//A
			
			default : break;
			
		}
}

main

int main()
{
	int key = 0;
	int arr = 50;
	int Motor_flag = 0;
	TIM3_init(99,7199);
	Motor_Init();
	KEY_Init();
	Motor_Zz();
	while(1)
	{
		
		key = Get_Indepedent_Key_Value();
		if(key) 
		{
			switch(key)
			{
				case KEY0_BASE : arr += 10; TIM_SetAutoreload(TIM3,arr);break;
				
				case KEY1_BASE : arr -= 10; TIM_SetAutoreload(TIM3,arr);break;
				
				case KEY_UP_BASE : if(Motor_flag % 2 == 0) Motor_Fz(); else Motor_Zz(); Motor_flag++;break;
				
				default : break;
			}
		} 
			
	}
}

程序源碼

鏈接https://pan.baidu.com/s/1KsX2D5oYvQDmoAIYaDnINQ
提取碼:ettg
文章來源地址http://www.zghlxwxcb.cn/news/detail-785514.html

到了這里,關(guān)于基于STM32的步進電機驅(qū)動設計的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領支付寶紅包贊助服務器費用

相關(guān)文章

  • 畢業(yè)設計——基于STM32的智能家具系統(tǒng)(語音識別控制、步進電機、舵機)

    智能家具系統(tǒng)分為兩個不同版本系列: ①系列一:手機app遠程控制、遠程檢測溫濕度顯示在app,(云平臺)?。。。? ? ? ? ? ? ? ? ? ?https://blog.csdn.net/m0_59113542/article/details/123737710 ②系列二:語音識別控制-------本文章 硬件采購鏈接: 步進電機及相關(guān)驅(qū)動 ULN2003步進電機驅(qū)動

    2024年02月05日
    瀏覽(159)
  • 【STM32篇】DRV8425驅(qū)動步進電機

    【STM32篇】DRV8425驅(qū)動步進電機

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

    2024年04月11日
    瀏覽(29)
  • 基于STM32CUBEMX驅(qū)動低壓步進器電機驅(qū)動器STSPIN220(3)----定時器中斷產(chǎn)生指定數(shù)量脈沖

    基于STM32CUBEMX驅(qū)動低壓步進器電機驅(qū)動器STSPIN220(3)----定時器中斷產(chǎn)生指定數(shù)量脈沖

    在步進電機控制過程中,為了實現(xiàn)精確的位置和速度控制,經(jīng)常需要輸出指定數(shù)量的脈沖。這就需要使用定時器功能來生成PWM脈沖信號。本文將詳細介紹如何利用STM32CUBEMX配置定時器以輸出指定數(shù)量的PWM脈沖。 定時器是STM32微控制器的一個重要功能模塊,可用于生成各種定時

    2024年02月14日
    瀏覽(28)
  • STM32CubeMX ULN2003步進電機驅(qū)動

    STM32CubeMX ULN2003步進電機驅(qū)動

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

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

    STM32F4驅(qū)動42步進電機(采用驅(qū)動器)

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

    2024年02月03日
    瀏覽(27)
  • 【STM32】實戰(zhàn)3.1—用STM32與TB6600驅(qū)動器驅(qū)動42步進電機(一)

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

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

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

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

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

    2023年04月09日
    瀏覽(18)
  • STM32自學筆記14-步進電機驅(qū)動項目-TB67H450驅(qū)動

    STM32自學筆記14-步進電機驅(qū)動項目-TB67H450驅(qū)動

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

    2024年02月07日
    瀏覽(166)
  • STM32+A4988拓展板+HAL實現(xiàn)簡單42步進電機驅(qū)動

    STM32+A4988拓展板+HAL實現(xiàn)簡單42步進電機驅(qū)動

    1.A4988及其拓展板簡介 2.接線 3.STM32_CUBEMX配置 4.代碼詳解 ——————————————————————————————————————————— 1.A4988及其拓展板簡介 A4988 A4988拓展板 ? ? A4988是一款常用的步進電機驅(qū)動器,A4988驅(qū)動器采用了步進電機的微步技術(shù),能

    2024年01月22日
    瀏覽(157)
  • STM32自學筆記16-步進電機驅(qū)動項目-磁編碼器的校準

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

    2024年02月16日
    瀏覽(173)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包