于悅
一、目標案例
在Arduino編程的教學中,學生學習基礎編程語句、功能模塊以后,能完成課程相關案例。達成教學目標后,我提出了更高的要求:設計一個全新的作品。
學生開始思考,用學到的知識能做出什么作品?看到屋頂的風扇,有的同學便提出做風扇。雖然風扇的設計已經很成熟,但對于剛入門Arduino編程學習的學生來說,是一個不錯的選擇。
在學生動手設計風扇前,我對他們提出了兩點要求:第一,可以通過遙控器控制;第二,能夠多擋位調節風速。
二、學生設計
我在課堂上深入介紹了紅外接收裝置及案例應用,于是,學生選用了在課堂上學習使用過的紅外遙控器及VS1838B紅外接收頭(紅外遙控接收裝置,如圖1所示)。
通過紅外遙控接收裝置控制輸出的高低信號,從而控制電機的開關,帶動扇葉轉動,即可實現遙控風扇的啟動與停止。然而,對于如何實現多擋位調節風速功能,大多數學生感到很為難,不知道該使用哪種編程語句。
三、“借鑒”案例解決問題
針對學生在設計過程中遇到的難題,我提出解決問題的方式為“借鑒”——借鑒相似的案例。
課堂上,學生已掌握呼吸燈(燈光效果由明到暗或由暗到明的逐漸變化)的相關案例設計(程序如圖2所示),應用PWM脈寬調制,即調節占空比,從而調節燈珠的亮度,實現呼吸燈效果。
電機多種轉速與燈珠多種亮度實現的效果有相似之處,主要區別在于是否連續變化。圖2的呼吸燈程序用到了循環編程語句,設置模擬輸出量從0—255逐漸變大,實現燈珠逐漸變亮的效果。
而目標案例風扇的多擋位風速無需實現逐漸變化,所以不會用到循環語句對輸出量進行賦值。要改變轉速,可直接設置模擬輸出量為0—255之間的某個固定參數,并與紅外遙控器的相應按鍵對應,即可實現紅外遙控調節多擋位風速功能。
四、設計成果
學生的設計成果如圖3、圖4、圖5所示。按下紅外遙控器的“1”“2”“3”按鍵分別啟動風扇的低擋、中擋、高擋,按下“0”按鍵,風扇停止轉動。
五、總結與反思
學生在設計新的案例時,往往過于自信,急于創新,不會想到借鑒自己做過的設計。
通過指導學生設計紅外遙控多擋位風速風扇,我更加深入理解到,在Arduino編程設計的課堂上,教師不僅要教學生掌握基礎知識,更重要的是引導學生學會將掌握的內容進行更廣泛地應用,不僅局限于某一個特定場景,實現某一種特定效果,而是要做到舉一反三。
學會找相似,“借鑒”也可以創造新設計。
(欄目編輯? 秦銀銀)