郭立芝
(西安石油大學(xué)電子工程學(xué)院,陜西西安710065)
小車(chē)在如圖1所示的跑道上自動(dòng)往返行駛,跑道表面貼有白紙,在1、2、3、4處貼有黑膠帶,車(chē)子從起點(diǎn)出發(fā)到達(dá)終點(diǎn)停車(chē)10秒,然后返回到起點(diǎn),停車(chē)。限速區(qū)要求速度控制在0.25m/s以下,終點(diǎn)停車(chē)要求車(chē)子中心與黑線的距離盡量小。
整個(gè)系統(tǒng)采用光電檢測(cè)不同的信號(hào),并經(jīng)單片機(jī)對(duì)其進(jìn)行處理,控制繼電器的斷開(kāi)和吸合,從而切換555產(chǎn)生的不同的脈寬信號(hào)來(lái)控制電動(dòng)機(jī)的正反轉(zhuǎn)和剎車(chē)。通過(guò)單片機(jī)內(nèi)部計(jì)數(shù)器/定時(shí)器進(jìn)行定時(shí)、記數(shù),再用單片機(jī)串行輸入/輸出口進(jìn)行顯示控制。其工作框圖2如下:
圖1 跑道示意圖
圖2 系統(tǒng)工作框圖
此系統(tǒng)以89C2051為核心,通過(guò)單片機(jī)內(nèi)部計(jì)數(shù)器/定時(shí)器進(jìn)行定時(shí)、記數(shù),再用單片機(jī)串行輸入/輸出口RXD,TXD進(jìn)行顯示控制。P0口作為外部中斷響應(yīng)口。P1口為電動(dòng)機(jī)狀態(tài)控制口[1]。其原理如圖3所示。
圖3 89C2051單片機(jī)原理圖
采用反射式光電檢測(cè)電路對(duì)跑道上的黑線進(jìn)行檢測(cè),并用兩個(gè)遮光管套住發(fā)光管和接收管以一定的角度緊貼跑道,這樣可以消除外界光線的干擾。為了加強(qiáng)可靠性,采用槽型光耦檢測(cè)輪子轉(zhuǎn)動(dòng)行程。用LM358電壓比較器輸出高低電平檢測(cè)信號(hào)。如圖4所示。
圖4 光電檢測(cè)電路
由于電動(dòng)機(jī)工作電流大,需要選用內(nèi)阻小,供電電流強(qiáng),質(zhì)量輕,可反復(fù)使用的經(jīng)濟(jì)型電池,我們選用鎳鉻電池組。為使單片機(jī)工作穩(wěn)定,避免電動(dòng)機(jī)開(kāi)機(jī)關(guān)機(jī)和其轉(zhuǎn)動(dòng)時(shí)對(duì)其電源電壓的影響,在此用2個(gè)電池組和穩(wěn)壓塊分別為89C2051和電動(dòng)機(jī)驅(qū)動(dòng)顯示部分供電[2]。并緊靠每個(gè)芯片的電源端加1uF的電容。這樣可以有效地消除各模塊之間的工作干擾。
因?yàn)樾≤?chē)需要有加速和限速兩種不同的工作狀態(tài),采用調(diào)壓電路工作不穩(wěn)定,并且對(duì)調(diào)壓塊的要求較高,通過(guò)實(shí)驗(yàn)證明,調(diào)壓塊容易燒壞。而采用調(diào)脈寬的方式控制電動(dòng)機(jī)的轉(zhuǎn)速,后級(jí)采用三極管D882推動(dòng)工作很穩(wěn)定,并且用555產(chǎn)生的調(diào)脈寬電路,其占空比可在0% ~99%之間任意調(diào)整,精度高[3]。特別是在低速段調(diào)整,不易停車(chē)。如圖5所示。
圖5 PWM電路
利用繼電器的動(dòng)作切換電動(dòng)機(jī)兩端的電壓占空比,在非限速區(qū)脈寬調(diào)到最大,小車(chē)全速向前,到限速區(qū)時(shí)調(diào)整脈寬使小車(chē)的速度控制在2÷8=0.25m/s以下。為了定位準(zhǔn)確,小車(chē)的剎車(chē)控制很重要。由于小車(chē)上帶的負(fù)載較多,小車(chē)的慣性較大,讓小車(chē)自由停車(chē)會(huì)和終點(diǎn)位置相差太大。因此采用了電剎車(chē),即利用直流電機(jī)的再生發(fā)電制動(dòng)理論,即將電動(dòng)機(jī)的轉(zhuǎn)子兩端短路,完成制動(dòng)。經(jīng)過(guò)試驗(yàn),電剎車(chē)效果好,容易制作,控制簡(jiǎn)單,技術(shù)成熟。其電路如圖6所示。
顯示電路要求顯示小車(chē)的行駛路程和行駛這一路程的時(shí)間。為了提高CPU的利用率,節(jié)省CPU資源,采用靜態(tài)顯示[4],串行靜態(tài)顯示的優(yōu)點(diǎn)是:顯示穩(wěn)定,僅僅在需要更新顯示內(nèi)容時(shí)CPU才執(zhí)行一次顯示更新程序,這樣大大地節(jié)省了CPU的時(shí)間,提高了CPU的工作效率。其電路如圖7所示。
圖6 小車(chē)的狀態(tài)控制電路
圖7 顯示電路
自動(dòng)小車(chē)為玩具遙控小車(chē)的改裝品,在改裝的過(guò)程中最重要的是考慮設(shè)計(jì)兩個(gè)光電檢測(cè)管的位置,檢測(cè)黑線的光電管放在車(chē)體的中央,用遮光管將其以一定反射角度用彈簧壓到跑道上,貼地口打磨光滑防止刮紙。路程檢測(cè)用槽型光耦,放在小車(chē)的從動(dòng)輪上。輪子的周長(zhǎng)為20厘米,在輪子上用了兩個(gè)通光孔,即其行程精度為10厘米。并且為了小車(chē)碰到墻壁不至于停車(chē),在小車(chē)的四角上都加上了導(dǎo)向輪,導(dǎo)向輪用隨身聽(tīng)上的壓帶輪制作即可。其他電路板用銅支架層疊式固定。
設(shè)計(jì)程序中,上電使用時(shí)必須對(duì)所有控制寄存器初始化,在跑到終點(diǎn)停10秒時(shí),為防止外部干擾,我們采用關(guān)中斷的方式。跑完全程后讓CPU進(jìn)入死循環(huán),小車(chē)停止不再啟動(dòng)。其軟件流程如圖8所示。
圖8 系統(tǒng)程序設(shè)計(jì)流程圖
本文介紹了基于單片機(jī)89C2051的往返小車(chē)的硬件和軟件設(shè)計(jì),由于采用模塊化設(shè)計(jì),本系統(tǒng)具有良好的可升級(jí)性和擴(kuò)展性,采用單片機(jī)進(jìn)行控制處理,它具有編程靈活、自由、穩(wěn)定性能好、擴(kuò)展容易等優(yōu)點(diǎn)。本控制系統(tǒng)經(jīng)過(guò)調(diào)試,實(shí)現(xiàn)了小車(chē)的調(diào)速、前進(jìn)、后退、顯示速度和路程等功能,但由于時(shí)間和水平的限制,本系統(tǒng)的設(shè)計(jì)還有許多需要改進(jìn)的地方。
[1]李朝青.單片機(jī)&DSP外圍數(shù)字IC技術(shù)手冊(cè)[M].北京:北京航空航天大學(xué)出版社,2003.
[2]張友德,趙志英,涂時(shí)亮.單片微型機(jī)[M].上海:復(fù)旦大學(xué)出版社,2000.
[3]王建飛.基于單片機(jī)控制的自動(dòng)往返小汽車(chē)的新設(shè)計(jì)[J].現(xiàn)代與電子技術(shù),2006,234(19):127-129.
[4]劉全盛.數(shù)字電子技術(shù)(第一版)[M].北京:機(jī)械工業(yè)出版社,2000.