国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于STM32的汽車外后視鏡控制模塊設(shè)計(jì)

2021-08-04 11:08令狐昌偉
汽車電器 2021年7期
關(guān)鍵詞:搖桿后視鏡端口

令狐昌偉

(湖南汽車工程職業(yè)學(xué)院,湖南 株洲 412000)

1 引言

近年來,隨著汽車保有量的提高,汽車行駛安全越來越受大家的關(guān)注,車外后視鏡所反饋的信息對(duì)駕駛員駕駛汽車的安全性也越來越重要。據(jù)統(tǒng)計(jì),中國因汽車后視鏡反饋信息不準(zhǔn)確而造成的交通事故占交通事故總數(shù)的30%,因此,車外后視鏡角度調(diào)節(jié)成為了汽車必不可少的裝置之一,隨著汽車行業(yè)的不斷發(fā)展,后視鏡角度調(diào)節(jié)從最初的手動(dòng)到現(xiàn)在的電動(dòng)控制,給駕駛員對(duì)車外信息的捕捉帶來了很大的便利。

2 系統(tǒng)方案設(shè)計(jì)

本設(shè)計(jì)主要由信號(hào)輸入裝置、控制裝置、執(zhí)行裝置三大部分組成。信號(hào)輸入裝置主要是通過搖桿電位器、LM393組成的信號(hào)檢測(cè)裝置組成,控制裝置是采用了STM32F103做為主控芯片,主要是將輸入信號(hào)進(jìn)行數(shù)據(jù)處理,從而控制執(zhí)行裝置中的兩個(gè)電機(jī)實(shí)現(xiàn)正轉(zhuǎn)與反轉(zhuǎn)功能。系統(tǒng)結(jié)構(gòu)框圖如圖1所示。

圖1 設(shè)計(jì)框圖

3 硬件設(shè)計(jì)

3.1 單片機(jī)最小系統(tǒng)設(shè)計(jì)

STM32F103C8T6單片機(jī)最小系統(tǒng)電路包括系統(tǒng)供電電路、系統(tǒng)復(fù)位電路、時(shí)鐘電路等,它是保證單片機(jī)能夠正常工作的基本電路,電路如圖2所示,時(shí)鐘電路由晶振Y1和起振電容C1、C2組成的系統(tǒng)待機(jī)低功耗時(shí)鐘,另外由Y2、C3、C4和R2晶振電阻組成,該時(shí)鐘主要用于外部高頻,PLL倍頻等。復(fù)位電路由電阻R3、電容C5和按鍵S1組成,按下S1鍵時(shí)可以實(shí)現(xiàn)手動(dòng)復(fù)位。

圖2 最小系統(tǒng)圖

3.2 搖桿電位器信號(hào)檢測(cè)電路設(shè)計(jì)

搖桿是作為用戶輸入操作的元器件,但其本身只是個(gè)電位器,所以需要配合外部電路組合成一個(gè)比較電路,從而獲得用戶輸入的行為值。在本設(shè)計(jì)的搖桿輸入模塊里,采用的是LM393和可調(diào)電位器組成的比較輸出電路,具有靈敏度可調(diào)性和輸出準(zhǔn)確性。搖桿電位器的電壓值與調(diào)整好的比較電壓值進(jìn)行比較,檢測(cè)出目前搖桿所處的具體位置,根據(jù)OUT1和OUT2來決定步進(jìn)電機(jī)1的動(dòng)作,OUT3和OUT4來決定步進(jìn)電機(jī)2動(dòng)作,如此即可根據(jù)兩個(gè)步進(jìn)電機(jī)的正反轉(zhuǎn)來控制汽車外后視鏡的旋轉(zhuǎn)角度。信號(hào)比較檢測(cè)電路如圖3所示。

圖3 信號(hào)比較檢測(cè)電路

3.3 步進(jìn)電機(jī)驅(qū)動(dòng)電動(dòng)設(shè)計(jì)

ULN2003是集成達(dá)林頓管IC,內(nèi)部還集成了消線圈反電動(dòng)勢(shì)的二極管,是一個(gè)雙列直插式16腳封裝IC,最大驅(qū)動(dòng)電壓可達(dá)50V,電流可達(dá)500mA,輸入電壓為5V,適用于TTL、COMS電路,它具有電流增益高、工作電壓高、溫度范圍寬、帶負(fù)載能力強(qiáng)等特點(diǎn),適應(yīng)于各類要求高束大功率驅(qū)動(dòng)的系統(tǒng)。

步進(jìn)電機(jī),我采用了四相小步進(jìn)電機(jī)來帶動(dòng)后視鏡。主要是因?yàn)椴捎妙l進(jìn)電機(jī)的最大的好處是路程長(zhǎng)度可以精確控制,而具不易出現(xiàn)打滑的現(xiàn)象。我們?yōu)殡姍C(jī)提供了單極性直流電源,在控制時(shí),只需對(duì)各相繞組按合適的時(shí)序通電,即可使步進(jìn)電機(jī)按我們的需要轉(zhuǎn)動(dòng)。步進(jìn)電機(jī)驅(qū)動(dòng)電路如圖4所示。

圖4 步進(jìn)電機(jī)驅(qū)動(dòng)電路

4 程序設(shè)計(jì)

本設(shè)計(jì)主要包括了主程序、輸入檢測(cè)、輸出檢測(cè)和步進(jìn)電機(jī)控制程序組成。通過控制步進(jìn)電機(jī)1和步進(jìn)電機(jī)2來完成對(duì)后視鏡的角度調(diào)節(jié)。步進(jìn)電機(jī)1正轉(zhuǎn)時(shí)后視鏡向北偏轉(zhuǎn),反轉(zhuǎn)時(shí)向南偏轉(zhuǎn),步進(jìn)電機(jī)2正轉(zhuǎn)時(shí)后視鏡向東偏轉(zhuǎn),反轉(zhuǎn)時(shí)向西偏轉(zhuǎn),當(dāng)步進(jìn)電機(jī)1和2同時(shí)正轉(zhuǎn)時(shí),后視鏡可向東北方向偏轉(zhuǎn),步進(jìn)電機(jī)1正轉(zhuǎn),2反轉(zhuǎn)時(shí),即可向西北方向偏轉(zhuǎn),以此類推,可以控制東南和西南方向的偏轉(zhuǎn)控制。要實(shí)現(xiàn)上述控制功能,需要進(jìn)行如下程序設(shè)計(jì),詳見圖5。

圖5 程序設(shè)計(jì)

4.1 主程序設(shè)計(jì)

主程序的基本設(shè)計(jì)思路是將搖桿電位器所傳來的電壓信號(hào)通過輸入信號(hào)檢測(cè)電路進(jìn)行比較輸出,如果電位器處于中心位置時(shí),搖桿電位器中心輸出電壓為2.35V,單片機(jī)將依據(jù)電壓信號(hào)對(duì)搖桿電位器置0信號(hào)進(jìn)行檢測(cè),判斷是否需要控制電機(jī)運(yùn)轉(zhuǎn),如得到搖桿電位器處在非0位置,則會(huì)將此時(shí)比較器輸出的電壓信號(hào)作為步進(jìn)電機(jī)的驅(qū)動(dòng)指令信號(hào),該信號(hào)送入STM32單片機(jī)中進(jìn)行處理,通過數(shù)據(jù)處理后將該指令經(jīng)單片機(jī)輸出送給步進(jìn)電機(jī)驅(qū)動(dòng)電路,從而控制步進(jìn)兩個(gè)步進(jìn)電機(jī)實(shí)現(xiàn)正反轉(zhuǎn),最終使得后視鏡的角度發(fā)生變化。如圖5所示。

通過不斷的對(duì)搖桿位置判斷直至檢測(cè)置0,步進(jìn)電機(jī)停止。

4.2 輸入檢測(cè)

輸入檢測(cè)所采用的是位帶操作,直接讀取寄存器狀態(tài),代碼如下。

#define GPIOA_OOR_Addr (GPIOA_BASE+12)

#define GPIOB_OOR_Addr (GPIOB_BASE+12)

#define GPIOC_OOR_Addr (GPIOC_BASE+12)

#define GPIOD_OOR_Addr (GPIOD_BASE+12)

#define GPIOE_OOR_Addr (GPIOE_BASE+12)

#define GPIOF_OOR_Addr (GPIOF_BASE+12)

#define GPIOG_OOR_Addr (GPIOG_BASE+12)

#define GPIOA_OOR_Addr (GPIOA_BASE+8)

#define GPIOB_OOR_Addr (GPIOB_BASE+8)

#define GPIOC_OOR_Addr (GPIOC_BASE+8)

#define GPIOD_OOR_Addr (GPIOD_BASE+8)

#define GPIOE_OOR_Addr (GPIOE_BASE+8)

#define GPIOF_OOR_Addr (GPIOF_BASE+8)

#define GPIOG_OOR_Addr (GPIOG_BASE+8)

#define PAout(n)BIT_ADDR(GPIOA_OOR_Addr,n)

#define PAin(n) BIT_ADDR(GPIOA_IOR_Addr,n)

#define PBout(n)BIT_ADDR(GPIOB_OOR_Addr,n)

#define PBin(n) BIT_ADDR(GPIOB_IOR_Addr,n)

#define PCout(n)BIT_ADDR(GPIOC_OOR_Addr,n)

#define PCin(n) BIT_ADDR(GPIOC_IOR_Addr,n)

#define PDout(n)BIT_ADDR(GPIOD_OOR_Addr,n)

#define PDin(n) BIT_ADDR(GPIOD_IOR_Addr,n)

#define PEout(n)BIT_ADDR(GPIOE_OOR_Addr,n)

#define PEin(n) BIT_ADDR(GPIOE_IOR_Addr,n)

#define PFout(n)BIT_ADDR(GPIOF_OOR_Addr,n)

#define PFin(n) BIT_ADDR(GPIOF_IOR_Addr,n)

#define PGout(n)BIT_ADDR(GPIOG_OOR_Addr,n)

#define PGin(n) BIT_ADDR(GPIOG_IOR_Addr,n)

通過上述代碼對(duì)位帶操作讀取端口進(jìn)行定義,需要調(diào)用時(shí)直接讀取類似“xflag”類似的寵定義即可檢測(cè)出當(dāng)前端口狀態(tài)。代碼如下。

#include”H.h”

Int main()

{

SystemInit();

STEP_MOTOR_Init();

YG_GPIO_Config();

TIM2_Configuration();

While(1)

{

Auto_Kong(_xflag,_Yflag,Xflag,Yflag);

}}

4.3 輸出控制端口初始化

輸出控制,我們采用的是ULN2003芯片,該芯片只是接收高電平或者低電平就會(huì)在相應(yīng)的驅(qū)動(dòng)輸出端給輸對(duì)應(yīng)的驅(qū)動(dòng)電壓信號(hào),而在本產(chǎn)品中輸出控制我們只采用了GPIOB組的端口,因此,輸出端口的配置我們只需要進(jìn)行普通配置即可。在配置端口的時(shí)候我們需要注意的是PB3和PB4兩個(gè)端口需要有JTAG和SW功能,需要將其重新映射才能作為普通GPIO功能使用。端口配置完成后,首先應(yīng)該給端口賦值,使電機(jī)的狀態(tài)為停止運(yùn)行狀態(tài)。爭(zhēng)對(duì)ULN2003芯片而言,我們只需將端口初始值賦予低電平即可。

4.4 步進(jìn)電機(jī)控制程序設(shè)計(jì)

設(shè)計(jì)時(shí)采用的是兩個(gè)四相八拍步進(jìn)電機(jī),在進(jìn)行程序設(shè)計(jì)時(shí)將其封裝一個(gè)函數(shù),然后進(jìn)行電機(jī)控制程序設(shè)計(jì),設(shè)計(jì)思路如下。

1)判斷X軸或Y軸電機(jī)的選取狀態(tài)。

2)判斷步進(jìn)電機(jī)的旋轉(zhuǎn)狀態(tài)是正轉(zhuǎn)或反轉(zhuǎn)。

3)有效電機(jī)的狀態(tài)位增/減。

4)判斷狀態(tài)位是否高于7或者低于0,高于7則置0,低于0則置7。

5)輸入到電機(jī)控制函數(shù)。

5 結(jié)論

本設(shè)計(jì)是基于STM32控制車外后視鏡調(diào)節(jié)模塊,由于設(shè)計(jì)中采用高精度、超強(qiáng)抗干擾的內(nèi)部自帶AD轉(zhuǎn)換模塊的單片機(jī)作為主控制器,同時(shí)采用了搖桿控制,能夠更快更準(zhǔn)地調(diào)節(jié)后視鏡的角度,使駕駛員的行車更安全可靠。

猜你喜歡
搖桿后視鏡端口
溫度對(duì)圓柱殼結(jié)構(gòu)應(yīng)力及端口變形影響研究
華為交換機(jī)端口Hybrid 模式的應(yīng)用
一種端口故障的解決方案
下雨天,車窗和后視鏡起霧怎么辦
基于3D打印的曲柄搖桿機(jī)構(gòu)實(shí)驗(yàn)設(shè)計(jì)
車輛防霧后視鏡
臂戴后視鏡
VR飛行模擬的伴侶
曲柄搖桿式硬幣分離機(jī)設(shè)計(jì)
為程序或設(shè)備在路由器上打開端口
独山县| 比如县| 武川县| 原阳县| 永年县| 泸州市| 从化市| 科技| 杭州市| 咸阳市| 湖口县| 茂名市| 石棉县| 天峻县| 安新县| 榆树市| 河曲县| 彰化县| 永仁县| 竹山县| 泰兴市| 榆社县| 鄂温| 蒙自县| 炉霍县| 扶沟县| 鸡泽县| 安阳市| 额敏县| 广德县| 景洪市| 江都市| 汨罗市| 桑日县| 柏乡县| 亳州市| 北海市| 徐闻县| 郓城县| 日照市| 海宁市|