一切都好了之後,就是上機連線電腦做測試,這時我才發現他無法連線跟Artisan溝通
https://i.imgur.com/ZXsTZ2b.jpg
原本以為是程式的問題,但理論上也該在Artisan上顯示出爐溫(ET)豆溫(BT)才對。
後來爬文才知道,似乎是Arduino Mega2560這張板子的問題導致他無法順利連線Artisan
Artisan按下開始之後,要再將Arduino Mega2560 Reset才「有機會」連上
而設計之初我完全沒有考慮過Reset鍵,所以我的前面板也沒有額外的按鈕開孔
這下就變成每烘一鍋豆子,我都必須把機器上蓋拆開,靜心祈禱、按下Reset希望他能連線
成功。
這實在是太蠢了,於是我構思了好幾個方案,最後選擇了使用帶開關VR控制
所謂Reset,是將Reset腳位拉到地,再復位他就會重啟,所以我使用電阻分壓,導通的時候
Reset腳接收到高電位,斷開時接到地進行Reset。
怎麼做呢,利用電阻分壓,斷開時低電位很簡單,將路徑上串一顆電阻到地
這樣在空接狀態下Reset就會直接被拉到地,而導通時就被拉到5V,因此5V接上一顆小電阻
再串到開關,形成迴路時,Reset就會在電阻分壓之間,我用的數值是5V接10歐姆電阻,1.5
k歐姆電
阻接地,這樣一來就可以透過切換開關進行Reset。
接線圖如下
https://i.imgur.com/6TPPHlW.jpg
但是這時又出現一個有趣的現象,我不需要Reset也能連線了?
只要把Reset接到5V,Uart就能順利與Artisan溝通,實在是難以理解
這時又發現,強制連5V會導致另一個問題,就是無法順利燒錄程式,因為Arduino燒錄程式
時會將Reset拉低重啟,所以狀況變成
1.Reset Pin空接,可以燒錄更新程式,但無法連線Artisan
2.Reset Pin接5V,不能燒錄更新程式,可以連線Artisan
3.Reset Pin接地再復位(不論5V或空接),Arduino Reset
最後我還是保留了上圖的線路,畢竟更新程式的機會不多(除非吃飽太閒),而出現當機之類
的狀況Reset還是很重要的,當然如果重新來過,我會使用一個6P 3段搖頭開關,就可以順
暢切換3個模式。
最後來講一下Artisan連線的部分,稍微研究了一下,大概看懂了山姆大的程式邏輯
Arduino跟Artisan溝通是送一串資料值(使用變數名稱),用逗號「,」分隔,用「0」代表
通道不啟用,用「換行」作一筆資料的結束。
原本的程式碼中channel 1是爐溫channel 2是豆溫,再來就沒了,所以山姆大寫了
Serial.println(",0.00,0.00");
而我增加了風門讀取、瓦斯火力讀取、風門內溫度、風門內濕度,另外TC4的通道5、6似
乎原本是給Artisan做外部控制的,所以我就跳過5、6,使用通道7、8,結尾處使用換行
指令Serial.println而不是Serial.print
最後左邊是原本的程式碼,右邊是我修改過後的程式碼
https://i.imgur.com/Gvtb0TG.jpg
很詭異的一點是,我的瓦斯壓力值如果有小數點會被自動省略掉,只呈現1bar或2bar,不
太清楚原因,而且這數值也太小了會在地上爬,所以我直接將它乘100倍再傳輸給Artisan
(當然Artisan內部也可以調整參數輸入倍數),然後Serial.print (參數名稱,1)後面的逗
點1,則代表取到小數第一位。
然後Artisan設定如下
https://i.imgur.com/28FHwwJ.jpg
我還發現筆電有些USB口很不穩定,會瘋狂斷線又回連,不知道為什麼
最後換了有充電功能的USB口就穩定了,採樣我選2.7秒,超採樣打開後,連線很穩,雖然我
的程式碼算起來應
該是2秒採樣一次,但是似乎會有點小問題,這個採樣間隔時間可以自己調整看怎樣比較穩
定
而Artisan還有很多功能大家可以慢慢嘗試,我自己也還在摸索中。
最後附上Kent 500裝機影片
https://youtu.be/6DggFILt1qg