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

STM32:利用PWM波控制飛盈電調(diào)過(guò)程和注意事項(xiàng)

這篇具有很好參考價(jià)值的文章主要介紹了STM32:利用PWM波控制飛盈電調(diào)過(guò)程和注意事項(xiàng)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

STM32:利用PWM波控制電調(diào)過(guò)程和注意事項(xiàng)

在進(jìn)行模型控制的過(guò)程中,如四旋翼無(wú)人機(jī)等,需要用到電機(jī),這些電機(jī)需要通過(guò)電調(diào)來(lái)控制電機(jī)的轉(zhuǎn)速。在電調(diào)模塊中帶有的說(shuō)明書一般都是利用遙控器進(jìn)行控制,有些情況需要自己通過(guò)信號(hào)控制電調(diào),而非遙控器,這個(gè)時(shí)候需要用到單片機(jī)生成PWM波。

總體思路

電調(diào)的型號(hào)和種類繁多,但是大部分的原理應(yīng)該相同,這里面采用FLYCOLOR家的多旋翼無(wú)刷電子調(diào)速器進(jìn)行實(shí)驗(yàn),單片機(jī)選擇的是正點(diǎn)原子的stm32 MINI 開發(fā)版,芯片信號(hào)為stm32f103rct6。

為了快速控制電調(diào),首先需要一個(gè)生成PWM波形的程序,這里面采用的是正點(diǎn)原子中的例程。

例程中的程序是利用TIMER1 定時(shí)器生成PWM波來(lái)控制指示燈DS0的亮暗過(guò)程,首先下載程序可以看出指示燈在逐漸亮滅。因?yàn)椴捎玫腜A8作為IO口的輸出,電調(diào)的控制信號(hào)可以接在此端口上。這樣就有了一個(gè)可以生成PWM波形的程序。

1. 電調(diào)說(shuō)明注意事項(xiàng)

看電調(diào)的說(shuō)明書,說(shuō)明書中會(huì)有參數(shù)和連接方式等介紹,這些需要注意一下,重點(diǎn)看的是工作過(guò)程提示音,

stm32控制電調(diào),單片機(jī)&ARM,stm32,單片機(jī),嵌入式硬件

stm32控制電調(diào),單片機(jī)&ARM,stm32,單片機(jī),嵌入式硬件
stm32控制電調(diào),單片機(jī)&ARM,stm32,單片機(jī),嵌入式硬件
這個(gè)圖是在進(jìn)行油門校準(zhǔn)和正常工作的過(guò)程通過(guò)提示音判斷每個(gè)過(guò)程是否成功,在實(shí)際使用的時(shí)候具有很好的提示作用。

注意以下問(wèn)題:

  1. 在電調(diào)上電的過(guò)程中會(huì)有整成工作過(guò)的提示音。
  2. 在進(jìn)行油門校準(zhǔn)的過(guò)程中,如果輸出上電的油門處于大油門,那么將會(huì)進(jìn)行大油門的量程設(shè)定,然后在聽到提示音過(guò)后,需要進(jìn)行小油門的設(shè)定,最終聽到油門校準(zhǔn)成功的設(shè)定之后,就可以正常使用了。
  3. 如果上電開始時(shí)處于最小油門,則不需要設(shè)定,直接就能工作。

2. STM32生成PWM波注意事項(xiàng)

在了解了油門校準(zhǔn)的過(guò)程后,那么如果對(duì)應(yīng)成PWM波形的控制,注意以下幾點(diǎn):

  1. 在控制電調(diào)的過(guò)程中,PWM的頻率50Hz,即20ms,占空比越高,轉(zhuǎn)速越快,占空比的范圍為0.8ms-2.2ms。
  2. 在進(jìn)行校準(zhǔn)的過(guò)程中,需要對(duì)占空比的波形進(jìn)行延時(shí),先校準(zhǔn)大油門,再校準(zhǔn)小油門,保證聽到校準(zhǔn)成功的提示音聽到再進(jìn)行下一步,在兩個(gè)油門校準(zhǔn)的過(guò)程中留好時(shí)間。

3. 程序代碼

接下來(lái)是程序代碼:
pwm.c文件

#include "pwm.h"
#include "led.h"
//	 

// PWM 輸出初始化
// arr 自動(dòng)重裝值 psc 時(shí)鐘預(yù)分頻數(shù)
void TIM1_PWM_Init(u16 arr,u16 psc)
{  
	 GPIO_InitTypeDef GPIO_InitStructure;
	TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
	TIM_OCInitTypeDef  TIM_OCInitStructure;

	RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);// 
 	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE);  //
	                                                                     	

   //引腳復(fù)用,PA8輸出TIM1_CH1波形
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //TIM_CH1
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //推挽輸出
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOA, &GPIO_InitStructure);

	
	TIM_TimeBaseStructure.TIM_Period = arr; //
	TIM_TimeBaseStructure.TIM_Prescaler =psc; //
	TIM_TimeBaseStructure.TIM_ClockDivision = 0; //Tck_tim
	TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  
	TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); //

 
	TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; // 這個(gè)模式需要選擇PWM1 模式
	TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //
	TIM_OCInitStructure.TIM_Pulse = 0; //
	TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //
	TIM_OC1Init(TIM1, &TIM_OCInitStructure);  //

  TIM_CtrlPWMOutputs(TIM1,ENABLE);		

	TIM_OC1PreloadConfig(TIM1, TIM_OCPreload_Enable);  //	 
	
	TIM_ARRPreloadConfig(TIM1, ENABLE); //
	
	TIM_Cmd(TIM1, ENABLE);  //
 
   
}

main.c

#include "led.h"
#include "delay.h"
#include "sys.h"
#include "pwm.h"
//ALIENTEK Mini STM32?a·¢°?·?ày′ú??8
//PWMê?3?êμ?é   
//??ê??§3?£owww.openedv.com
//1??YêDD?òíμ?×ó????óD?T1???

 int main(void)
 {	
	u16 led0pwmval=2900;    
	u8 dir=1;	
	delay_init();	    	 //  
	//LED_Init();		  	//
	TIM1_PWM_Init(57599,25);//=72000/(57599+1)/25=50hz 50Hz
	TIM_SetCompare1(TIM1,5760);	 
	TIM_SetCompare1(TIM1,5760);	
	delay_ms(1500);   // 
	delay_ms(1500);
	 	delay_ms(1500);
	 	delay_ms(1500);
	 	delay_ms(1500);
	 	delay_ms(1500);
	 	delay_ms(1500);
	 	delay_ms(1500);
	 	delay_ms(1500);
	 TIM_SetCompare1(TIM1,2880);	 // 
	 TIM_SetCompare1(TIM1,2880);
	 delay_ms(1500);
	 delay_ms(1500);
	 delay_ms(1500);
	 delay_ms(1500);
	 delay_ms(1500);
	 delay_ms(1500);
	 delay_ms(1500);
	 delay_ms(1500);
	 delay_ms(1500);
	 delay_ms(1500);
	 delay_ms(1500);

	delay_ms(1500);
//	TIM_SetCompare1(TIM1,2900);
   	while(1)
	{
// 		delay_ms(1000);	 
		if(dir)led0pwmval++;
		else led0pwmval--;	 
 		if(led0pwmval>5760)
		{
			dir=0;
			led0pwmval = 2900;
		}
		if(led0pwmval==2900)dir=1;	   					 
		TIM_SetCompare1(TIM1,led0pwmval);	   
	} 
}

注意代碼中的輸出PWM1模式,然后占空比的大小為led0pwmval/57600,設(shè)定中間添加延時(shí),先可以時(shí)間長(zhǎng)一點(diǎn),然后根據(jù)校準(zhǔn)需要的時(shí)間進(jìn)行調(diào)整。

4. 波形驗(yàn)證

按照上述慚怍,這樣就可以產(chǎn)生所需要的PWM波形。

stm32控制電調(diào),單片機(jī)&ARM,stm32,單片機(jī),嵌入式硬件
校準(zhǔn)大占空比,即大油門波形。
stm32控制電調(diào),單片機(jī)&ARM,stm32,單片機(jī),嵌入式硬件
設(shè)定小占空比,即小油門波形。

最后連接上電調(diào),既可以工作,可以看到校準(zhǔn)完油門之后,根據(jù)程序轉(zhuǎn)速在逐漸變化。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-566325.html

到了這里,關(guān)于STM32:利用PWM波控制飛盈電調(diào)過(guò)程和注意事項(xiàng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 基于STM32利用PWM完成呼吸燈的實(shí)現(xiàn)

    基于STM32利用PWM完成呼吸燈的實(shí)現(xiàn)

    1.高級(jí)控制定時(shí)器功能實(shí)現(xiàn)框圖 其中分為6個(gè)板塊:①時(shí)鐘源②控制器 ③時(shí)基單元 ④輸入捕獲 ⑤輸出比較 ⑥斷路功能 2.pwm的定義 pwm是???????一種模擬控制方式,根據(jù)相應(yīng)載荷的變化來(lái)調(diào)制晶體管柵極或基極的偏置,來(lái)實(shí)現(xiàn)開關(guān)穩(wěn)壓電源輸出晶體管或晶體管導(dǎo)通時(shí)間

    2024年02月03日
    瀏覽(14)
  • STM32PWM控制直流電機(jī)

    STM32PWM控制直流電機(jī)

    PWM介紹 脈沖寬度調(diào)制(PWM),是英文“Pulse Width Modulation”的縮寫,簡(jiǎn)稱脈寬調(diào)制,是利用 微處理器的數(shù)字輸出來(lái)對(duì)模擬電路進(jìn)行控制的一種非常有效的技術(shù)。簡(jiǎn)單一點(diǎn),就是對(duì)脈沖寬 度的控制 PWM的原理: 假定定時(shí)器工作在向上計(jì)數(shù) PWM 模式,且當(dāng) CNT=CCRx 時(shí)輸出 1。那么就可以

    2024年02月08日
    瀏覽(17)
  • stm32按鍵控制改變pwm占空比

    每次按下按鍵改變TIM_Setcompare函數(shù)中占空比值即可。 相關(guān)io口,占空比調(diào)節(jié)級(jí)數(shù),是否支持連按根據(jù)自己需要自行修改。 main.c #include \\\"delay.h\\\" #include \\\"sys.h\\\" #include \\\"pwm.h\\\" #include \\\"stm32f10x_tim.h\\\" #include \\\"key.h\\\" int t=50;//占空比 void key_function(void)? { ?static u8 key = 0; ?key = KEY_Scan(0); if(key

    2024年02月08日
    瀏覽(20)
  • STM32輸出PWM波控制180°舵機(jī)

    STM32輸出PWM波控制180°舵機(jī)

    時(shí)間記錄:2024/2/8 (1)脈沖寬度調(diào)制 (2)占空比:高電平時(shí)間占整個(gè)周期時(shí)間的比例 (3)STM32通過(guò)定時(shí)器實(shí)現(xiàn)PWM時(shí)具有兩種模式 PWM1模式:向上計(jì)數(shù)模式下,CNT當(dāng)前計(jì)數(shù)寄存器的值小于CCR比較寄存器的值時(shí)輸出有效電平,大于時(shí)輸出無(wú)效電平,向下計(jì)數(shù)模式下,CNT當(dāng)前計(jì)數(shù)

    2024年02月21日
    瀏覽(21)
  • 搭建stm32電機(jī)控制代碼框架(五)——Stm32CubeMx配置PWM

    搭建stm32電機(jī)控制代碼框架(五)——Stm32CubeMx配置PWM

    采樣配置完成后,進(jìn)行PWM的配置。PWM的生成依賴于STM32的TIM1定時(shí)器,其功能完備如下圖所示,電機(jī)控制中主要應(yīng)用其PWM生成功能。 我們當(dāng)前階段的目標(biāo)是生成占空比為50%的三路PWM,其開關(guān)頻率為10kHz。 那么開始CubeMx的配置,依據(jù)stm32f405數(shù)據(jù)手冊(cè)中地址總線部分內(nèi)容,TIM1是掛

    2024年02月16日
    瀏覽(27)
  • 學(xué)習(xí)stm32 pwm 多路舵機(jī)的控制(PWM 的頻率的理解)

    學(xué)習(xí)stm32 pwm 多路舵機(jī)的控制(PWM 的頻率的理解)

    接著上一節(jié),pwm 的使用,控制多路舵機(jī)進(jìn)行角度旋轉(zhuǎn)和設(shè)置。 參考stm32f103x中文說(shuō)明時(shí)鐘樹如下圖 1.當(dāng)HSI被用于作為PLL時(shí)鐘的輸入時(shí),系統(tǒng)時(shí)鐘能得到的最大頻率是64MHz。 2.對(duì)于內(nèi)部和外部時(shí)鐘源的特性,請(qǐng)參考相應(yīng)產(chǎn)品數(shù)據(jù)手冊(cè)中“電氣特性”章節(jié)。 用戶可通過(guò)多個(gè)預(yù)分

    2024年02月13日
    瀏覽(20)
  • STM32第八課:PWM控制直流電機(jī)

    STM32第八課:PWM控制直流電機(jī)

    ????????TB6612FNG是一款新型驅(qū)動(dòng)器件,能獨(dú)立雙向控制2個(gè)直流電機(jī),它具有很高的集成度,同時(shí)能提供足夠的輸出能力,運(yùn)行性能和能耗方面也具有優(yōu)勢(shì)因此在集成化、小型化的電機(jī)控制系統(tǒng)中,它可以作為理想的電機(jī)驅(qū)動(dòng)器件。 ??????????????????????????

    2024年03月24日
    瀏覽(21)
  • 【STM32基礎(chǔ)】第四篇、控制PWM占空比

    【STM32基礎(chǔ)】第四篇、控制PWM占空比

    目錄 第一部分、STM32定時(shí)器的基本知識(shí) 1、STM32定時(shí)器的分類(圖片來(lái)自野火文檔) 2、開發(fā)過(guò)程中定時(shí)器的常用基礎(chǔ)功能 3、定時(shí)器掛在的總線 ?第二部分、能用的代碼 ? 1、定時(shí)器計(jì)時(shí)代碼 2、定時(shí)器輸出PWM代碼 第三部分、總結(jié) 1、STM32定時(shí)器的分類(圖片來(lái)自野火文檔) ?

    2024年02月07日
    瀏覽(25)
  • STM32第七課:PWM控制SG90舵機(jī)

    STM32第七課:PWM控制SG90舵機(jī)

    ????????學(xué)習(xí)完上一課的PWM控制LED小燈實(shí)現(xiàn)呼吸燈的效果,我們就可以進(jìn)一步學(xué)習(xí)PWM控制舵機(jī)的效果了。PWM控制舵機(jī)相信會(huì)是一個(gè)更有意思的小實(shí)驗(yàn)的。 ???????? 舵機(jī)是一種位置(角度)伺服的驅(qū)動(dòng)器,適用于那些需要角度不斷變化并可以保持的控制系統(tǒng)。目前在高檔

    2024年04月17日
    瀏覽(24)
  • STM32-微項(xiàng)目03-pwm控制直流電機(jī)運(yùn)行

    STM32-微項(xiàng)目03-pwm控制直流電機(jī)運(yùn)行

    一,項(xiàng)目目標(biāo) 實(shí)現(xiàn)利用STM32F103C8T6+TB6612,輸出不同占空比輸出的PWM波,從而實(shí)現(xiàn)電機(jī)不同轉(zhuǎn)速的運(yùn)行、正反轉(zhuǎn)的功能; ? ?二、硬件涉及 1,STM32核心板 2,TB6612直流電機(jī)驅(qū)動(dòng)模塊 3,直流電機(jī)? 三、硬件接線涉及 1,先看TB6612直流電機(jī)驅(qū)動(dòng)模塊: ①驅(qū)動(dòng)模塊是具備兩路PWM輸入

    2024年02月04日
    瀏覽(19)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包