国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當前位置: 首頁 > news >正文

公司網(wǎng)站建設應注意什么seo技術網(wǎng)網(wǎng)

公司網(wǎng)站建設應注意什么,seo技術網(wǎng)網(wǎng),廣東企業(yè)網(wǎng)站建設推薦,發(fā)布網(wǎng)站后備案一、硬件設計 1.直流減速電機 ??直流減速電機,即齒輪減速電機,是在普通直流電機的基礎上,加上配套齒輪減速箱。齒輪減速箱的作用是,提供較低的轉(zhuǎn)速,較大的力矩。??簡單的來說,STM32分配兩個IO口給一個…

一、硬件設計

1.直流減速電機
??直流減速電機,即齒輪減速電機,是在普通直流電機的基礎上,
加上配套齒輪減速箱。齒輪減速箱的作用是,提供較低的轉(zhuǎn)速,較大的力矩。
??簡單的來說,STM32分配兩個IO口給一個直流減速電機,并給予高低電平,來使得電機進行正轉(zhuǎn)或反轉(zhuǎn)。

在這里插入圖片描述

我用的電機為GM25-370直流減速電機(帶霍爾編碼器),工作電壓:6-24VDC,額定電壓12V,額定電流0.65A,空載轉(zhuǎn)速350RPM,額定功率5W,最大精度,1496CPR,配備 CPR霍爾AB兩相編碼器,減速后輸出單圈374個正交脈沖。

2.TB6612FNG電機驅(qū)動芯片

????????要實現(xiàn)小車的轉(zhuǎn)向與前進后退控制,我們可以使用STM32實現(xiàn),但是STM32的IO口帶負載能力較弱,而直流電機是大電流感性負載,所以我們需要功率放大器件,在這里,我選擇使用TB6612FNG這款電機驅(qū)動芯片。
??TB6612FNG 是東芝半導體公司生產(chǎn)的一款直流電機驅(qū)動器件,它具有大電流MOSFET-H 橋結構,雙通道電路輸出,可同時驅(qū)動 2 個電機。相比于 L298N的熱耗性和外圍二極管續(xù)流電路,TB6612FNG無需外加散熱片,外圍電路簡單,只需外接電源濾波電容就可以直接驅(qū)動電機,利于減小系統(tǒng)尺寸。對于PWM信號輸入頻率范圍,我采用10KHz的頻率,并通過改變占空比調(diào)節(jié)電機的速度。

平衡小車中使用到的引腳:
??電機1——PB12/PB13
??電機2——PB14/PB15
??PWM1——PA8
??PWM2——PA11

在這里插入圖片描述

在這里插入圖片描述?

3.H橋驅(qū)動電路

????????上面說到TB6612FNG 具有大電流MOSFET-H橋結構,那么很多小伙伴想問:什么是H橋結構呢?我以下面兩張圖舉例,幫助大家簡單化理解H橋電路結構。
注:圖中的電路Q1,Q2,Q3,Q4為三極管,而TB6612內(nèi)部集成的是四個MOSFET,我以下圖舉例,大家不可把下圖看做是TB6612內(nèi)部電路,其內(nèi)部電路可查看TB6612的參考手冊。
?

① 當Q1,Q4導通,Q2,Q3關斷時,電流從Q1,從電機正極通過電機負極,再從Q4流出,完成一條回路,電機Motor正轉(zhuǎn)。

在這里插入圖片描述

?① 當Q2,Q3導通,Q1,Q4關斷時,電流從Q3,從電機負極通過電機正極,再從Q2流出,完成一條回路,電機Motor反轉(zhuǎn)。

在這里插入圖片描述

二、軟件編程

1.電機驅(qū)動函數(shù)——motor.c
1)電機GPIO初始化函數(shù)
?入口參數(shù):

  • 初始化GPIO–PB12、PB13、PB14、PB15為推挽輸出
void Motor_Init(void)
{GPIO_InitTypeDef GPIO_InitStruct;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);// 開啟時鐘GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;// 初始化GPIO--PB12、PB13、PB14、PB15為推挽輸出GPIO_InitStruct.GPIO_Pin=GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,&GPIO_InitStruct);	
}

2)限幅函數(shù)
?入口參數(shù):電機A脈沖個數(shù),電機B脈沖個數(shù)

  • 限制電機的脈沖個數(shù)在規(guī)定范圍內(nèi),有個最值,即自動重裝載值(我設置的是PWM_MAX = 7200,PWM_MIN = -7200)
void Limit(int *motoA,int *motoB)
{if(*motoA>PWM_MAX)*motoA=PWM_MAX;if(*motoA<PWM_MIN)*motoA=PWM_MIN;if(*motoB>PWM_MAX)*motoB=PWM_MAX;if(*motoB<PWM_MIN)*motoB=PWM_MIN;
}

?3)絕對值函數(shù)(非常通用,建議保存!!)
?入口參數(shù):常規(guī)變量

  • 通過與0比較,大于0則返回不變的值,小于0則返回相反的值。
int abs(int p)
{int q;q=p>0?p:(-p);return q;
}

4)賦值函數(shù)
?入口參數(shù):電機A脈沖個數(shù),電機B脈沖個數(shù)

  • 入口參數(shù)即為PID運算完成后的最終PWM值(后續(xù)會講解PID算法的實現(xiàn))
void Load(int moto1,int moto2)
{//1.研究正負號,對應正反轉(zhuǎn)if(moto1>0)	Ain1=1,Ain2=0;//正轉(zhuǎn)else 				Ain1=0,Ain2=1;//反轉(zhuǎn)//2.研究PWM值TIM_SetCompare1(TIM1,abs(moto1));//1.研究正負號,對應正反轉(zhuǎn)if(moto2>0)Bin1=1,Bin2=0;else 				Bin1=0,Bin2=1;	//2.研究PWM值TIM_SetCompare4(TIM1,abs(moto2));
}

2.電機驅(qū)動函數(shù)頭文件——motor.h

#ifndef  _MOTOR_H
#define  _MOTOR_H#include "sys.h" #define Ain1  PBout(14)
#define Ain2  PBout(15)#define Bin1  PBout(13)
#define Bin2  PBout(12)void Motor_Init(void);
void Limit(int *motoA,int *motoB);
int abs(int p);
void Load(int moto1,int moto2);
#endif

3.PWM函數(shù)——pwm.c

1. 定時器初始化函數(shù)
?入口參數(shù):預分頻值,自動重裝載值

  • PA8,PA11復用推挽輸出
  • 對應定時器1通道1和通道4
  • 開啟MOE主輸出使能(高級定時器特有!!!)
void PWM_Init_TIM1(u16 Psc,u16 Per)
{GPIO_InitTypeDef GPIO_InitStruct;TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;TIM_OCInitTypeDef TIM_OCInitStruct;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_TIM1 | RCC_APB2Periph_AFIO,ENABLE);//開啟時鐘GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;        // 初始化GPIO--PA8、PA11為復用推挽輸出GPIO_InitStruct.GPIO_Pin=GPIO_Pin_8 | GPIO_Pin_11;GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStruct);TIM_TimeBaseStructInit(&TIM_TimeBaseInitStruct);  // 初始化定時器。TIM_TimeBaseInitStruct.TIM_ClockDivision=TIM_CKD_DIV1;TIM_TimeBaseInitStruct.TIM_CounterMode=TIM_CounterMode_Up;TIM_TimeBaseInitStruct.TIM_Period=Per;TIM_TimeBaseInitStruct.TIM_Prescaler=Psc;TIM_TimeBaseInit(TIM1,&TIM_TimeBaseInitStruct);   // TIM1TIM_OCInitStruct.TIM_OCMode=TIM_OCMode_PWM1;      // 初始化輸出比較TIM_OCInitStruct.TIM_OCPolarity=TIM_OCPolarity_High;TIM_OCInitStruct.TIM_OutputState=TIM_OutputState_Enable;TIM_OCInitStruct.TIM_Pulse=0;TIM_OC1Init(TIM1,&TIM_OCInitStruct);TIM_OC4Init(TIM1,&TIM_OCInitStruct);TIM_CtrlPWMOutputs(TIM1,ENABLE);// 高級定時器專屬!!!--MOE主輸出使能TIM_OC1PreloadConfig(TIM1,TIM_OCPreload_Enable);// OC1預裝載寄存器使能TIM_OC4PreloadConfig(TIM1,TIM_OCPreload_Enable);// OC4預裝載寄存器使能TIM_ARRPreloadConfig(TIM1,ENABLE);// TIM1在ARR上預裝載寄存器使能TIM_Cmd(TIM1,ENABLE);           // 開定時器。
}

4.PWM函數(shù)頭文件——pwm.h

#ifndef  _PWM_H
#define  _PWM_H#include "sys.h" void PWM_Init_TIM1(u16 Psc,u16 Per);
#endif

以上就是平衡小車系列文章第二講——電機驅(qū)動,包括硬件結構講解和STM32軟件編程的講解,文章中出現(xiàn)錯誤或者小伙伴對以上內(nèi)容有所疑問,歡迎大家在評論區(qū)留言,小政看到后會盡快回復大家!

http://m.aloenet.com.cn/news/32242.html

相關文章:

  • 網(wǎng)站建設完整seo外包公司哪家好
  • 山東 基層政府網(wǎng)站集約化建設免費自媒體網(wǎng)站
  • 做亞馬遜網(wǎng)站需要租辦公室嗎百度關鍵詞規(guī)劃師
  • 倒閉漢化組的wordpress網(wǎng)絡優(yōu)化工具app手機版
  • 找合伙人做紅木家具網(wǎng)站廈門seo百度快照優(yōu)化
  • 網(wǎng)頁設計軟件app百度seo入駐
  • 做網(wǎng)站v1認證需要付費嗎seo外包服務公司
  • 電影網(wǎng)站app怎么做的怎么創(chuàng)建自己的免費網(wǎng)址
  • 優(yōu)化網(wǎng)站的網(wǎng)站seo快速優(yōu)化排名
  • 深圳效果好的免費網(wǎng)站建設seo知識總結
  • 邢臺路橋建設總公司沒有網(wǎng)站嗎做優(yōu)化的網(wǎng)站
  • 常德網(wǎng)站制作sem推廣是什么意思呢
  • ui參考網(wǎng)站網(wǎng)站優(yōu)化排名金蘋果下拉
  • mobile網(wǎng)站開發(fā)百度大搜推廣開戶
  • 如何在aws上創(chuàng)建wordpress北京seo公司助力網(wǎng)絡營銷
  • 襄陽營銷型網(wǎng)站建設網(wǎng)站排名優(yōu)化外包
  • 網(wǎng)站建設糾紛怎么投訴自己怎樣開網(wǎng)站
  • wordpress博客xiu北京seo供應商
  • asp.net 旅游網(wǎng)站開發(fā)淘寶seo優(yōu)化排名
  • 上海消費品網(wǎng)絡營銷推廣公司長沙seo排名優(yōu)化公司
  • 鮮花網(wǎng)站怎么做寧波seo推廣服務
  • wordpress 去除頁面標題seo點擊軟件手機
  • 做健身網(wǎng)站東莞網(wǎng)站制作
  • 色無極網(wǎng)站正在建設中seo值是什么意思
  • 網(wǎng)站開發(fā)中的抓包工具網(wǎng)站代運營多少錢一個月
  • 氣象服務網(wǎng)站建設計算機培訓
  • 網(wǎng)站開發(fā)和桌面開發(fā)哪個難百度搜索熱詞查詢
  • 視頻網(wǎng)站開發(fā)前景創(chuàng)建網(wǎng)站的流程
  • 東莞建站網(wǎng)站模板站長查詢工具
  • 做視頻網(wǎng)站需要多少帶寬優(yōu)化網(wǎng)站標題名詞解釋