字符型LCD使用指南:從入門到實(shí)踐
一、概述
字符型LCD是電子項(xiàng)目中常用的顯示設(shè)備,在Arduino項(xiàng)目里,它能快速顯示項(xiàng)目狀態(tài)信息。Adafruit售賣多種字符型LCD,像“標(biāo)準(zhǔn)”藍(lán)白16x2、RGB 16x2、“標(biāo)準(zhǔn)”藍(lán)白20x4和RGB 20x4等。這些LCD采用低功耗LED背光,工作電壓為+5V,僅需6個(gè)數(shù)據(jù)引腳就能通信,且引腳可任意選擇。不過要注意,本教程僅適用于Adafruit售賣的LCD,其他LCD可能不適用。
文件下載:198.pdf
二、字符型LCD與圖形LCD的區(qū)別
LCD種類繁多,本教程聚焦于字符型LCD。字符型LCD適合顯示文本,也能顯示小圖標(biāo),但圖標(biāo)尺寸通常只有5x7像素左右。例如16字符x2行的字符型LCD,仔細(xì)觀察能看到顯示字符的小矩形,每個(gè)矩形是像素網(wǎng)格。而圖形LCD有一個(gè)大的像素網(wǎng)格(如128x64),雖能顯示文本,但更擅長顯示圖像。圖形LCD通常更大、更貴、使用更復(fù)雜,且因復(fù)雜度高需要更多引腳。
三、LCD的不同類型
字符型LCD雖只能顯示文本,但形狀多樣,有20x4藍(lán)底白字、16x4綠底黑字、16x2藍(lán)底白字和16x1灰底黑字等。好消息是這些顯示器可互換,項(xiàng)目中更換不同尺寸的LCD時(shí),雖然代碼可能需調(diào)整,但布線相同。教程中主要使用單排16引腳的LCD,還有雙排8引腳的,但這種在面包板上布線較難,可參考此頁面獲取幫助。
四、字符型LCD的布線
(一)安裝引腳
有了LCD后,還需一個(gè)10K電位器來調(diào)節(jié)對比度,以及16針0.1英寸的引腳。若引腳過長可剪短,然后將引腳焊接到LCD上,不能簡單壓接,焊接時(shí)要注意避免過熱損壞面包板,可先焊1號(hào)和16號(hào)引腳,再取下完成其余焊點(diǎn),將引腳插入面包板,把LCD放在上面焊接可保持穩(wěn)定。
(二)供電與背光
將LCD插入面包板,給面包板供電,將+5V連接到紅色軌道,接地連接到藍(lán)色軌道。連接LCD的背光,將16號(hào)引腳接地,15號(hào)引腳接+5V。大多數(shù)LCD(包括Adafruit的)已內(nèi)置LED背光的串聯(lián)電阻,若沒有則需添加,根據(jù)數(shù)據(jù)手冊計(jì)算電阻值,若找不到數(shù)據(jù)手冊,使用220歐姆電阻較安全,但可能使背光較暗。連接Arduino電源后,背光應(yīng)亮起,部分低價(jià)LCD可能無背光。
(三)對比度電路
將對比度電位器放在靠近1號(hào)引腳的一側(cè),將電位器一側(cè)接+5V,另一側(cè)接地,中間引腳(滑動(dòng)端)連接到LCD的3號(hào)引腳。打開Arduino,若有背光會(huì)亮起,旋轉(zhuǎn)電位器可看到第一行矩形出現(xiàn),這表明邏輯、背光和對比度都已調(diào)好。
(四)總線布線
LCD有11條總線線路:D0 - D7(8條數(shù)據(jù)線)、RS、EN和RW。其中RW在僅向顯示器寫入數(shù)據(jù)時(shí)可不連接,可將其接地;也可使用4條數(shù)據(jù)線而非8條,節(jié)省引腳。我們只需6個(gè)引腳(RS、EN、D7、D6、D5、D4)與LCD通信,使用LiquidCrystal庫可簡化引腳設(shè)置。具體布線如下:
- RW引腳(5號(hào))接地。
- RS引腳(4號(hào))用棕色線連接到Arduino數(shù)字引腳7。
- EN引腳(6號(hào))用白色線連接到Arduino數(shù)字引腳8。
- DB7(14號(hào)引腳)用橙色線連接到Arduino 12號(hào)引腳。
- DB6(13號(hào)引腳,黃色)、DB5(12號(hào)引腳,綠色)和DB4(11號(hào)引腳,藍(lán)色)分別連接到Arduino 11、10和9號(hào)引腳。
五、Arduino代碼
Arduino已內(nèi)置LiquidCrystal庫,只需加載示例并根據(jù)使用的引腳修改代碼。例如,將LiquidCrystal lcd(12, 11, 5, 4, 3, 2);改為LiquidCrystal lcd(7, 8, 9, 10, 11, 12);以匹配引腳表。編譯并上傳代碼,必要時(shí)調(diào)整對比度。不同尺寸和顏色的LCD都可使用,如20x4 LCD或綠底黑字的LCD,部分綠底黑字LCD可能無背光。
(一)多行顯示問題
LCD處理長消息和多行顯示時(shí),16x2 LCD會(huì)截?cái)喑^16個(gè)字符的內(nèi)容,20x4 LCD會(huì)將第一行內(nèi)容換行到第三行(第二行到第四行),這是LCD內(nèi)存配置的問題,目前尚無完美解決方案,編寫長行內(nèi)容時(shí)需注意字符數(shù)量,避免溢出。
六、RGB背光LCD
Adafruit有多種RGB背光LCD,其工作原理與普通字符型LCD相同,但背光有紅、綠、藍(lán)三個(gè)LED,可生成任意顏色。布線并測試LCD后,將LED連接到Arduino的PWM模擬輸出引腳以精確設(shè)置顏色,使用剩余的三個(gè)PWM引腳,將紅色LED(LCD 16號(hào)引腳)連接到數(shù)字3,綠色LED(LCD 17號(hào)引腳)連接到數(shù)字5,藍(lán)色LED(LCD 18號(hào)引腳)連接到數(shù)字6,LCD已內(nèi)置電阻,無需額外添加。上傳特定代碼可使LCD背景光循環(huán)變色。
七、Python與CircuitPython
使用Adafruit CircuitPython CharLCD模塊,可輕松用CircuitPython或Python控制字符型LCD(單背光或RGB背光)??稍谌魏蜟ircuitPython微控制器板或有GPIO和Python的計(jì)算機(jī)上使用。
(一)CircuitPython微控制器布線
按照Arduino的布線方式將字符型LCD連接到板上。單顏色背光LCD的布線示例:
- 板5V連接到LCD 2號(hào)引腳和電位器一側(cè)。
- 板GND連接到LCD 1、5、16號(hào)引腳和電位器另一側(cè)。
- 電位器輸出(中間引腳)連接到LCD 3號(hào)引腳。
- 板D7 - D14分別連接到LCD 4、6、11 - 14號(hào)引腳。
- 板D13連接到LCD 15號(hào)引腳。
RGB背光LCD的布線示例:除上述連接外,還需將板D3、D5、D6分別連接到LCD 16(紅色背光)、17(綠色背光)、18(藍(lán)色背光)號(hào)引腳,且每個(gè)顏色通道需連接到板上支持PWM的輸出引腳。
(二)Python計(jì)算機(jī)布線
以樹莓派為例,單顏色背光LCD的布線:
- 樹莓派5V連接到LCD 2、15號(hào)引腳和電位器一側(cè)。
- 樹莓派GND連接到LCD 1、5、16號(hào)引腳和電位器另一側(cè)。
- 電位器輸出(中間引腳)連接到LCD 3號(hào)引腳。
- 樹莓派GPIO26 - GPIO27分別連接到LCD 4、6、11 - 14號(hào)引腳。
RGB背光LCD的布線:除上述連接外,還需將樹莓派GPIO21、GPIO12、GPIO18分別連接到LCD 16(紅色背光)、17(綠色背光)、18(藍(lán)色背光)號(hào)引腳,且每個(gè)顏色通道需連接到計(jì)算機(jī)上支持PWM的輸出引腳。
(三)CircuitPython安裝CharLCD庫
需在CircuitPython板上安裝Adafruit CircuitPython CharLCD庫。先確保運(yùn)行最新版本的Adafruit CircuitPython,再從Adafruit的CircuitPython庫捆綁包中安裝必要的庫,非Express板(如Trinket M0或Gemma M0)需手動(dòng)安裝相關(guān)庫,安裝完成后連接到板的串行REPL。
(四)Python安裝CharLCD庫
需安裝Adafruit_Blinka庫以在Python中支持CircuitPython,可能還需在平臺(tái)上啟用I2C并確保運(yùn)行Python 3,然后從命令行運(yùn)行sudo pip3 install adafruit-circuitpython-charlcd(默認(rèn)Python為3版本時(shí)可使用pip)。
(五)Python與CircuitPython使用
使用Python代碼初始化并顯示文本。導(dǎo)入digitalio模塊并定義連接到LCD的引腳,根據(jù)不同的布線方式調(diào)整引腳分配。定義LCD的列數(shù)和行數(shù),導(dǎo)入字符LCD模塊并創(chuàng)建相應(yīng)的實(shí)例(單顏色背光使用Character_LCD_Mono,RGB背光使用Character_LCD_RGB)。通過message屬性打印消息,可使用cursor屬性控制光標(biāo)開關(guān),clear函數(shù)清除顯示內(nèi)容,blink屬性控制光標(biāo)閃爍,move_left和move_right函數(shù)移動(dòng)顯示內(nèi)容。對于RGB背光LCD,可使用color函數(shù)設(shè)置背光顏色。
(六)完整示例代碼
文檔提供了Metro M0/M4和樹莓派的簡單測試示例代碼,可參考代碼實(shí)現(xiàn)基本的顯示功能。
八、Python文檔與自定義字符
可參考Python文檔獲取更多信息。若需要特殊字符,可使用createChar命令,此網(wǎng)站可幫助生成自定義字符。
你在使用字符型LCD的過程中遇到過哪些有趣的問題呢?歡迎在評論區(qū)分享你的經(jīng)驗(yàn)和想法。
-
python
+關(guān)注
關(guān)注
58文章
4890瀏覽量
90356 -
Arduino
+關(guān)注
關(guān)注
190文章
6528瀏覽量
197550
發(fā)布評論請先 登錄
字符型LCD使用指南:從入門到實(shí)踐
評論