国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Arduino中PWM調制在電子技術實驗中的應用研究

2023-04-29 04:56:46林炳權石皓宇車宇李鵬梁飛翔唐強蔡志崗
物理與工程 2023年3期
關鍵詞:技術教學改革

林炳權 石皓宇 車宇 李鵬 梁飛翔 唐強 蔡志崗

關鍵詞 Arduino;教學改革;脈沖寬度調制技術(PWM 技術);計算機編程

電子技術綜合設計實驗作為光電信息專業(yè)、物理學專業(yè)的一門重要的綜合課程,在本科生經過電子技術理論知識的學習后,通過硬件設計、通訊控制、軟件編程可以鍛煉學生的實驗技巧從而全面地提升其電子技術綜合設計能力。中山大學物理學院開設的電子技術綜合設計實驗課中,通過讓學生焊接安裝控制電路,控制兩個直流電機的輸入電壓,將經過兩個不同轉速的偏心轉輪平面鏡的反射后的激光,形成特定形狀的激光圖案,通過改變兩個直流電機的電壓比,可以得到不同形貌的激光圖案[1]。通過焊接控制電路,學生可實現的幾個特定電壓比值的輸出電路,通過聲音采集模塊可以實現在幾個不同電壓比之間的切換。但上述方法會導致輸出圖案形式單一,并且焊接電路中由于單個壞掉的電子元器件導致的實驗問題難以排查,給實驗教學帶來一些不便。Arduino作為一款便捷靈敏、易于上手的開源電子開發(fā)平臺,具有操作簡便、功能豐富等特點,已廣泛應用于各種電路系統(tǒng)的開發(fā)[2-4]。將Arduino單片機引入電子技術綜合設計實驗課程中,不僅可以拓展控制電路的開發(fā)設計方式,還可以通過引入其他的傳感器模塊讓學生在C語言的基礎上自行編程,豐富了實驗教學內容。通過引入Arduino單片機調控模式,將傳統(tǒng)焊接電子電路的內容擴增為“原理設計電路連接軟件編程”的連貫模式,提高了學生的學習主動性和學習興趣,降低電子技術實驗中電路焊接不當引起的故障率,促進教學質量的提高。

1 實驗原理

本文以Arduino單片機作為控制電路的核心部件,結合L293D芯片、紅外信號接收模塊、激光器、直流電機、偏心轉輪反射鏡等硬件,實現紅外信號通訊、PWM 信號輸出調控直流電機的轉速,從而改變激光圖案的形狀的目的。

1.1 Arduino簡介

Arduino是2005年意大利米蘭交互設計學院的老師開發(fā)設計的一款開源開放的電子技術創(chuàng)意平臺。Arduino包含硬件(各種不同類型的Arduino開發(fā)板)和軟件(用于代碼編譯的集成開發(fā)環(huán)境,Arduino IDE,以及第三方提供的圖形化編程環(huán)境如Mind+、Scratch3.0等)。由于Arduino的編程具有類似java、C++ 等常用編程語言的Processing/Wiring開發(fā)環(huán)境[4],入門簡單,功能多樣,價格低廉,被廣泛應用于電子技術設計和互動產品開發(fā)等方面,受到廣大電子技術開發(fā)者的青睞。

Arduino UNO 開發(fā)板是目前最常用的Arduino開發(fā)板,以ATmega328 MCU 微控制器為核心,一般具有以下結構:

(1) 1個USB接口,可通過USB數據線與電腦實現通信,將Arduino IDE 程序上傳到開發(fā)板中,也可通過該口為開發(fā)板供電,電壓為5V;

(2) 1個電源插口,可使用DC電源為開發(fā)板供電,電壓為9V,使開發(fā)板具有驅動較大功率外部設備的能力;

(3) 14個數字I/O引腳,可進行數字電信號的輸入和輸出,其中有6個引腳支持PWM 模式輸出;

(4) 6個模擬輸入端,可進行模擬電信號的輸入;

(5) 一個16MHz的晶振,用于產生單片機所需的時鐘頻率;

(6) 1個復位按鈕、1個5V DC 輸出和1個3.3V DC輸出等其他接口[2]。

Arduino IDE是一款Arduino專用的程序編譯器,是Arduino的集成開發(fā)環(huán)境。它將單片機的寄存器封裝在核心庫中,是單片機程序代碼GCCAVR的二次封裝。開發(fā)者只需了解Arduino開發(fā)板中各端口的作用,編寫程序代碼并上傳到Arduino開發(fā)板中,不需要了解開發(fā)板內部寄存器的設置方法,降低了Arduino開發(fā)板的使用難度。同時,Arduino也兼容GCCAVR,對于實時性要求較高的項目,開發(fā)者也可直接對寄存器進行編程設置[3]。

正是由于Arduino IDE對單片機程序代碼的二次封裝,使得使用者不需要了解單片機的內部硬件結構和寄存器設置,只需要清楚每一個端口的作用就可以利用基礎的C語言知識編寫程序代碼并讓Arduino實現想要的功能。

以Arduino中自帶的閃爍程序為例,按照如圖2所示的代碼上傳到Arduino UNO 板上,并將13號引腳連接LED正極,LED負極與GND引腳連接,就可以看到燈泡亮暗交替閃爍。通過如上簡單的程序,就可以實現利用Arduino電路板控制電子元器件的目的。

除此之外,Arduino開發(fā)板可連接其他輸入和輸出模塊,實現更多的功能設計。開發(fā)者在Arduino IDE中編寫程序并上傳到Arduino開發(fā)板中,通過數字輸入接口或模擬輸入端連接聲音傳感器、紅外接收模塊、超聲波接收模塊等輸入元件,進行信號接收、動作采集等操作,并通過數字輸出接口或PWM 輸出端連接直流電機、蜂鳴器、顯示屏等輸出元件,進行信號發(fā)送、動作輸出等操作,達到感知外界、影響外界的目的[4,5]。

Arduino通過計數器與寄存器實現PWM 輸出。計數器按照一定的規(guī)則在最低值與最高值之間重復計數,當計數器的值與比較寄存器中設定的值相同時,切換數字輸出的邏輯電平,實現對高電平輸出時間的調制[7]。

Arduino UNO 開發(fā)板的3、5、6、9、10、11號數字I/O 引腳支持PWM 輸出,3、9、10、11號引腳輸出的PWM 信號頻率約為490Hz,5、6號引腳輸出的PWM 信號頻率約為980Hz。analogWrite(pin,value)是Arduino IDE中控制PWM 輸出的專用函數,pin是PWM 輸出引腳的編號,value是輸出的脈沖信號的占空比大小,取值范圍為0~255,對應輸出的模擬電壓值為value/255 ×5V。

2 實驗介紹

2.1 傳統(tǒng)電路焊接實驗

傳統(tǒng)的實驗過程采用時鐘定時觸發(fā)或音控觸發(fā)的方式,學生焊接控制電路板,實現對激光圖案的定時變換或音控變換,圖4為控制電路流程示意圖。

定時觸發(fā)模式采用555多諧振蕩電路輸出周期可調脈沖信號;音控觸發(fā)模式通過放大電路和整形電路使聲音信號形成穩(wěn)定的脈沖信號。在方波脈沖信號上升沿的觸發(fā)下,十進制計數器4017循環(huán)輸出Q0、Q1、Q2、Q3四路高電平,再經分壓電路獲得四組不同的工作電壓,進而通過反轉電路和驅動電路控制兩個直流電機的轉向和不同的轉速比。激光經過兩個電機上的偏心反射鏡的連續(xù)反射,在白屏上形成不同的激光圖案[1,8]。

實驗要求學生焊接復雜的控制電路板,只能實現幾個特定電壓比值的輸出電路,且電路難以采用其他信號觸發(fā)模式。由于單個壞掉的電子元器件導致的實驗問題難以排查,實驗耗時長、輸出圖案形式單一以及實驗過程中存在的虛焊等問題導致該實驗擴展性低。

2.2 基于Arduino改進后的實驗

本文引入Arduino對實驗途徑進行擴展,使實驗更具創(chuàng)新性。圖5是改進后的實驗的示意圖。其控制過程如下:1)信號模塊:摁下紅外遙控器發(fā)出紅外信號,Arduino通過紅外信號接收模塊接收讀取到電信號,不同的按鍵對應到Arduino中不同的電信號;2)計算模塊:Arduino根據接收到的紅外信號計算調控出對應電壓比的PWM 模擬電壓信號,再經過L293D 芯片等比放大并驅動兩個直流電機;3)硬件模塊:激光經過兩個不同轉速的偏心旋轉鏡面的連續(xù)反射,在屏幕上形成特定的激光圖案。改變兩個電機的轉速比可得到不同形狀的激光圖案。

2.2.1 紅外信號輸入

Arduino單片機可與時鐘傳感器、聲音傳感器、光敏電阻傳感器等多種輸入模塊連接,實現多種信號輸入途徑。本文采用紅外信號輸入實現對實驗裝置的控制。

圖5的右下角部分為紅外信號接收模塊與遙控器。將紅外信號接收模塊的輸出接口(即模塊上的OUT引腳)與Arduino UNO 的7號引腳連接,用于傳輸信號,并通過連接Arduino UNO的5V輸出端口為模塊提供工作電壓。當接收到紅外遙控器發(fā)出的紅外信號時,接收模塊內置的程序將對紅外信號進行解調、編碼,輸出六位十六進制編碼。

在Arduino IDE庫管理器中下載安裝IRremote庫文件,通過調用enableIRIn()函數可觸發(fā)模塊接收紅外信號,再通過調用decode()函數可將紅外信號解調、編碼為相應的六位十六進制編碼[9]。

2.2.2 L293D芯片

由于Arduino單片機的輸出電壓最高為5V,不足以驅動12V 直流電機,本文結合L293D芯片實現直流電機驅動電路。圖6為L293D芯片的原理圖。16號引腳連接5V 電源,為芯片的調控電路提供工作電壓;8號引腳連接12V 電源,為芯片的驅動電路提供工作電壓。2、7、10、15號引腳為控制信號輸入引腳;3、6、11、14號引腳為驅動信號輸出引腳,用于輸出信號以驅動電機工作。1、9號引腳為使能引腳,當使能引腳置于高電平時,相應的輸入輸出引腳被激活啟用,輸出與控制信號同相的驅動電壓[10]。

將電機1的兩端連接L293D芯片的3、6號輸出引腳。相應的2、7號輸入引腳中的一個引腳置于高電平,另一個引腳置于低電平,兩個輸出引腳的輸出電壓形成電勢差,驅動電機轉動。當不同的引腳被置于高電平時,電勢差極性相反,電機轉向改變。

電機2的一端連接L293D 芯片的11號輸出引腳,另一端接地。當10號輸入引腳置于高電平時,14號輸出引腳輸出高電平電壓,形成電勢差,驅動電機轉動。

將PWM 模擬信號輸入1、9號使能引腳,相應的輸出引腳輸出相同占空比、峰值較高的PWM模擬信號,實現電機兩端電壓值的改變。

2.2.3 程序設計

在Arduino IDE上編寫程序,根據輸入的紅外信號調控PWM 模擬信號的輸出,程序設計如圖7所示。

程序開始時,定義引腳、轉速、轉向等變量,設定引腳的模式。使用enableIRIn()函數觸發(fā)紅外信號接收模塊接收信號,通過decode()函數判斷是否成功接收到紅外信號,若接收到紅外信號,則將接收到的紅外信號解調、編碼為六位十六進制編碼并賦值給變量results,并在Arduino IDE 的串口監(jiān)視器中顯示紅外信號的編碼和編碼位數;若未接收到信號,則各變量保持不變,Arduino輸出信號不變。

接收到紅外信號后,使用if-else語句將紅外信號編碼與數字0~9、符號+、-對應,并賦值到變量Input。根據變量Input的值的不同,改變轉速speed、轉向Direction等變量。

為實現對兩個電機轉速的分別調控,定義變量channal,當按下按鍵“CH+”時,channal=1,對電機1進行調控;當按下按鍵“CH-”時,channal=2,對電機2進行調控。

為實現多組不同電壓比值的輸出,定義轉速變量speed調控電機轉速,將數字按鍵0~9對應speed變量由0~255等間距賦值;

由于電機1正轉、電機2反轉時形成的激光圖案與電機1反轉、電機2正轉時形成的激光圖案一致,在程序中僅定義方向變量Direction調控電機1的轉向,保持電機2的轉向不變。

將上述變量作為函數參數,調用digitalWrite()和analogWrite(pin,value)函數,改變相應輸出引腳的電平狀態(tài)和PWM 信號的占空比,控制每個電機的轉速和轉向。

3 結果分析

將程序上傳至Arduino中,通過遙控器按鍵“CH+”“CH-”選擇需要控制的電機,再通過數字按鍵0~9,設定輸出引腳的模擬電壓值,得到不同的輸出電壓,經L293D 芯片驅動電機以不同的轉速或轉向轉動。激光經由特定轉速比的兩個直流電機攜帶的偏心反射鏡的連續(xù)反射,在白屏上形成特定的激光圖案。改變兩個直流電機的不同轉速比,可以得到不同形狀的激光圖案。

以電壓比的正負區(qū)分電機轉向的改變,分別設定兩個直流電機的電壓比為-9∶5,-3∶2,3∶2,在白屏上獲得相應的激光圖案,如圖11左側所示。

為了驗證實驗設計的準確性,我們還進行了理論上的計算,并使用MATLAB軟件對激光圖案的形成過程進行仿真模擬,理論分析過程如下:

實驗裝置中,電機上的偏心反射鏡所在平面的法線方向與電機轉軸不平行,而是存在一個3°的夾角。圖8中電機的兩個反射鏡面位置為電機轉動下反射鏡面的兩個極端位置,成一個6°的夾角。點狀激光直接照射在直流電機上的偏心反射鏡上,由于反射鏡所在平面的法線方向與電機轉軸方向存在夾角,故當電機轉動時,反射的點狀激光不是固定的一個方向,而是成一個圓錐面,在白屏上呈現為一個圓形或橢圓。經第一個反射鏡反射的激光照射在第二個反射鏡上,發(fā)生第二次反射,在白屏上呈現的圖像為兩個圓形軌跡運動的疊加合成[11]。

在白屏上建立直角坐標系,如圖9所示。以水平方向為橫坐標、豎直方向為縱坐標,記經過兩次反射后,在白屏上顯示的激光點的橫坐標為x,縱坐標為y,則

其中,第一次反射形成的圓形軌跡的半徑為R1,角速度為ω1,第二次反射形成的圓形軌跡的半徑為R2,角速度為ω2。

利用MATLAB軟件對激光圖案的形成過程進行仿真實驗,代碼程序如下。

修改MATLAB代碼中的兩個轉速變量的比值為-9∶5、-3∶2、3∶2,并適當調節(jié)激光時間,運行程序,分別得到相應的仿真激光圖案,如圖10右側所示。

從實驗結果與仿真結果可以看出,當兩個電機的轉向相反且轉速比為9∶5和3∶2時,激光圖案呈現花瓣形狀,隨著電壓比的增大,“花瓣”越來越窄且多;當兩個電機的轉向一致且轉速比為3∶2時,激光圖案為心形線繞一點旋轉而成。

需要指出的是,實驗過程中由于兩個電機轉動的初始相位差的存在,激光圖案會繞中心緩慢旋轉。因此在實驗過程中,實際激光圖案是通過手機拍照,利用延長手機的快門時間實現的;仿真得到的激光圖案是通過在畫布上同時繪制激光點的軌跡方程實現的。由于手機設置的快門時間較長,而仿真實驗繪制的激光圖案為一個周期內激光點的運動軌跡,故在兩個直流電機轉速比為9∶5且轉動方向相反時,實驗觀察到的圖形“花瓣”數目要明顯多于Matlab模擬的實驗結果。但是實際觀測到的激光圖案與仿真結果保持一致,由于圖案會圍繞中心旋轉。在另外兩個轉速比下,實際激光圖案也是在圍繞著中心旋轉的(這一點從實際觀測到的激光圖并未構成閉合曲線也可以明顯看出)。

實際實驗結果與仿真實驗結果一致。至此,我們借助Arduino中PWM 調制技術,實現了對激光圖案形狀的紅外遙控控制。

4 結語

以Arduino單片機為核心,通過“原理設計硬件連接軟件編程”實現了用PWM 調制方式控制激光圖案的電子技術綜合設計實驗內容,豐富了傳統(tǒng)的電子實驗教學。通過調節(jié)占空比,控制輸出電壓進而生成多種不同的PWM 信號,調節(jié)出多種不同的激光圖案。該實驗設計方案通過利用Arduino單片機中脈沖調制技術,通過讓學生親自動手設計硬件連接、電路設計以及軟件編程,在充分學習了電子技術的基礎上自行設計出基于PWM 調制控制的激光圖案系統(tǒng),能夠完整地培養(yǎng)學生的電子技術綜合設計和應用能力?;陂_源系統(tǒng)的Arduino單片機實驗很適合本科生,結合物理測量和光電技術,開展各種實際應用。

猜你喜歡
技術教學改革
淺談鋼筋混凝土結構建筑應用外包粘鋼加固技術
探討電力系統(tǒng)中配網自動化技術
科技視界(2016年21期)2016-10-17 20:00:58
移動應用系統(tǒng)開發(fā)
科技視界(2016年21期)2016-10-17 19:38:30
北京市中小企業(yè)優(yōu)化升級
商(2016年27期)2016-10-17 04:13:28
基于人才培養(yǎng)的技工學校德育實效性研究
成才之路(2016年25期)2016-10-08 09:51:08
現代信息技術在高職數學教學改革中的應用研究
科技視界(2016年20期)2016-09-29 12:59:03
以職業(yè)技能競賽為導向的高職單片機實踐教學改革研究
科技視界(2016年20期)2016-09-29 11:20:38
微課時代高等數學教學改革的實踐與探索
科技視界(2016年20期)2016-09-29 11:16:19
澄江县| 桦甸市| 龙井市| 蒙阴县| 黑龙江省| 屏东县| 平江县| 若羌县| 日照市| 乐昌市| 英德市| 剑川县| 阿拉尔市| 晋城| 临汾市| 涿州市| 察哈| 隆德县| 安多县| 从化市| 浦东新区| 河北省| 石阡县| 河南省| 康保县| 石棉县| 阿鲁科尔沁旗| 滨海县| 金塔县| 津市市| 西吉县| 沂南县| 天峻县| 鸡泽县| 阳信县| 枣阳市| 浦县| 阳春市| 芜湖市| 荃湾区| 东安县|