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

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 基于MSP430的控制電機(jī)并測速度系統(tǒng)設(shè)計與調(diào)試

          基于MSP430的控制電機(jī)并測速度系統(tǒng)設(shè)計與調(diào)試

          作者: 時間:2017-10-25 來源:網(wǎng)絡(luò) 收藏

            前言

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

            最近在調(diào)一個MSP430單片機(jī)控制電機(jī)并測速度的電路。整個電路從設(shè)計制作到調(diào)試成功,花了將近四天時間,中間Bug多多,不過最后都一并解決了。

            廢話不多說,直接進(jìn)入主題,先說說我這個系統(tǒng)。下面Figure 1是MSP430主控制部分,用的芯片是單片機(jī)(11、12號引腳是反過來滴),第一個是Pro Download接口,顧名思義,就是程序下載口,我用的MSP430G系列的launchPad 開發(fā)板連接到我設(shè)計的板子上的,通過這幾個接口利用launchPad 即可下載程序,為了方便布線,我打亂了這幾個接口的順序。PWM1和PWM2接口是連接到H橋的兩個接口,這里使用了G2553的定時器A1產(chǎn)生PWM。CAP_P12是光電對管連接到比較強(qiáng)后輸入到單片機(jī)的一個捕獲接口,因為這里可以用定時器A0的捕獲接口,使用定時器的捕獲功能,可以使得程序設(shè)計更為簡單。整個系統(tǒng)利用了兩個定時器,并結(jié)合中斷,使得整個系統(tǒng)都處于休眠狀態(tài),功耗可以做得比較低(但由于電機(jī)和12864的存在,這里的低功耗程序設(shè)計顯得毫無意義額。。。)。另外還有一個12864的串行外部接口(SPI)三根線。


            再放一個三線控制13864的圖。由于MSP430x2xx系列是3.3V的器件,這里用到了一個245芯片來轉(zhuǎn)換電平電壓(CS和SCLK的順序反了,后來布線的時候改的)。初學(xué)者往往會遇到一個問題,就是為什么我的12864的滑動變阻器調(diào)了,12864的亮度都不變呢,我在這里只提一點:注意你的復(fù)位引腳的電平。

            H橋電路太常見,百度出來一抓一大把。

            至于H橋原理神馬的,我就不在這里多說了。不懂就百度吧,實際上學(xué)過三極管的,稍微靜下心來分析一個,都可以看得懂的。下面是一個比較器的電路,用的是光電對管發(fā)射信號,經(jīng)黑線反射以后PHOTO上產(chǎn)生一定的電壓值,做電路的時候?qū)崪y LM358的輸入電壓高達(dá)0.6V(哈哈,其實也不高…),右邊的LM358構(gòu)成一個比較器,VCC為5V電壓,經(jīng)10K和50歐姆電阻分壓以后LM358的2號引腳的電壓大致為0.5V0.6V,滿足電路設(shè)計要求。后加一個1K電阻保護(hù)后級單片機(jī)(哈哈,這個電阻方便了我后面的濾波)下面說說問題所在吧。


            調(diào)試的時候發(fā)現(xiàn)了一個非常糾結(jié)的問題。數(shù)據(jù)總是莫名其妙地顯示200轉(zhuǎn)/s甚至是1000轉(zhuǎn)每秒,實際上,我這個電機(jī)的轉(zhuǎn)動速度最大也就110轉(zhuǎn)每秒,這些個數(shù)據(jù)顯然都是錯誤的。反復(fù)檢查定時器的捕獲程序,檢查了好幾遍,加上有寫了一年的430單片機(jī)程序的經(jīng)驗,對這個G2553的內(nèi)部寄存器相當(dāng)熟悉,反復(fù)分析,100%確定程序沒有任何問題。那么問題在哪里呢?后來分析了一段代碼。

            這個函數(shù)是將捕獲到的定時器的脈沖計數(shù)值送到12864的一個中間轉(zhuǎn)換函數(shù),temp顯示的轉(zhuǎn)速,由于CPU 時鐘用的1MHz,電機(jī)那里有四個黑帶,所以實際的轉(zhuǎn)速應(yīng)該是250000/tempData,得到這個數(shù)據(jù)后轉(zhuǎn)換成ASCII碼,再送到12864顯示。問題出現(xiàn)在這里,12864顯示數(shù)據(jù)1000+,說明temp = 1000+,比實際的數(shù)據(jù)100+大了10倍。那么也就意味著tempData的數(shù)據(jù)比實際的真實數(shù)據(jù)小了10倍,也就是說定時器兩次捕獲時間的間隔比常規(guī)的要小很多,為什么會小了那么多倍呢。

            思來想去,靈光一閃,哎呀,對了!由于電機(jī)的膠布粘貼得不均勻,產(chǎn)生了大量的不均衡噪聲,使得比較器的輸出含有大量的高頻分量,由于噪聲的存在,使得定時器的捕獲時間間隔變小!從而出現(xiàn)了顯示數(shù)據(jù)偏大的結(jié)果。想到問題所在,那么怎么解決掉呢。查看原理圖,發(fā)現(xiàn)運算放大器的輸出端接有一個1K的電阻,哎呀瑪雅,靈感方案突然就來了,做個簡單的RC低通濾波器不久完了?想到方案以后那么電容的值又該怎么選了?在草稿紙上做個簡單的分析,現(xiàn)將草稿紙上的內(nèi)容mathtype搬到Word上來。

            電容的阻抗表達(dá)式:

            把運放的輸出結(jié)果看成一個電壓源,其輸出電壓等于RC濾波網(wǎng)絡(luò)的輸入電壓假設(shè)其值為:


            那么上圖所示的Vout的輸出表達(dá)式為

            為了方便分析,我們假設(shè)Vi為1V,并且不考慮相位問題,取Vout的??傻?/p>

            輸出表達(dá)式與輸入頻率的關(guān)系找到了,那么我們的電容值又該怎么設(shè)計呢?考慮到我們的光電管經(jīng)過比較器輸出以后的頻率最大為500Hz,那么我們設(shè)計一個‐3dB在500Hz左右的濾波器即可。用MATLAB寫個小程序。

            R = 1000;

            f = 0:0.01:1000;

            w = 2*pi*f;

            C1 = 0.001 * 10^-6;%%uF

            C2 = 0.01 * 10^-6;%% uF

            C3 = 0.1 * 10^-6;%% uF

            C4 = 1 * 10^-6;%% uF

            C5 = 0.3 * 10^-6;%% uF

            y1 = sqrt((1./(1+w.*w*R^2*C1^2)).^2 +

           ?。ǎ╳*R*C1)/(1+w.*w*R^2*C1^2)).^2);

            y2 = sqrt((1./(1+w.*w*R^2*C2^2)).^2 +

           ?。ǎ╳*R*C2)/(1+w.*w*R^2*C2^2)).^2);

            y3 = sqrt((1./(1+w.*w*R^2*C3^2)).^2 +

           ?。ǎ╳*R*C3)/(1+w.*w*R^2*C3^2)).^2);

            y4 = sqrt((1./(1+w.*w*R^2*C4^2)).^2 +

            ((w*R*C4)/(1+w.*w*R^2*C4^2)).^2);

            y5 = sqrt((1./(1+w.*w*R^2*C5^2)).^2 +

           ?。ǎ╳*R*C5)/(1+w.*w*R^2*C5^2)).^2);

            plot(f,y1,f,y2,f,y3,f,y4,f,y5);

            title(‘RC濾波器設(shè)計’);

            legend(‘0.001uF’,‘0.01uF’,‘0.1uF’,‘1uF’,‘0.3uF’);

            xlabel(‘頻率/Hz’);

            ylabel(‘輸出幅頻/V’);

            在測試C的時候從1nF開始測試,得到下面的輸出曲線,從圖中我們可以看到,從0Hz到1000Hz,輸出幾乎都是1,不變,1nF的電容不符合我們的設(shè)計要求。再加大,測試104電容,104電容即0.1uF,得到的輸出幅頻特性曲線如下,顯然不符合我們的設(shè)計要求,500Hz‐3dB處還差一點點,再加大10倍,測試1uF.

            下面這張是1uF的測試圖,顯然‐3dB小于500Hz了。也不符合設(shè)計要求,經(jīng)過反復(fù)測試并結(jié)合手頭上有額電容容值,選定474電容,得到幅頻特性曲線也較為理想。敲定電容值以后已經(jīng)迫不及待把電容焊上去了。焊接完畢以后,長時間觀察,12864沒有再出現(xiàn)200轉(zhuǎn)/秒或者1000轉(zhuǎn)/秒的顯示值,也就是說設(shè)計的濾波器已經(jīng)起到效果了!做成以后興奮了一小下。興奮之余,想到既然是高頻噪聲的影響,那么何不看看它的頻譜圖呢,一想到,果斷從科協(xié)搬來一臺數(shù)字示波器,測試了安裝RC濾波器前的FFT圖形和安裝RC濾波器后的FFT圖形,現(xiàn)貼在這里。從兩個圖中,很明顯地可以看到安裝濾波器前裙子噪聲非常明顯,安裝后,裙子噪聲基本沒有了!??!,看到這里,我又忍不住興奮了一下。



            解決所有問題以后大松一口氣,終于想通了復(fù)位電路與簡單的RC濾波電路。相比51單片機(jī)的高電平復(fù)位電路,其實原理也是一樣的——高通濾波器。



          關(guān)鍵詞: MCU MSP430G2553 電機(jī)控制

          評論


          相關(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); })();