作者plzza0dogs (二兵 金 东 河 忠诚)
看板Coffee
标题Re: [器材] 使用Arduino制作烘豆机控制盒-Part3 LCD萤幕显示
时间Sun Nov 14 11:36:21 2021
LCD萤幕显示
在LCD的选择上,原本我是考虑LCD1602,但数了一下字数,似乎有点局限
转而考虑LCD2004,国外不少TC4的用家就是使用1602、2004来做为萤幕显示
https://i.imgur.com/8ctMwzR.jpg
於是我用EXCEL对LCD2004排版之後如下
https://i.imgur.com/g7KIFO6.jpg
似乎还是很拥挤阿
因此到後来看到了128x64的ST7920後我就转而投向这块便宜又强大的面板了,显示部分我使用U8G2函示库来建立整个画面的构成,U8G2是一个可玩性高、支援萤幕丰富的函示库,就算要用中文显示也能支援、自制字库(尽管ST7920的函示库本身也支援部分中文)
对於U8G2有兴趣的可以参考下列几篇文章,都有非常详细的说明,利用文章里教的一些函式慢慢堆叠出属於自己风格的画面
https://blog.jmaker.com.tw/u8g2-oled/
https://atceiling.blogspot.com/2020/12/arduino102u8g2.html
https://www.twblogs.net/a/5d207eeabd9eee1e5c83a6bb
不过很怪异的是,我在使用U8G2显示中文却失败了,但是同样的程式跑在SSD1306 OLED却是可行的,不确定是出了什麽样的问题,好在我本身就不考虑使用中文显示,毕竟太占空间了,而且让人觉得不够「有趣」,为了让画面更有「艺术气息」,我使用图形来代替炉温、豆温、风门、瓦斯
利用EXCEL「设计」之後,再到这个网站一个个点出要发亮的区域,就会出现图片的阵列罗
https://www.block.tw/t2b
https://i.imgur.com/c0mm9yQ.jpg
然而到後来我才知道,原来这些显示的阵列,跟显示出来後的画面会左右相反,所以做好之後又手动一列列修改,才完成最後的图标阵列,然後这里也出现了另一个BUG,就是风车图案不能放在太下面的位置,否则就会在他的正下方中央,出现一个亮点,非常诡异的BUG却也无法解释,反正只要不把风车放在最下方就可以了。
另外ST7920分为蓝光白字,跟黄光黑字两款,我买的是蓝光白字,所以画面要反黑,应该是这样
https://i.imgur.com/mJAABce.jpg
测试一下显示效果
https://i.imgur.com/5nserfC.jpg
在来回到软体的部分,必须宣告你使用了哪一块板子
U8G2_ST7920_128X64_F_SW_SPI u8g2(U8G2_R0, /* clock=*/ 13, /* data=*/ 11, /* CS=*/ 10, /* reset=*/ 8);
其中SW 好像是代表 软体模拟SPI,这时候你可以自订任意脚位,像我使用了44、42、46,reset不接,所以我的宣告是
U8G2_ST7920_128X64_F_SW_SPI u8g2(U8G2_R0, /* clock=E*/ 46, /* data=R/W*/ 44, /* CS=RS*/ 42, /* reset=*/ U8X8_PIN_NONE );
接下来只要在程式里面宣告自己要使用的图形阵列,利用u8g2的函式一个个绘画出来就完成了,然後我会把不需要更新的部分(框架)放在u8g2.firstPage();需要更新的放在do{}while ( u8g2.nextPage() );之间,看起来很复杂没有关系,其实只要把范例程式修改一番就可以创造自己的页面了,排版的部分就是按计算机,计算一个字占了几个宽度,然後try and error,不断的微调。
程式码的部分
https://i.imgur.com/pMPF56G.jpg
最後改字形、加了各种框限排版出来的结果
https://i.imgur.com/qwUawef.png
当然最终都是不断调整的,我打算把KENT500的字样改成时间显示,左侧温度改成ROR显示、右侧湿度是风门湿度,当然这些部分还没做出来,不过就算做失败也问题不大,毕竟这些花里胡俏的东西其实用处不大只是为了填补面板,不然Artisan都是有这些资讯的显示的。
另外为了让萤幕面板不要更新频繁,造成数值不断浮动显示,我依样使用millis()进行控制
if(lcd_time==0)
lcd_time=millis();
if( (millis()-lcd_time)>500){
/*u8g2的程式码*/ }
lcd_time==0;
这样一来萤幕就会一秒更新一次显示内容,比较不会让人眼花撩乱
另外原本我还打算加入MP3语音模组进行温度的播报,不过买了两颗MP3模组,一颗烧坏,一颗本身就是坏的,上网询问後大家评价这块模组很容易故障、焊接错误,所以最後就乾脆不做这个部分的功能了,当然这些小功能制作并不困难,有兴趣的可以自行搜寻Arduino、MP3,利用if-else或switch这些简单的判断函式就能做出语音播报系统了。
基本上软体的部分就到这里告一段落,之後会开始讲关於硬体制作与规划的过程
-----待续-----
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.248.201.15 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Coffee/M.1636860986.A.C71.html
※ 编辑: plzza0dogs (111.248.201.15 台湾), 11/14/2021 11:43:30
1F:嘘 celtics1997: 豪猛 11/14 11:42
2F:→ plzza0dogs: 胡先生别再无意义嘘了,赶快去还钱吧 拿PTT ID去借钱 11/14 11:52
3F:→ plzza0dogs: 网借钱这种操作也难怪你就这样了 11/14 11:52
4F:嘘 celtics1997: $ 11/14 11:54
5F:→ kazzoi: 所以到底在虚啥 11/14 16:42
他在边缘人版针对某人疯狂乱嘘文贴一堆莫名其妙的东西,就同时被3、4个人检举
我是其中一个,从此只要我发文他就在下面乱嘘一通,精神状况很不好吧,惹到他的都会被他无意义疯狂追杀
还跑去借钱网贴自己个资跟PTT ID用来"担保"自己不会欠钱不还(原来PTT ID这麽有用?)
总之这个人怪怪的,有点可怜
6F:嘘 celtics1997: 秘密 11/14 16:51
※ 编辑: plzza0dogs (111.248.201.15 台湾), 11/14/2021 17:28:12
7F:推 mangobearx: 帮推 11/15 08:03
8F:→ bearq258: 直接用TC4或PID 台达电DTA 改一下接artisan 也可直接控 11/15 11:21
9F:推 xhung: 哇塞 自己动手做烘豆机 佩服 11/17 17:27
10F:推 asd56445: 推推精神 01/24 23:10