資源描述:
《步進電機控制器》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、步進電機控制器特點:?可調(diào)整的步進電機控制器?中斷驅(qū)動?簡潔的代碼(中斷子程序僅10字節(jié))?運算量小?支持所有AVR系列單片機介紹:此應(yīng)用筆記介紹了如何實現(xiàn)一個代碼簡潔,中斷驅(qū)動的步進電機控制器。步進電機通常用于相機變焦、卷動膠卷、傳真機、打印機、復(fù)印機、送紙機/分揀機及磁盤驅(qū)動器。高性能的AVR單片機使設(shè)計者可以用較小的MCU運算量實現(xiàn)高速步進電機應(yīng)用。原理:直流步進電機根據(jù)電流脈沖的變化進行旋轉(zhuǎn)動作。通常電機有四個繞組線圈。線圈通常標(biāo)為紅、黃/白、紅/白、黃,但也會有其它顏色。在這些線圈上施加電壓驅(qū)使電機步進工作。在正常運行時,有兩組線圈同時動作
2、,當(dāng)線圈脈沖順序改變一次步進電機順時鐘旋轉(zhuǎn)一步。如果脈沖電壓反向,電機會逆時鐘運轉(zhuǎn)。旋轉(zhuǎn)速度由脈沖頻率控制。每當(dāng)脈沖施加到電機時它會旋轉(zhuǎn)一個固定的角度,通常每步旋轉(zhuǎn)1.8度。以1.8度/步完成360度旋轉(zhuǎn)需要200步。通過改變中斷吋間,電機的速度可以調(diào)節(jié),并且通過計算步數(shù),可以控制電機的角度。圖1步進電機時序:黃,STEP0,STEP1,STEP2,STEP3表I表示的是輸出到步進電機執(zhí)行每步動作的16進制值。步黃紅/白黃/白紅HEX值01001911100C201106300113軟件描述:軟件使用16位定時器(帶俘獲功能)產(chǎn)生間隔為100微秒的中
3、斷。當(dāng)中斷程序執(zhí)行時,新的步進值輸出到PORTBo電機步進值存于FLASH存儲區(qū),初始化時,此值復(fù)制到SRAM以得到最快的讀収速度和最高的控制性能。執(zhí)行中,中斷程序每7+4個時鐘循環(huán)運行一次,退出需要4個時鐘循環(huán),總的需要15個循環(huán)。步進電機控制少于2微秒。如果中斷間隔為100微秒,則步進電機的處理僅占用CPU2%的處理性能。此例中步進電機的控制值存于RAM的0100(十六進制)地址。RAM地址的高8位是常量并且僅有低8位用于訪問地址信息。見圖2:變量的低位(4位)是用于控制電機的實際值,髙4位保存的是下一個控制值的地址。圖2:步進電機的地址和值:地
4、址(HEX)0100010101020103值(HEX)192C3603上述方法可以用最少的處理器資源達到最快的工作速度。表2。CPU和內(nèi)存使用函數(shù)代碼大小時鐘循環(huán)寄存器使用中斷描述main38words/R16,XL,XH,ZL,ZH/初始化并演示稈序OC1A10words13+返回R16,XL,XHTimer1OutputCompareA輸出步達電機控制值并計算下一值TOTAL48words/R16,XL,XH,ZL,ZH//表3:芯片引腳使用引腳描述使能的中斷4個I/O口步達電機輸出腳/Timer1定時中斷,用于產(chǎn)生步進脈沖Timer1Outp
5、utCompareA*************************************************************************AVR系列應(yīng)用筆記*文件名*標(biāo)題*FI期*版本*目標(biāo)單片機:ustepmot.asm:簡單的高速步進電機控制器:9&07.02:1.00:AVR全系列;*?上?上?上?上?上?上?上?上?上?上?上?!*<1^?!*<1^<1^<1^<1^?j?*J?"T^*J?"T^*J?"T^*J?"T?"T,"T?^r>"T?"T、includeH..8515def.incir*********
6、******([卜********************************************deftemp=R16*!?*!?*!?*!?*!?*!??土*!??土*!?〃f/W?」?土*A??土*A??土*A*?」■*A*?」■*A**A*?丄■?丄■?士?士?士?士?士?士■[“?士?士?[“?士^7^^7^^T>^7^^T>^7^XZ
7、v1^T>^T>^T>^T>叫.叫.叫.叫.叫.叫.叫.叫.叫.%.叫.%.叫.%.%.%.%.叫.叫.叫.人匸y>中寶8、5Mhz=100usrj>r^rj^r^rj>r^rj>r^rj^r^rjwr^rjwrjwr^rjwrjwr^rjwrjwrjwrjwrjwrjwrjwrj*rjwrjwr^rj*rj^rj^rj*rj^rj^rj^rj?rjwrj?rj^rjwrjwrj^rjwrj^rjwrj^rjw**程序由此開始*%L^?“?L^?L??L^?£??L^"X*^2^?L^?”?9>?9><9^?”?X><9>Q.?”^9>?£????■丫?9、