任大奇++謝作如
最近,在教學《Arduino創意機器人》的過程中碰到了一個奇怪的問題。
故障描述
學生在學習了《換擋風扇》一課后,做了一個用三個按鈕控制的“換擋風扇”。如圖1所示,學生將三個按鈕模塊分別接在Arduino的數字口2、3、4上,風扇接在數字口11上。接好硬件后,學生用米思齊(Mixly)軟件編寫了如圖2所示的程序,編譯并下載到Arduino中。學生按下按鈕2,風扇開始慢速轉動,再按下按鈕3,風扇加速轉動,按下按鈕1后,風扇停止了轉動。
一切都很順利,于是筆者提議給這個作品增加遙控功能。學生們馬上興致勃勃地動手找到紅外遙控模塊,沒幾下就把硬件連接好了(在9號數字口上增加了紅外接收模塊),如圖3所示。
使用遙控器上的“1”“2”“3”鍵分別控制風扇“停止轉動”“慢速轉動”“快速轉動”,程序并不復雜,很快便寫好了,如下頁圖4所示。
當學生按下遙控器上的“3”鍵時,風扇快速旋轉起來。但當按下“2”鍵時,預期的慢速旋轉并沒有出現,風扇直接停止了轉動。學生又按了幾次“2”鍵,可是風扇仍然紋絲不動,再按“3”鍵,風扇也不動了。這時,學生趕緊檢查剛才寫的程序,再三檢查后確定程序沒有問題。那難道是硬件連接出問題了?仔細檢查后也沒有問題。一臉茫然的學生只好來求助筆者。于是,筆者查找遙控失效的原因。
首先,可以確定的是,風扇不能工作在慢速狀態下的故障和加入了紅外線遙控有關,因為本來是正常的。但它們之間會有什么關系呢?然后,筆者開始從它們的工作原理入手查找線……