Re: [器材] 使用Arduino製作烘豆機控制盒-Part3 LCD螢幕顯示

看板Coffee作者 (二兵 金 東 河 忠誠)時間2年前 (2021/11/14 11:36), 2年前編輯推噓-2(134)
留言8則, 5人參與, 2年前最新討論串1/1
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://www.ptt.cc/bbs/Coffee/M.1636860986.A.C71.html ※ 編輯: plzza0dogs (111.248.201.15 臺灣), 11/14/2021 11:43:30

11/14 11:42, 2年前 , 1F
豪猛
11/14 11:42, 1F

11/14 11:52, 2年前 , 2F
胡先生別再無意義噓了,趕快去還錢吧 拿PTT ID去借錢
11/14 11:52, 2F

11/14 11:52, 2年前 , 3F
網借錢這種操作也難怪你就這樣了
11/14 11:52, 3F

11/14 11:54, 2年前 , 4F
$
11/14 11:54, 4F

11/14 16:42, 2年前 , 5F
所以到底在虛啥
11/14 16:42, 5F
他在邊緣人版針對某人瘋狂亂噓文貼一堆莫名其妙的東西,就同時被3、4個人檢舉 我是其中一個,從此只要我發文他就在下面亂噓一通,精神狀況很不好吧,惹到他的都會被他無意義瘋狂追殺 還跑去借錢網貼自己個資跟PTT ID用來"擔保"自己不會欠錢不還(原來PTT ID這麼有用?) 總之這個人怪怪的,有點可憐

11/14 16:51, 2年前 , 6F
秘密
11/14 16:51, 6F
※ 編輯: plzza0dogs (111.248.201.15 臺灣), 11/14/2021 17:28:12

11/15 08:03, 2年前 , 7F
幫推
11/15 08:03, 7F

11/15 11:21, 2年前 , 8F
直接用TC4或PID 台達電DTA 改一下接artisan 也可直接控
11/15 11:21, 8F
文章代碼(AID): #1Xa8Gwnn (Coffee)