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

          關 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設計應用 > TB6612FNG在直流電機控制設計中的應用

          TB6612FNG在直流電機控制設計中的應用

          作者: 時間:2010-08-26 來源:網(wǎng)絡 收藏

          2.2 的軟件實現(xiàn)
          脈寬調(diào)制方式產(chǎn)生占空比變化的PWM信號,通過對驅(qū)動器輸出狀態(tài)的快速切換,實現(xiàn)的速度。PWM占空比的大小決定輸出電壓平均值,進而決定的轉(zhuǎn)速。文中采用單極性、定頻調(diào)寬的PWM調(diào)制方式,保證電機調(diào)速的穩(wěn)定性。的邏輯真值表如表1所示。該器件工作時STBY引腳置為高電平;IN1和IN2不變,調(diào)整PWM引腳的輸入信號可進行電機單向速度控制;置PWM引腳為高電平,并調(diào)整IN1和IN2的輸入信號可進行電機雙向速度控制。表中A、B兩通道的控制邏輯相同。

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


          單片機定時器PWM輸出設置如圖3所示。首先需設置T/C中斷屏蔽寄存器TIMSKx使能定時器溢出中斷。其次分別設置T/C控制寄存器TCC-RxA和TCCRxB選擇PWM模式和預分頻比,最后將控制信號引腳I/0置為輸出。程序運行時,每當定時器計數(shù)產(chǎn)生溢出,CPU響應中斷,定時器回零后重新開始計數(shù)。


          以下列出的示例代碼設置為快速PWM反向輸出模式,當系統(tǒng)時鐘記為fclk時,PWM輸出頻率fPWM=fclk/64/256。
          TIMSKx |=1TOIEx;
          TCCRxA=OxF3;
          TCCRxB=Ox03;
          DDRx |=(1Pxx);
          為獲得更高的PWM波形精度,可以采用相位修正的PWM輸出模式,不過在精度提高的同時,fPWM也將減半,以下代碼得到fPWM=fclk/64/512。
          TCCRxA=0xF1:
          TCCRxB=0x03;
          PWM占空比大小的改變通過對輸出比較寄存器OCRxx的數(shù)值操作來實現(xiàn),例如當OCRxx=203時,占空比為204/256=80%。編程時將速度變量值寫入OCRxx寄存器,從而達到改變占空比和對電機調(diào)速的目的。
          文中通過電位器調(diào)速試驗來檢測的PWM控制與電機輸出轉(zhuǎn)速間的線性關系。單片機ADC對精密多圈電位器的電壓值進行采樣,用于控制電機轉(zhuǎn)速。程序流程如圖4所示。首先進行電機控制信號的初始化,接著通過設置ADC控制狀態(tài)寄存器ADCSRA和ADC多路復用選擇寄存器ADMUX選擇ADC頻率和通道,然后選取合適的樣本數(shù)量,對ADC循環(huán)采樣并計算樣本均值作為當前速度值,代入速度函數(shù)。

          pwm相關文章:pwm是什么


          脈寬調(diào)制相關文章:脈寬調(diào)制原理


          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();