<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > TB6612FNG簡介及其與單片機(jī)的直流電機(jī)控制系統(tǒng)設(shè)計(jì)

          TB6612FNG簡介及其與單片機(jī)的直流電機(jī)控制系統(tǒng)設(shè)計(jì)

          作者: 時(shí)間:2012-01-23 來源:網(wǎng)絡(luò) 收藏

           以下列出的示例代碼設(shè)置為快速PWM反向輸出模式,當(dāng)系統(tǒng)時(shí)鐘記為fclk時(shí),PWM輸出頻率fPWM=fclk/64/256。

          本文引用地址:http://www.ex-cimer.com/article/172227.htm

            TIMSKx |=1

            TCCRxA=OxF3;

            TCCRxB=Ox03;

            DDRx |=(1

            為獲得更高的PWM波形精度,可以采用相位修正的PWM輸出模式,不過在精度提高的同時(shí),fPWM也將減半,以下代碼得到fPWM=fclk/64/512。

            TCCRxA=0xF1:

            TCCRxB=0x03;

            PWM占空比大小的改變通過對輸出比較寄存器OCRxx的數(shù)值操作來實(shí)現(xiàn),例如當(dāng)OCRxx=203時(shí),占空比為204/256=80%。編程時(shí)將速度變量值寫入OCRxx寄存器,從而達(dá)到改變占空比和對調(diào)速的目的。

            文中通過電位器調(diào)速試驗(yàn)來檢測的PWM控制與輸出轉(zhuǎn)速間的線性關(guān)系。ADC對精密多圈電位器的電壓值進(jìn)行采樣,用于控制轉(zhuǎn)速。程序流程如圖4所示。首先進(jìn)行電機(jī)控制信號的初始化,接著通過設(shè)置ADC控制狀態(tài)寄存器ADCSRA和ADC多路復(fù)用選擇寄存器ADMUX選擇ADC頻率和通道,然后選取合適的樣本數(shù)量,對ADC循環(huán)采樣并計(jì)算樣本均值作為當(dāng)前速度值,代入速度函數(shù)。

            

            試驗(yàn)中,隨著電位器阻值的調(diào)整,輸出端電壓測量值成比例變化,同時(shí)對電機(jī)實(shí)現(xiàn)啟停和加減速控制,達(dá)到了預(yù)期試驗(yàn)效果,表明其輸出和PWM輸入之間具有良好的線性關(guān)系。

            3 在輪式移動機(jī)器人平臺的應(yīng)用

            為研究差速驅(qū)動方式的運(yùn)動學(xué)特性和機(jī)器人路徑規(guī)劃算法,開發(fā)了一個(gè)輪式移動機(jī)器人試驗(yàn)平臺,在其中應(yīng)用TB6612FNG對機(jī)器人的2個(gè)驅(qū)動電機(jī)進(jìn)行控制。平臺以為控制核心,能實(shí)現(xiàn)零半徑轉(zhuǎn)向、軌跡跟蹤、路徑搜索等功能,并通過按鍵開關(guān)、液晶顯示等單元進(jìn)行操作和指示,是一個(gè)較為完整的小型機(jī)電運(yùn)動。

            

            如圖5所示,系統(tǒng)硬件電路主要由電源、控制、傳感、電機(jī)驅(qū)動、操作與指示等單元組成。系統(tǒng)采用電池組供電,通過穩(wěn)壓電路輸出VM和VCC2路電壓。穩(wěn)壓電路主要由開關(guān)型穩(wěn)壓器LM2576和三端穩(wěn)壓器7805構(gòu)成,前者能提供輸出電流最高3 A的VM,對電機(jī)驅(qū)動等單元供電,后者將電源穩(wěn)壓至VCC(+5 V),對外嗣電路供電。

            選用高性能低功耗的ATmega系列單片機(jī)作為控制核心,其運(yùn)算速度高達(dá)1 MIPS/MHz,具有多路PWM和ADC,適用于小型機(jī)器人和電機(jī)的開發(fā)。單片機(jī)通過ADC或I/O連接傳感器,同時(shí)定時(shí)器產(chǎn)生硬件PWM作為電機(jī)驅(qū)動控制信號。傳感單元由光電和測距傳感器等構(gòu)成。移動機(jī)器人系統(tǒng)由按鍵開關(guān)和傳感信號等組成前向通道,由PWM控制、TB6612FNG、電機(jī)及液晶等組成后向通道。

            

            通過傳感器獲取機(jī)器人運(yùn)行位置信息,利用單片機(jī)對其進(jìn)行讀取和計(jì)算,由數(shù)字PID方式得到控制信號并輸出至驅(qū)動器件,實(shí)時(shí)調(diào)整電機(jī)轉(zhuǎn)速。PID控制基本流程如圖6所示,其中比例項(xiàng)P為讀取位置與給定位置的偏差;積分項(xiàng)I為P值的累加;微分項(xiàng)D為相鄰P值之差;Kp、Ki、Kd為PID參數(shù)。C為PID計(jì)算得到的調(diào)節(jié)控制量,B為設(shè)定的驅(qū)動電機(jī)基本轉(zhuǎn)速,speedL和speedR分別為左右驅(qū)動電機(jī)的轉(zhuǎn)速信號。系統(tǒng)啟動后,循環(huán)執(zhí)行流程,當(dāng)運(yùn)行位置發(fā)生偏離時(shí),速度調(diào)節(jié)的計(jì)算結(jié)果由單片機(jī)輸出,經(jīng)AIN1/AIN2和BIN1/BIN2輸入至TB6612FNG,對電機(jī)轉(zhuǎn)速進(jìn)行快速調(diào)整,實(shí)現(xiàn)機(jī)器人位姿的校正和位置偏差的糾正,直到終點(diǎn)標(biāo)志或接收停止指令。

            試驗(yàn)表明,在系統(tǒng)高速運(yùn)行時(shí),TB6612FNG對驅(qū)動電機(jī)的調(diào)速能夠保持較好的連續(xù)性和平穩(wěn)性。PID參數(shù)的設(shè)定對系統(tǒng)運(yùn)行有很大影響,應(yīng)根據(jù)運(yùn)行控制要求,通過反復(fù)試驗(yàn)調(diào)整確定PID參數(shù),選取Kp、Ki、Kd的最優(yōu)組合以取得良好的控制效果。系統(tǒng)取消積分環(huán)節(jié),采用PD控制時(shí),也能夠得到較好的運(yùn)行結(jié)果。

            4 運(yùn)行性能和建議

            1)器件輸出狀態(tài)在驅(qū)動/制動之間切換時(shí),電機(jī)轉(zhuǎn)速和PWM占空比之間能保持較好的線性關(guān)系,其運(yùn)行控制效果好于器件在驅(qū)動/停止?fàn)顟B(tài)之間切換,所以表1中的INl/IN2一般不采用L/L控制組合。

            2)fPWM較高時(shí),電機(jī)運(yùn)行連續(xù)平穩(wěn)、噪音小,但器件功耗會隨頻率升高而增大;fPWM較低時(shí),利于降低功耗,并能提高調(diào)速線性度,但過低的頻率可能導(dǎo)致電機(jī)轉(zhuǎn)動連貫性的降低。通常fPWM>1 kHz時(shí),器件能夠穩(wěn)定的控制電機(jī)。

            3)過大的PWM占空比會影響電機(jī)驅(qū)動電流的穩(wěn)定性和器件的輸出負(fù)載能力,應(yīng)根據(jù)不同的速度要求合理設(shè)定占空比范圍。

            4)器件工作溫度過高會導(dǎo)致其輸出功率的下降,電路PCB中應(yīng)保證足夠面積的覆銅,這樣有助于散熱,利于器件長時(shí)間穩(wěn)定工作。

            5 結(jié)束語

            利用TB6612FNG和單片機(jī)構(gòu)成電機(jī)控制單元,并將其應(yīng)用在差速驅(qū)動的輪式移動機(jī)器人系統(tǒng)中。試驗(yàn)運(yùn)行表明,這款器件與單片機(jī)結(jié)合應(yīng)用能夠?qū)崿F(xiàn)靈活穩(wěn)定的電機(jī)驅(qū)動控制。TB6612FNG在集成性、運(yùn)行性能和輸出能力等方面達(dá)到了較好的平衡,適用于單、雙電機(jī)數(shù)字控制系統(tǒng)的開發(fā)。


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();