江蘇常州輕工職業(yè)技術(shù)學(xué)院 韓迎輝
電動(dòng)按摩床的單片機(jī)控制系統(tǒng)
江蘇常州輕工職業(yè)技術(shù)學(xué)院 韓迎輝
本文主要介紹電動(dòng)按摩床控制系統(tǒng)的設(shè)計(jì),包括系統(tǒng)硬件和軟件的設(shè)計(jì),具體給出了硬件電路組成、軟件功能劃分,以及系統(tǒng)軟硬件控制功能的實(shí)現(xiàn)方法。本電動(dòng)按摩床控制系統(tǒng)實(shí)現(xiàn)了多級(jí)振動(dòng)控制、定位信息自動(dòng)存儲(chǔ)等功能,并具有控制功能靈活、使用方便、性價(jià)比高的特點(diǎn)。
電動(dòng)按摩床 單片機(jī)
本文介紹的電動(dòng)按摩床控制系統(tǒng),是用單片機(jī)作主控制器,按摩床控制模式包括床體的升降控制、振動(dòng)控制和床體的位置記憶。以上控制方式通過(guò)手控器上的3個(gè)模式選擇鍵進(jìn)行選擇:MEM(存儲(chǔ)模式),MES(振動(dòng)模式),ADJ(升降模式)。手控器與單片機(jī)之間的連接方式分有線連接和無(wú)線連接兩種。
升降控制分背部升降和足部升降,分別由兩個(gè)推桿電機(jī)進(jìn)行控制;振動(dòng)控制也分背部振動(dòng)和足部振動(dòng)兩種情況,由兩個(gè)振動(dòng)電機(jī)進(jìn)行控制。升降及振動(dòng)位置由手控器上的back(背部)、foot(足部)鍵進(jìn)行選擇,振動(dòng)按摩的力度可分十個(gè)檔位進(jìn)行調(diào)節(jié),手控器上的Up/ Down按鍵可增加/減少一個(gè)檔位。
在存儲(chǔ)模式下,分別按動(dòng)手控器上的S1、S2、S3鍵,可將當(dāng)前床體位置作為記憶值(位置1、位置2、位置3)存儲(chǔ)到EEPROM存儲(chǔ)器中。而在升降模式下,按S1、S2、S3鍵,可將床體位置調(diào)整到被記憶過(guò)的3個(gè)位置上。
控制系統(tǒng)的硬件主要由主控制器、脈沖定位控制部分、分級(jí)電壓輸出電路、無(wú)線接收部分、手控器接口和EEPROM存儲(chǔ)器接口等組成。系統(tǒng)組成框圖如圖1所示。
圖1 系統(tǒng)組成框圖
主控制器使用AT89S52單片機(jī)。AT89S52 是一種低功耗、高性能CMOS8位微控制器,與MCS-51單片機(jī)產(chǎn)品兼容,具有8K在系統(tǒng)可編程Flash 存儲(chǔ)器,使用Atmel公司高密度非易失性存儲(chǔ)器技術(shù)制造,片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,也可使用常規(guī)編程器編程。
電動(dòng)按摩床的升降運(yùn)動(dòng)分足部升降和背部升降,分別由推桿電機(jī)A和推桿電機(jī)B控制。推桿電機(jī)可正反轉(zhuǎn)運(yùn)行,經(jīng)絲桿、變速箱帶動(dòng)推桿伸縮,從而控制足部的升降和背部的升降。電動(dòng)床推桿電機(jī)及傳動(dòng)機(jī)構(gòu)如圖2所示。
電動(dòng)按摩床升降位置的定位控制,是通過(guò)單片機(jī)對(duì)連接在電機(jī)尾部的脈沖發(fā)生器(PG)進(jìn)行計(jì)數(shù)實(shí)現(xiàn)。
脈沖發(fā)生器是在推桿電機(jī)軸上安裝一個(gè)圓盤(pán),圓盤(pán)的圓周上均勻分布n個(gè)凸塊,在圓盤(pán)附近固定一個(gè)光電傳感器(槽形光耦),當(dāng)圓盤(pán)旋轉(zhuǎn)一周,光電傳感器輸出n個(gè)脈沖,此脈沖加到單片機(jī)引腳上,單片機(jī)通過(guò)計(jì)數(shù)得到脈沖個(gè)數(shù)(正轉(zhuǎn)時(shí)增計(jì)數(shù),反轉(zhuǎn)時(shí)減計(jì)數(shù)),可知推桿電機(jī)轉(zhuǎn)動(dòng)的圈數(shù),最終可計(jì)算出推桿伸縮的位移,從而實(shí)現(xiàn)升降位置的精確定位。
其中,足部脈沖加到單片機(jī)INT0引腳,背部脈沖加到單片機(jī)INT1引腳。
圖2 電動(dòng)床推桿電機(jī)及傳動(dòng)機(jī)構(gòu)
電動(dòng)按摩床振動(dòng)力度的調(diào)節(jié),通過(guò)分級(jí)控制振動(dòng)電機(jī)的電壓實(shí)現(xiàn),振動(dòng)強(qiáng)度分10檔,每按手控器上的Up/ Down按鍵一次可增加或減少一個(gè)檔位。調(diào)節(jié)電路結(jié)構(gòu)如圖3所示。
圖3 電壓調(diào)節(jié)電路框圖
單片機(jī)輸出4位碼經(jīng)4028(BCD—十進(jìn)制譯碼器芯片)的Q0~Q9輸出,控制十路光耦的輸入端,使其中的一路導(dǎo)通,該光耦輸出回路中的電阻(R0~R9中的一個(gè),其阻值各不相同)被并入RB電阻兩端,控制LM317T輸出至振動(dòng)電機(jī)線圈的電壓發(fā)生變化,以控制振動(dòng)電機(jī)的振動(dòng)強(qiáng)度。利用Up/ Down按鍵改變單片機(jī)4位輸出碼,并入電阻在R0~R9之間切換,進(jìn)而使LM317T輸出電壓值可調(diào),使振動(dòng)強(qiáng)度發(fā)生變化。
4028的輸入、輸出狀態(tài)如表1所示。
表1 4028的輸入、輸出狀態(tài)
手控器工作在無(wú)線控制模式下,通過(guò)無(wú)線發(fā)送方式傳遞控制信息,單片機(jī)通過(guò)無(wú)線接收電路接收控制信號(hào)。單片機(jī)的無(wú)線接收電路采用超外差方式,通過(guò)單片機(jī)T0中斷接收,此種方式可繞過(guò)一定障礙物,接收范圍較寬,但對(duì)時(shí)序有較高的要求,受現(xiàn)場(chǎng)干擾較大,需要在單片機(jī)的軟件中進(jìn)行抗干擾處理。
當(dāng)手控器接上連接線,可作有線控制器,此時(shí),利用單片機(jī)的串行口作手控器接口,其中RXD引腳作輸入,TXD引腳作輸出。使用時(shí),手控器與主控器間要進(jìn)行對(duì)碼。
EEPROM存儲(chǔ)器,用于存儲(chǔ)位置定位信息,其中包括2個(gè)推桿電機(jī)的位置信息。每次系統(tǒng)上電后,單片機(jī)通過(guò)讀EEPROM存儲(chǔ)器獲取所存的定位信息;單片機(jī)也可將新的位置信息寫(xiě)入EEPROM存儲(chǔ)器。定位信息最多可同時(shí)存儲(chǔ)3個(gè)記憶位置和1個(gè)當(dāng)前位置數(shù)據(jù)。
EEPROM存儲(chǔ)器采用AT24LC04芯片,該芯片為I2C器件,具有512×8位的存儲(chǔ)容量,引腳排列如下圖所示,其中A0、A1和A2是地址選擇輸入端,SCL串行時(shí)鐘線,SDA串行數(shù)據(jù)線。
AT89S52單片機(jī)不帶I2C總線,因此必須根據(jù)I2C總線的時(shí)序用單片機(jī)的I/O口模擬I2C總線時(shí)序?qū)崿F(xiàn)其功能。
本系統(tǒng)中用單片機(jī)的P0.1與芯片的SCL相連,單片機(jī)的P0.2和SDA相連;單片機(jī)通過(guò)P0.1的高低電平得到控制I2C的虛擬時(shí)鐘,P0.2作數(shù)據(jù)傳輸?shù)碾p向端口,為單片機(jī)和AT24LC04之間提供數(shù)據(jù)線,電路連接如圖4所示。
圖4 AT89S52單片機(jī)與AT24LC04的接口
本系統(tǒng)共使用了五個(gè)中斷源。它們分別作以下用途:
T0:無(wú)線接收中斷
T1:定時(shí)中斷
INT0:背部升降控制處理
INT1:足部升降控制處理
串行口:有線接收中斷
控制系統(tǒng)的軟件由主程序、各中斷源的中斷服務(wù)程序、以及子程序組成。
主程序主要完成系統(tǒng)初始化、讀EEPROM、通信口檢測(cè)、掃描鍵盤(pán)、鍵處理、寫(xiě)EEPROM等功能。流程如圖5所示。其中讀寫(xiě)EEPROM和鍵處理操作通過(guò)子程序?qū)崿F(xiàn)。
系統(tǒng)初始化主要完成中斷源初始化、通信口初始化、輸出狀態(tài)初始化等工作。
單片機(jī)對(duì)EEPROM存儲(chǔ)器中所存的定位信息進(jìn)行讀取和重新寫(xiě)入。
讀串行口狀態(tài),判斷手控器的操作方式(無(wú)線或有線),并根據(jù)不同的操作方式,對(duì)電動(dòng)床進(jìn)行控制。
圖5 主程序流程
判斷有無(wú)鍵按下,有鍵按下進(jìn)而判斷按鍵位置并進(jìn)行鍵功能的處理。
需處理的按鍵包括3個(gè)模式選擇鍵:MEM、MES、ADJ;2個(gè)位置選擇鍵back、foot;2個(gè)振動(dòng)按摩力度調(diào)節(jié)鍵UP、DOWN;3個(gè)存儲(chǔ)選擇鍵S1、S2、S3鍵。
由于AT89S52單片機(jī)內(nèi)部資源被充分使用,因此本系統(tǒng)具有很高的性價(jià)比。作者參與了電動(dòng)按摩床控制系統(tǒng)的設(shè)計(jì)與調(diào)試工作,針對(duì)如何解決抗干擾這一問(wèn)題,除了軟件抗干擾之外,在硬件上也采取了相應(yīng)的措施,首先在電源回路中采用環(huán)形變壓器加扼流圈,在電機(jī)兩端加阻容濾波器,對(duì)脈沖發(fā)生器電路增加硬件消抖處理,以提高計(jì)數(shù)精度。本電動(dòng)按摩床控制系統(tǒng)經(jīng)過(guò)實(shí)際運(yùn)行證明,系統(tǒng)控制功能可靠,使用方便,完全能符合用戶的要求。
[1]一種智能無(wú)線數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).西北師范大學(xué)學(xué)報(bào),2008年第2 期.佘乾順,馬勝前等
[2]用數(shù)字集成電路實(shí)現(xiàn)時(shí)序邏輯電路的功能.電子工程師.1999年第5期.涂金龍