《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于Atmega16單片機(jī)的重物提升控制系統(tǒng)設(shè)計(jì)
基于Atmega16單片機(jī)的重物提升控制系統(tǒng)設(shè)計(jì)
來(lái)源:微型機(jī)與應(yīng)用2011年第6期
張明長(zhǎng), 劉福平
(北京印刷學(xué)院 基礎(chǔ)部, 北京 102600)
摘要: 為了實(shí)現(xiàn)對(duì)重物提升的精確控制,設(shè)計(jì)中選擇了以Atmegal6單片機(jī)為核心的控制系統(tǒng)。根據(jù)控制要求,提出了實(shí)施以單片機(jī)主、從結(jié)構(gòu)的控制方式。重點(diǎn)介紹了用光電編碼器作為傳感器、對(duì)傳感器輸出的脈沖信號(hào)進(jìn)行整形、鑒相后送入單片機(jī)計(jì)數(shù)的硬件電路和單片機(jī)對(duì)計(jì)數(shù)脈沖、設(shè)定位移量進(jìn)行計(jì)算處理的軟件程序,根據(jù)計(jì)算結(jié)果完成相應(yīng)的智能化控制。
Abstract:
Key words :

摘   要: 為了實(shí)現(xiàn)對(duì)重物提升的精確控制,設(shè)計(jì)中選擇了以Atmegal6單片機(jī)為核心的控制系統(tǒng)。根據(jù)控制要求,提出了實(shí)施以單片機(jī)主、從結(jié)構(gòu)的控制方式。重點(diǎn)介紹了用光電編碼器作為傳感器、對(duì)傳感器輸出的脈沖信號(hào)進(jìn)行整形、鑒相后送入單片機(jī)計(jì)數(shù)的硬件電路和單片機(jī)對(duì)計(jì)數(shù)脈沖、設(shè)定位移量進(jìn)行計(jì)算處理的軟件程序,根據(jù)計(jì)算結(jié)果完成相應(yīng)的智能化控制。
關(guān)鍵詞: Atmegal6單片機(jī); 重物提升; 光電編碼器; 硬件電路; 軟件程序

    隨著微電子技術(shù)的發(fā)展,電氣控制方式變得更加靈活多樣,控制精度越來(lái)越高。智能化控制中越來(lái)越多地采用了以單片機(jī)為核心的控制單元實(shí)現(xiàn)設(shè)備的智能化控制。介紹以Atmega16單片機(jī)為控制核心,實(shí)現(xiàn)重物提升位移量的精確控制。
1 重物提升控制系統(tǒng)原理
    重物提升控制系統(tǒng)的設(shè)計(jì)目的是使用智能化的控制技術(shù),將重物提升到預(yù)定高度。如圖1所示是系統(tǒng)控制結(jié)構(gòu)圖,從控制結(jié)構(gòu)圖可以看出,控制系統(tǒng)研究對(duì)象是重物的提升和降落。主要的控制對(duì)象是卷?yè)P(yáng)機(jī),通過(guò)卷?yè)P(yáng)機(jī)的正、反轉(zhuǎn)運(yùn)動(dòng)實(shí)現(xiàn)控制目標(biāo)。

    圖中傳感器選用光電編碼器,光電編碼器的轉(zhuǎn)軸上安裝一個(gè)輪,將其固定在導(dǎo)向輪上,這樣光電編碼器和導(dǎo)向輪同軸旋轉(zhuǎn),實(shí)現(xiàn)光電編碼器轉(zhuǎn)過(guò)的角度與導(dǎo)向輪轉(zhuǎn)過(guò)的角度相等,重物提升的距離就是導(dǎo)向輪周長(zhǎng)和轉(zhuǎn)過(guò)總角度的乘積。設(shè)導(dǎo)向輪的直徑為d,與其同軸連接的光電編碼器每圈輸出脈沖數(shù)設(shè)為k,那么脈沖當(dāng)量為:

2 單片機(jī)主從結(jié)構(gòu)的控制方式
    工程設(shè)計(jì)研究對(duì)象是控制卷?yè)P(yáng)機(jī)的轉(zhuǎn)動(dòng),提升重物到預(yù)定高度,需要在運(yùn)行前計(jì)算出運(yùn)行的總脈沖數(shù);設(shè)計(jì)要求顯示屏能實(shí)時(shí)顯示重物的高度,需要在運(yùn)行中對(duì)采集的數(shù)據(jù)實(shí)時(shí)處理,計(jì)算出移動(dòng)的距離;還要求對(duì)重物高度和導(dǎo)向輪周長(zhǎng)進(jìn)行設(shè)定,設(shè)定參數(shù)要能夠存儲(chǔ)和讀出,這就需要帶有存儲(chǔ)功能的智能化器件。Atmega16單片機(jī)能夠完成數(shù)據(jù)處理,內(nèi)含EEPROM存儲(chǔ)區(qū),在掉電的情況下也能夠保存數(shù)據(jù),內(nèi)含2個(gè)外輸入計(jì)數(shù)器,能夠?qū)崿F(xiàn)計(jì)數(shù)任務(wù),可以簡(jiǎn)化硬件電路。綜合考慮,本設(shè)計(jì)選擇Atmega16單片機(jī)作為核心器件實(shí)現(xiàn)任務(wù)要求。為了簡(jiǎn)化結(jié)構(gòu),突出模塊設(shè)計(jì),采用雙芯片結(jié)構(gòu),以主、從機(jī)模式的設(shè)計(jì)方法實(shí)現(xiàn)控制要求。主機(jī)單元負(fù)責(zé)傳感器信號(hào)的處理、人機(jī)界面參數(shù)設(shè)定、實(shí)時(shí)數(shù)據(jù)處理等工作。從機(jī)單元負(fù)責(zé)接收主機(jī)所發(fā)信號(hào),響應(yīng)主機(jī)決定是否輸出實(shí)時(shí)的控制指令。
3 光電編碼器測(cè)量位移
    光電編碼器是一種通過(guò)光電轉(zhuǎn)換將輸出軸上的機(jī)械幾何位移量轉(zhuǎn)換成脈沖或數(shù)字量的傳感器,這是目前高精度控制系統(tǒng)最常用的位移量測(cè)量傳感器。光電編碼器由光柵盤(pán)和光電檢測(cè)裝置組成,光柵盤(pán)是在一定直徑的圓板上等分地開(kāi)通若干個(gè)長(zhǎng)方形孔。原理示意如圖2所示。通過(guò)計(jì)算光電編碼器輸出脈沖的個(gè)數(shù)就能知道當(dāng)前拖動(dòng)的位移量,還可以通過(guò)計(jì)算每秒光電編碼器輸出脈沖的個(gè)數(shù)實(shí)現(xiàn)速度測(cè)量。
    用光電編碼器測(cè)量位移時(shí),不僅要知道位移的大小,還要知道位移的正負(fù)方向,判別方向是成功測(cè)量關(guān)鍵。現(xiàn)在市場(chǎng)上見(jiàn)到的光電編碼器是4線接口或5線接口。4線接口的光電編碼器能輸出A、B兩路脈沖,5線接口的能輸出A、B、Z三路脈沖。光電編碼器輸出的A、B兩路脈沖在相位上差90°,正轉(zhuǎn)時(shí)A路超前B路90°,反轉(zhuǎn)時(shí)B路超前A路90°。測(cè)量中依據(jù)A、B之間的相位差,就能夠判別位移的方向符號(hào),通過(guò)帶符號(hào)的加運(yùn)算,可以知道輸出脈沖個(gè)數(shù),計(jì)算出位移量。
4 傳感器信號(hào)的提取電路設(shè)計(jì)
    如圖3所示是傳感器信號(hào)提取電路。光電編碼器輸出的信號(hào)通過(guò)74LS244進(jìn)行整形后,輸出理想的A、B相波形,U3(74LS74)是D觸發(fā)器,把傳感器輸出整形方波信號(hào)的A相輸入D1,B相作為D觸發(fā)器的時(shí)鐘信號(hào)CK,U3與U9(7400)共同組成鑒相電路,判斷光電編碼盤(pán)是正轉(zhuǎn)還是反轉(zhuǎn)。

    當(dāng)光電編碼器正向旋轉(zhuǎn)時(shí),通道A輸出波形超前通道B輸出波形90°,D觸發(fā)器輸出Q為高電平,Q為低電平,上面U9A與非門(mén)關(guān)閉保持高電平,計(jì)數(shù)脈沖不能通過(guò)U11;此時(shí),下面U9B與非門(mén)打開(kāi),其輸出計(jì)數(shù)脈沖D能夠順利通過(guò)U12進(jìn)行傳輸,如圖4(a)所示。
    當(dāng)光電編碼器逆時(shí)針旋轉(zhuǎn)時(shí),通道A輸出波形比通道B輸出波形滯后90°,D觸發(fā)器Q輸出為低電平,Q為高電平,上面U9A與非門(mén)打開(kāi),其輸出計(jì)數(shù)脈沖C能夠通過(guò)U11進(jìn)行傳輸;此時(shí),下面U9B與非門(mén)關(guān)閉保持高電平,計(jì)數(shù)脈沖不能通過(guò),如圖4(b)所示。

5 重物提升位移量的計(jì)算
    Atmega16微處理器內(nèi)包含3個(gè)獨(dú)立的定時(shí)器/計(jì)數(shù)器模塊,其中T/C0、T/C2是8位定時(shí)器/計(jì)數(shù)器模塊,T/C1是16位的定時(shí)器/計(jì)數(shù)器模塊。硬件設(shè)計(jì)中選擇T0、T1作為正反轉(zhuǎn)計(jì)數(shù)器,記錄光電編碼器輸出的正、負(fù)脈沖數(shù)。在軟件設(shè)計(jì)中一定要將T0、T1計(jì)數(shù)器進(jìn)行擴(kuò)展,使其有足夠的計(jì)數(shù)空間,擴(kuò)展位移測(cè)量范圍。筆者在設(shè)計(jì)軟件時(shí),將T0、T1進(jìn)行擴(kuò)展,使它們都是長(zhǎng)整數(shù)(32位)形式,利用的就是計(jì)數(shù)器滿產(chǎn)生溢出中斷的形式擴(kuò)展的。這樣T0計(jì)數(shù)256個(gè)脈沖產(chǎn)生中斷一次, T1計(jì)數(shù)65 536個(gè)脈沖產(chǎn)生中斷一次。
    T0、T1控制寄存器設(shè)置及產(chǎn)生溢出中斷程序?yàn)椋?br />     …
    TCCR0=0x06; //計(jì)數(shù)脈沖由T0引腳輸入,下降沿有效。
    TCCR1B=0x06; //計(jì)數(shù)脈沖由T1引腳輸入,下降沿驅(qū)動(dòng)
        有效。
    … 
  #pragma interrupt_handler timer1_ovf_isr:9//正計(jì)數(shù) 16bits
    void timer1_ovf_isr(void){
       cnt1++;                              //32位計(jì)數(shù)
  }
  #pragma interrupt_handler timer0_ovf_isr:10 //負(fù)計(jì)數(shù)8bits
  void timer0_ovf_isr(void){
       long c;
       cnt0++;                              //32位計(jì)數(shù)
       c=(cnt0>>8);                       //防止cnt0,cnt1溢出
       if(c && (cnt1>=c))
       {cnt1-=c;                                    //計(jì)算計(jì)數(shù)差值
          cnt0=cnt0&0xff;                          //只保留低8位
    }  }
    設(shè)計(jì)中,選擇型號(hào)為S38-J3V100光電編碼器,輸出編碼是500碼/轉(zhuǎn),則脈沖當(dāng)量是πd/500,當(dāng)前的位移量就是總脈沖數(shù)與脈沖當(dāng)量的乘積。軟件計(jì)算程序如下:
     …
  posicnt=(cnt1<<16)|TCNT1;                        //正脈沖數(shù)
  negcnt=(cnt0<<8)|TCNT0;                          //負(fù)脈沖數(shù)
  totalcnt =posicnt-negcnt;     //產(chǎn)生位移量大的總脈沖數(shù)
  curPosi=(totalcnt*(meterCyl*1000+ CentCyl));
  curPosi/=PLS_PER_ROUND;                  //當(dāng)前的位移量
    …
     執(zhí)行運(yùn)行命令,微處理器就要對(duì)設(shè)定的位移量進(jìn)行計(jì)算,把位移量大小轉(zhuǎn)換成脈沖數(shù)的多少。在運(yùn)行中進(jìn)行脈沖數(shù)的比較,如果相等,則停止運(yùn)行,表示已經(jīng)達(dá)到目標(biāo)位置。軟件計(jì)算程序如下:
    sysStatus = SYS_RUN;
PosiSet=meterPosi*1000+CentPosi;    //毫米計(jì)算
cntSet=(PosiSet*PLS_PER_ROUND)/(CentCyl+
    meter Cyl*1000);
    if(cntSet>totalcnt) Command=CMD_FWD;
                                         //執(zhí)行正轉(zhuǎn)命令
else if(cntSet<totalcnt) Command=CMD_REV;
                               //執(zhí)行反轉(zhuǎn)命令
else sysStatus=SYS_IDLE;              //停止?fàn)顟B(tài)
    本方案設(shè)計(jì)的重物提升控制系統(tǒng)在實(shí)際運(yùn)行過(guò)程中獲得了良好的動(dòng)態(tài)性能,控制精確,智能化程度高。利用光電編碼器作為位移傳感器,能獲取高精度控制信號(hào)。高性價(jià)比的Atmega16單片機(jī)使成本大大降低,提高了軟件設(shè)計(jì)的靈活性,簡(jiǎn)化了硬件電路設(shè)計(jì),具有很好的實(shí)用價(jià)值。
參考文獻(xiàn)
[1] 李勁松.實(shí)軸增量式光電編碼器測(cè)量電路的設(shè)計(jì)[J].實(shí)驗(yàn)室研究與探索 2007.26(2): 12~14.
[2] Atmel Corporation.ATMEG16 用戶手冊(cè)[Z].Atmel Corporation,2002.
[3] Atmega16/Atmega16L Datasheet: 8 b Microcont roller with 128K bytes in 2 System Programmable Flash[Z].
[4] 閻石.數(shù)字電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社, 1997.
[5] 沈文,詹衛(wèi)前. AVR單片機(jī)C語(yǔ)言開(kāi)發(fā)入門(mén)指導(dǎo)[M]. 北京:清華大學(xué)出版社,2003.
[6] 馬潮,詹衛(wèi)前,耿德根著.ATmega 8原理及應(yīng)用手冊(cè)[M]. 清華大學(xué)出版社,1998.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
主站蜘蛛池模板: 日本不卡视频在线播放 | japanese55老妇成熟乱 | 中文字字幕码一二三区 | 欧美狠狠插 | 久久大香香蕉国产免费网站 | 97视频精品 | 国产精品一区高清在线观看 | 欧美黄色一级视频 | 日韩精品中文字幕一区三区 | 欧美日在线观看 | 免费在线精品视频 | 国产亚洲新品一区二区 | 天天射综合 | 人人精品 | 欧美理论片在线观看一区二区 | 窝窝午夜看片成人精品 | 亚洲国产欧美在线观看 | 在线播放国产一区二区三区 | 男女一级做a爱过程免费视频 | 欧美一区二区在线观看 | 中文字幕成人免费高清在线视频 | 性色生活片免费放 | 成人男女网18免费看 | 亚洲免费视频在线 | 日韩免费一级a毛片在线播放一级 | 日韩三级中文 | 免费一级毛片在线播放 | 黄色一级片免费在线观看 | v天堂网| 成人午夜在线观看国产 | 最新中文字幕在线播放 | 视频成人| 免费黄网在线 | 最近最新免费中文字幕高清 | va亚洲va欧美va国产综合 | 亚洲香蕉伊在人在线观看9 亚洲香蕉一区二区三区在线观看 | 美女视频永久黄网站免费观看国产 | 中国精品久久 | 欧美日本视频在线观看 | 日本人免费xxx在线视频 | 亚洲欧美一区二区三区久本道 |