繼上次發文之後,我在實際上機時還是遇到不少問題
第一 風扇轉速偵測會有異常飆升的情況
計算風扇轉速的程式,透過偵測收到Plus訊號的次數做計算,但出來的值總是異常飆高降
不下來,甚至開度70-90%的風扇,偵測轉速比100%開度的還高
開serial.print看也是,風扇轉到100%會飆高到150再降回89
而開到60%~90%會跑到80~130
一直費盡心思修理程式碼,結果都是這顆上拉電阻在搞事,理論上這顆電阻值大於5K就足
夠(通常用10K),由於手邊沒有10K就去電料行隨便買一顆來用,從此就是轉速惡夢,之
前都沒懷疑過它,只當自己菜雞程式有BUG,直到今天才對他動刀,一換就舒服了
https://i.imgur.com/bamFVub.jpg
把雜牌電阻換成Philips Vishay精密電阻,被稱做音響級,價格也比一般爛大街電阻貴上
不少,不過丟到電子電路的社團討論時,多數人認為是麵包板接觸不良導致,這也是有可
能的,畢竟爛電阻的導線比飛利浦電阻細而軟,總之換完電阻後問題完美解決,風扇轉速
穩穩的完全沒有在亂跳了。
第二 Artisan連線異常
上一篇最末有提到這個問題,原本的程式是750ms一次溫度擷取,然後4次平均後吐出平均BT
值,然後Artisan 4次(3秒
鐘)讀取一次數值,我把主程式修改成500ms,2秒讀一次值。
但在讀取後常常發生掉值、連接錯誤的情況發生,採樣也不是2秒。後來我才發現,原來
是我把風扇控制、LCD顯示、瓦斯偵測等等,都寫在原本程式之外,總時長約400ms,加起
來差不多2.4秒沒錯,也因為沒有被包在一起所以導致他會有連接出錯的狀況。
https://i.imgur.com/tTV1Z0Z.jpg
所以正確的寫法應該是,把所有的程式整合到主程式的條件判斷內(一個計時迴圈),也因
為本身主程式已經有時間判斷的迴圈了,所以我的風扇、瓦斯、LCD都不在需要去控制間
隔時間了,直接利用主程式的500ms做一次更新
程式碼如下
https://i.imgur.com/QKp3NpO.jpg
第三 重新修改Artisan接收通道
經我測試,確實使用通道5、6是不動作的,而通道7、8中,通道8被預設為TC4內部溫度(
也就是Arduino晶片溫度),所以只有通道1、2、3、4、7能使用
所以我將連接程式碼修改如下圖
通道1.ET 2.BT 3.風門 4.瓦斯 5.XX 6.XX 7.風門濕度 8.XX
https://i.imgur.com/CGusU1Q.jpg
然後Artisan的設備設定調整如下
https://i.imgur.com/Zmx2CWH.jpg
如此一來,Artisan連線就非常穩定且正確了
最後是實際烘豆的情況
https://youtu.be/_2FslWGnNaw
應該是最後一更了,烘豆機控制盒製作到此結束
感謝各位收看~
--