LCD1602顯示模組
前面雖有LED點矩陣可顯示跑馬文字、圖示來呈現訊息,但提供更佳的文字閱讀體驗裝置,非LCD1602莫數!
先來一睹它的風采,應該在很多電子產品上,能看到它的蹤影。
常見的字幕顏色有「藍底白字」或「綠底黑字」!
眼尖的您可能已發現,此上方模組的背面電路與您手邊的LCD1602模組有些差異,您手邊的應該類似於下圖對吧!
主要是多了一塊I2C的轉換電路,原本的LCD1602模組需要許多的資料及控制線,才能控制得宜。但在搭配I2C轉換電路後,控制此元件只需要4條電線即可,分別是:VCC、GND、SCL及SDA。
(科技始終來自於人的惰性)
常用的I2C位址編號
如上敘,使用I2C協定帶來的好處是,只要4條線就可以控制元件;另一個好處是,相同的4條線,還能連接多個I2C裝置。在省下接線時間的同時,這邊稍微說明一下其運作概念(詳情還請自行研究)。
各位在唸書時,應該都曾經在教室內的廣播聽到,「W年X班YYY同學,請到ZZ處!」,I2C協定也雷同此方式。
樹莓派透過SCL、SDA線路下達要動作的位址及指令,且此線路可能連接多個設備,故I2C轉換電路必須篩選特定位址,才進行指令的接收與執行。
究竟手邊拿到的LCD1602模組的位址編號是多少呢?透過上圖右,其位址分佈範圍在0x20 ~ 0x27及0x38 ~ 0x3F(0x表示十六進制值)。
先觀看晶片編號是PCF8574AT或是PCF8574T,這樣就可以把範圍分成兩部份。接著再觀看圖中「粉紅色」圈選處,共有三組金屬接點(下方會標記:A0、A1、A2),若金屬接點沒有連接在一起,判讀為0;若有連接,判讀為1。如此就能查詢上圖右表了。
一般常見狀態是A0 ~ A2都沒有連接,故判讀為 0 0 0,所以位址編號不是0x3F,就是0x27。
# 實作步驟
- 學習使用
- 設計電路圖
- 連接電路
- 搭建積木程式 & 執行
# 學習使用
利用LCD1602顯示模組來報時吧!
# 設計電路圖
電路圖設計如下:
# 連接電路
實際線路如下圖,建議連接步驟如下,若您要移除電路時,請使用相反的順序進行即可。
- 於麵包板上連接相關元件
- 資料、控制腳位連接上樹莓派
- GND腳位連接上樹莓派
- VCC(5V or 3.3V)腳位連接上樹莓派
# 搭建積木程式 & 執行
開啟積木程式畫面如下,若您已經下載代理程式,並且完成「rp_agent」設定,可以將首次使用須知下方的框框,勾選「不再顯示此訊息」,並按下「確定」按鈕。
PS. cwBlockly頁面請於樹莓派中執行。
初始畫面如下。
控制LCD1602的積木位於「顯示元件」→「LCD1602顯示模組」。
拖曳「LCD1602定義積木」至RPi預設積木中。
此定義積木可設定其I2C的位址及是否開啟LCD背光效果。
為了確認此元件的真實I2C位址,我們先執行一下程式吧!
若是第一次使用此積木,程式會為此環境安裝相依的程式套件(RPLCD),請稍等一下。
接著在LX終端機中,可以看到有效的I2C位址表(如下圖),因目前只安裝一個I2C裝置,所以此裝置的I2C位址是0x3f。
眼尖的您肯定發現,這個位址(0x3f)不就跟積木設定的0x27不相同嗎?
是的!所以在「LX終端機」中,就看到了錯誤訊息。
修正方式就是將「I2C位址」設定成「0x3F」。
在開始顯示文字之前,通常會先將螢幕內容清除,可以在「顯示元件」→「LCD1602顯示模組」,找到清除的積木,並將其加入。
接下來就要進入主題了,為了讓LCD1602持續的顯示時間,我們需要一個無限迴圈。
顯示文字的步驟是先設定座標位置,也就是游標位置,稍後文字從該位置開始出現。
試著下拉座標軸的數據,首先是X軸,表示水平位置,其範圍是0 ~ 15(16個字),再來是Y軸,表示垂直位置,其範圍是0 ~ 1(2個字),所以此模組才被稱為LCD1602。
第一橫行要呈現日期,先從「顯示元件」→「LCD1602顯示模組」,放置顯示積木。
當前日期的積木,可以從「文字」項目中取得。
按照類似的步驟,在「第二橫行」呈現「當前時間」。
此時千萬別急著執行!因無限迴圈內還少一個積木,目前會造成CPU高負載!
解決辦法是放入一個延遲時間的積木即可。
下載本範例積木程式 lcd1602_01.rpb。
# 常見問題
怎麼了!沒看到文字嗎?別慌張,應該是螢幕對比的問題,請將LCD1602模組翻到背面,並準備一個小的十字起子,將起子如下圖方式擺放。
以順、逆時鐘方向轉動,直到內容顯示清晰為止。
若您對基礎電子套件有興趣,可至蝦皮賣場購買,若是學校團體亦可來信訂購,謝謝。
若對本篇教學文章有任何建議或問題,歡迎您來信:chipwaygo@gmail.com,謝謝。