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

stm32f103單片機—編碼器測速

這篇具有很好參考價值的文章主要介紹了stm32f103單片機—編碼器測速。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、涉及資源

stm32f103ZET6開發(fā)板(非指定)
MG513P3012V型號電機(帶霍爾編碼器)(非指定)

二、涉及概念

1、單片機資源要求

此種測速方法要求單片機的定時器具有編碼器模式,對于stm32f1系列,具備編碼器模式的定時器有TIM1/2/3/4/5/8,定時器使用通道1、2來實現(xiàn)編碼器功能,接線時注意把A/B相接到定時器通道1/2的引腳。

2、減速比

電機結(jié)構(gòu)
stm32f103單片機—編碼器測速
減速結(jié)構(gòu)
stm32f103單片機—編碼器測速
減速比為1:30通俗地講就是當(dāng)電機外伸軸轉(zhuǎn)1圈時實際軸轉(zhuǎn)30圈,外伸軸我們一般接上輪胎等實際作用物體,而實際軸是電機自身的轉(zhuǎn)子,霍爾編碼器的檢測對象是實際軸

3、測速原理

霍爾編碼器工作方式

霍爾編碼器是一種通過磁電轉(zhuǎn)換將輸出軸上的機械幾何位移量轉(zhuǎn)換成脈沖或數(shù)字量的傳感器?;魻柧幋a器是由霍爾碼盤和霍爾元件組成?;魻柎a盤是在一 定直徑的圓板上等分地布置有不同的磁極。電機旋轉(zhuǎn)一圈霍爾元件發(fā)出特定數(shù)目的脈沖信號。,用時間間隔內(nèi)接收的總的脈沖數(shù)目除以轉(zhuǎn)一圈發(fā)出的脈沖數(shù)目即可得到轉(zhuǎn)軸轉(zhuǎn)的圈數(shù),再除以時間間隔就能得到轉(zhuǎn)速。 為判斷轉(zhuǎn)向,一般輸出兩組存在一定相位差的方波信號。

定時器判斷電機正反轉(zhuǎn)的依據(jù)

定時器通道1、通道2接收A相和B相的脈沖信號,轉(zhuǎn)一圈A相和B相發(fā)出的脈沖數(shù)目是一樣的,但是發(fā)送有先后之分。
stm32f103單片機—編碼器測速

定時器針對正反轉(zhuǎn)的兩種計數(shù)方式

定時器在編碼器模式下有兩種計數(shù)方式,正轉(zhuǎn)時是從重載值開始向下減數(shù),反轉(zhuǎn)時是從零開始向上加數(shù)(正反是相對而言的)。例如,如果我設(shè)定定時器的重載值為0x7fff,那么當(dāng)定時器接收到10個正轉(zhuǎn)的脈沖時,計數(shù)值變?yōu)?x7ff3,當(dāng)定時器接收到的是反轉(zhuǎn)的脈沖時,定時器的計數(shù)值變?yōu)?x000A。

定時器編碼器模式1、2、3

TI1和TI2分別為定時器的通道1和通道2
stm32f103單片機—編碼器測速

stm32f103單片機—編碼器測速
編碼器模式3即為四倍頻模式,這個模式下對于A和B相發(fā)過來的一組脈沖會有四次計數(shù)(四個跳變沿),這樣就能將檢測精度提到四倍。

4、M法測速

stm32f103單片機—編碼器測速

三、編碼器與單片機的接線

注:這里以stm32f1系列的定時器4為例,若使用其他定時器進行測速需要更換對應(yīng)的引腳資源,編碼器A/B相需接到定時器的通道1和通道2

1、霍爾編碼器實物圖

stm32f103單片機—編碼器測速

接線

編碼器A相和B相接PB6和PB7引腳(無對應(yīng)要求)

四、單片機引腳和定時器的初始化

1、代碼示例

引腳選擇PB6和PB7
定時器選擇TIM4,使用編碼器模式3

/*****************************************************
*@Func:	編碼器涉及資源的初始化
******
*@para:	
******
*@desc:	選擇TIM4作為此編碼器的解碼時鐘
******	設(shè)置重裝值
******  注意:實際使用時對轉(zhuǎn)速有限制,如果轉(zhuǎn)速太快可能發(fā)生定時器溢出的情況,就要考慮使用中斷
******  目前對脈沖一次定時僅能計32768次,超過即無效,可以分別正反轉(zhuǎn)。
******	定時器在編碼器模式下電機如果正轉(zhuǎn)計數(shù)器會從零開始正數(shù),如果反轉(zhuǎn)計數(shù)器會從重載值開始倒數(shù)
******************************************************/ 
void EncoderA_Init(void)
{
	GPIO_InitTypeDef GPIO_InitStructure; 			//	引腳初始化的結(jié)構(gòu)體  
	TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;	//	定時器初始化的結(jié)構(gòu)體
	TIM_ICInitTypeDef TIM_ICInitStructure; 			//	定時器編碼器模式初始化的結(jié)構(gòu)體
	
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE); 	//	使能TIM4時鐘
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); 	//	使能GPIOB時鐘
 
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7;	//	PB6、PB7
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; 	//	浮空輸入
	GPIO_Init(GPIOB, &GPIO_InitStructure);					//	根據(jù)GPIO_InitStructure的參數(shù)初始化GPIOB0

	TIM_TimeBaseStructure.TIM_Period = 0xffff; 				//	設(shè)定計數(shù)器自動重裝值
	TIM_TimeBaseStructure.TIM_Prescaler = 0; 						//	預(yù)分頻器 
	TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; 		//	選擇時鐘分頻:不分頻
	TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; 	//	TIM向上計數(shù)模式
	TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure); 				//	根據(jù)TIM_TimeBaseInitStruct的參數(shù)初始化定時器TIM4
	
	TIM_EncoderInterfaceConfig(TIM4, TIM_EncoderMode_TI12, TIM_ICPolarity_Rising, TIM_ICPolarity_Rising);//使用編碼器模式3:CH1、CH2同時計數(shù),四分頻
	
	//初始化TIM4輸入捕獲參數(shù)
	TIM_ICStructInit(&TIM_ICInitStructure); 							//	把TIM_ICInitStruct 中的每一個參數(shù)按缺省值填入
	TIM_ICInitStructure.TIM_ICFilter = 0x03;  							// 	IC1F=0011 配置輸入濾波器(連續(xù)采樣八次)
	TIM_ICInit(TIM4, &TIM_ICInitStructure); 							//	根TIM_ICInitStructure參數(shù)初始化定時器TIM4編碼器模式

	TIM_Cmd(TIM4, ENABLE); 												// 使能定時器4
}

五、讀定時器的計數(shù)值

定時器的計數(shù)值即為編碼器發(fā)出的脈沖數(shù)目*4(定時器的編碼器模式3)

/*****************************************************
*@Func:	讀取定時器計數(shù)值
******
*@para:	
******
*@desc:	
******************************************************/ 
void Read_EncoderA(void)
{
	if(TIM4->CNT > 0x7fff)
	{
		EncoderA = TIM4->CNT - 0xffff;	// 反轉(zhuǎn)
	}
	else
	{
		EncoderA = TIM4->CNT;			// 正轉(zhuǎn)
	}
	TIM4->CNT = 0xffff;
}

六、由定時器計數(shù)值得到轉(zhuǎn)速

1、計算公式

使用M法測速,計算公式為:
轉(zhuǎn)速n = 總脈沖數(shù)/四倍頻/單圈脈沖數(shù)/減速比/時間間隔

2、代碼示例

電機轉(zhuǎn)一圈本款霍爾編碼器發(fā)出13個脈沖,本款電機的減速比為1:30文章來源地址http://www.zghlxwxcb.cn/news/detail-458448.html

/*****************************************************
*@Func:	獲取電機A的速度
******
*@para:	
******
*@desc:	返回的是電機的轉(zhuǎn)速 n圈/s
******	轉(zhuǎn)速n = 總脈沖數(shù)/四倍頻/單圈脈沖數(shù)/減速比/時間		
******************************************************/ 
void Get_MotorA_Speed(void)
{
	Read_EncoderA();	// 獲取編碼器產(chǎn)生的脈沖數(shù)
	MotorASpeed = (float)EncoderA / 4 / PulseNum / ReRate / DecodeGapTime * 1000;
}

到了這里,關(guān)于stm32f103單片機—編碼器測速的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • JDY-31藍(lán)牙模塊遠(yuǎn)程控制STM32F103單片機

    JDY-31藍(lán)牙模塊遠(yuǎn)程控制STM32F103單片機

    ? ?手機app通過藍(lán)牙模塊發(fā)送指令實時控制單片機的外設(shè)功能,比如發(fā)送衣柜開關(guān)門指令(舵機旋轉(zhuǎn)),衣架上升降落(步進電機正轉(zhuǎn)反轉(zhuǎn)),遠(yuǎn)程開啟去污除濕功能(繼電器控制打開關(guān)閉小風(fēng)扇+加熱片)。 本次例子:手機APP連接藍(lán)牙模塊遠(yuǎn)程控制SG90舵機正轉(zhuǎn)(0-180°)和反

    2024年02月01日
    瀏覽(33)
  • (STM32F103單片機)DHT11溫濕度傳感器

    (STM32F103單片機)DHT11溫濕度傳感器

    目錄 ? 一,產(chǎn)品介紹 二,產(chǎn)品亮點 三,產(chǎn)品參數(shù) 四,引腳連接及通信說明 ?五,原理講解 六,源碼 1,DHR11.C 2.DHR11.H 3,main.c DHT11數(shù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號輸出的溫濕度復(fù)合傳感器。它應(yīng)用專用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品具有極高

    2023年04月08日
    瀏覽(28)
  • 【單片機】STM32單片機,RTC實時時鐘,STM32F103C8T6,程序,萬年歷,數(shù)字時鐘

    【單片機】STM32單片機,RTC實時時鐘,STM32F103C8T6,程序,萬年歷,數(shù)字時鐘

    我以STM32F103C8T6為例,但STM32F103的RTC是通用的,STM32F103C8T6有一個原理圖: https://qq742971636.blog.csdn.net/article/details/131288390 用紐扣電池給VBAT供電(要共地),即可實現(xiàn)掉電后依舊走時的能力。 主要特性(來源于STM32中文參考手冊V10.pdf): 記得加標(biāo)準(zhǔn)庫文件: 串口接收:

    2024年02月11日
    瀏覽(32)
  • 【單片機】STM32單片機頻率計程序,外部脈沖計數(shù)程序,基于脈沖計數(shù)的頻率計程序,STM32F103

    【單片機】STM32單片機頻率計程序,外部脈沖計數(shù)程序,基于脈沖計數(shù)的頻率計程序,STM32F103

    兩種方法用于在單片機中實現(xiàn)頻率計的功能。 第一種方法是通過定時器來衡量信號的周期,然后將周期轉(zhuǎn)換為頻率。在這種方法中,你可以使用單片機的定時器模塊來測量輸入信號的周期,定時器會產(chǎn)生一個計數(shù)值,你可以根據(jù)這個計數(shù)值來推算出輸入信號的周期,并通過簡

    2024年02月11日
    瀏覽(26)
  • STM32F103單片機控制繼電器開關(guān)小風(fēng)扇和加熱片

    STM32F103單片機控制繼電器開關(guān)小風(fēng)扇和加熱片

    ? ?在智能衣柜中,使用異味傳感器檢測柜內(nèi)異味值,當(dāng)異味值大于設(shè)定值時會自動開啟小風(fēng)扇,小風(fēng)扇起到一個排污去濁的功能,再加上溫濕度傳感器檢測柜內(nèi)的溫度和濕度,當(dāng)溫濕度達到設(shè)定值時,加熱片自動發(fā)熱,起到一個降溫除霉的作用。想要使小風(fēng)扇和加熱片自動

    2024年02月02日
    瀏覽(45)
  • 【單片機】STM32F103C8T6 最小系統(tǒng)板原理圖

    【單片機】STM32F103C8T6 最小系統(tǒng)板原理圖

    STM32F103C8T6是一款基于ARM Cortex-M3內(nèi)核的32位微控制器,由STMicroelectronics(ST)公司生產(chǎn)。它是STMicroelectronics的STM32系列微控制器中的一員,被廣泛應(yīng)用于嵌入式系統(tǒng)和電子設(shè)備中。 STM32F103C8T6單片機的主要特點和資源包括: 內(nèi)存資源: Flash存儲器:64 KB SRAM(靜態(tài)隨機訪問存儲器

    2024年02月12日
    瀏覽(30)
  • stm32F103單片機pwm控制伺服驅(qū)動器進而控制步進電機

    stm32F103單片機pwm控制伺服驅(qū)動器進而控制步進電機

    1.需要一臺步進電機,私服驅(qū)動器,stm32單片機;先按照說明文檔,連接好硬件相關(guān)線路,對應(yīng)好sign+,sign-,puls+,puls-線路,其中sign只是個io口拉高拉低操作,puls是pwm波形輸出口,雖然有兩根線,但只是需要控制一個IO口輸出波形即可; 采用主從模式,TIM1為主定時器,tim3未從定

    2024年02月04日
    瀏覽(22)
  • STM32F103ZET6 封裝 LQFP-144 ST意法 單片機芯片

    STM32F103ZET6 封裝 LQFP-144 ST意法 單片機芯片

    STM32F103ZET6 是意法半導(dǎo)體(STMicroelectronics)生產(chǎn)的一款基于 ARM Cortex-M3 內(nèi)核的 32 位微控制器。它具有高性能、低功耗的特點,廣泛應(yīng)用于各種嵌入式系統(tǒng)和工業(yè)應(yīng)用中。STM32F103ZET6 的主要特點如下: 內(nèi)核:ARM Cortex-M3,工作頻率最高可達 72MHz。 存儲器:64KB SRAM,512KB FLASH。 外

    2024年04月22日
    瀏覽(27)
  • STM32F103RCT6開發(fā)板M3單片機教程06--定時器中斷

    STM32F103RCT6開發(fā)板M3單片機教程06--定時器中斷

    除非特別說明,本章節(jié)描述的模塊應(yīng)用于整個 STM32F103xx 微控制器系列,因為我們使用是 STM32F103RCT6開發(fā)板是mini最小系統(tǒng)板。 本教程使用是( 光明谷SUN_STM32mini開發(fā)板 ) ? 首先了解一下是STM32F10X定時器(Timer) ? 注: 小容量產(chǎn)品是指閃存存儲器容量在16K至32K字節(jié)之間的STM32F101

    2024年02月04日
    瀏覽(99)
  • 【單片機】STM32單片機,定時器,多路PWM,TIM1、TIM2、TIM3、TIM4,STM32F103

    【單片機】STM32單片機,定時器,多路PWM,TIM1、TIM2、TIM3、TIM4,STM32F103

    下圖是定時器相關(guān)引腳: 在《STM32中文參考手冊V10.pdf》有寫: TIM1 的PWM是帶互補輸出的,較為高級和復(fù)雜,有興趣可以參考其他介紹文章,這里的代碼讓7個引腳輸出PWM。 調(diào)用: 這里沒有重映射,注意不能把PA9 PA10 初始化成串口去了。 timer.c timer.h 調(diào)用: 這里沒有重映射。

    2024年02月11日
    瀏覽(26)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包