一切都好了之后,就是上机连线电脑做测试,这时我才发现他无法连线跟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