在本教程中,詳細記錄了怎麼用樹莓派控制LCD液晶顯示器,即使對電路一無所知,按教程走也能完成配置。
16×2 LCD顯示器很簡單,不同於觸控螢幕或者普通的液晶顯示屏,最適合用來顯示簡訊息。
設備清單本篇樹莓派LCD教程所需的設備如下。
建議材料可選材料 樹莓派16×2液晶屏的電路看上去這個電路的內容挺多的,但只需要把顯示器和顯示器之間的線正確連接起來就可以了。
電路中的電位器是控制屏幕亮度的關鍵。如果你沒有電位器,可以嘗試將其換成電阻。如果使用電阻,可以嘗試使用5k和10k歐姆之間的電阻。在得到完美的電阻之前,可能需要嘗試幾個不同的值。
一個典型的16×2液晶顯示器有16個引腳,但並不是所有的引腳都需要使用。在這個電路中,只需要使用4條數據總線線,因為只是在4位模式下使用它。
大多數16連接器的顯示器使用HD44780控制器。這個控制器讓顯示器變得更通用,可以在多種設備上使用。例如,這個顯示器我之前在Arduino的LCD教程中使用過。
LCD的引腳布局如下:
組裝16×2 LCD你會發現,大多數16×2顯示器沒有預焊頭針。
如果沒有排針的話,要用電烙鐵把排針焊到LCD上,沒有排針的話操作比較麻煩,焊接非常容易。
連接電路將16×2的液晶顯示器連接到樹莓派上非常簡單,雖然會有不少線要連接起來,但並沒有什麼太複雜的地方。
在開始組裝電路之前,有一件事是應該注意的。由於我們不想讓5v的電壓反饋到Pi上(Pi的GPIO引腳的額定電壓為3v3),需要讓LCD的讀/寫引腳接地。
在下面的步驟中,引腳的物理/邏輯編號在括號中,否則就是GPIO編號。
從液晶顯示屏的1號引腳開始做以下工作,或者直接參考下面的電路圖。屏幕的1號引腳是最靠近電路板兩個邊緣的引腳。
與16×2顯示器通信的代碼在最新版本的Raspbian上,所有與GPIO設備通信所需的軟體包都已預裝。你也應該發現已經安裝了python。
如果你的是舊版本的Raspbian,可能需要查看更多關於設置Pi使用GPIO的信息。
對Python有基本的了解會讓你的操作輕鬆很多,不過,本教程在沒有任何Python經驗的情況下應該也是可以完成的。
所需要的庫在這個例子中,我會安裝並使用Adafruit的庫。它是為Adafruit LCD板設計的,但也可以與其他品牌的板子一起工作。如果你的顯示板使用的是HD44780控制器,那麼它作應該沒有任何問題。
首先,運行下面的命令將所需的git目錄克隆到樹莓派上。
git clone https://github.com/pimylifeup/Adafruit_Python_CharLCD.git接下來換到剛才克隆的目錄中,運行設置文件。
cd ./Adafruit_Python_CharLCD
sudo python setup.py install一旦安裝完成,就可以在Pi上的Python腳本中調用Adafruit庫。在Python腳本的頂部添加以下一行,就可以引入該庫。然後就可以初始化電路板並對其進行操作。
import Adafruit_CharLCD as LCD
與顯示器通信Adafruit提供的庫與樹莓派 LCD 16×2顯示器的通信非常簡單。編寫Python腳本來設置和改變顯示屏變得非常容易。
在剛剛下載的文件夾中,有一些關於如何使用LCD庫的例子。在運行這些例子之前,要更新文件頂部的引腳變量。如果按照我的電路操作,下面的值就是正確的。
lcd_rs = 25
lcd_en = 24
lcd_d4 = 23
lcd_d5 = 17
lcd_d6 = 18
lcd_d7 = 22
lcd_backlight = 4
lcd_columns = 16
lcd_rows = 2如果你想查看其中一個例子,可以進入examples中,查看這些文件:
cd ~/Adafruit_Python_CharLCD/examples/sudo nano char_lcd.py在這裡更新引腳配置值到上面列出的那些。完成後,按CTRL + X然後按Y鍵退出即可。
現在運行這段代碼。
python char_lcd.py
函數和Python代碼現在了解使用Python與屏幕交互的方法。
要初始化引腳,需要調用以下類。在調用該類之前,請確保所有作為參數傳遞的變量都被定義。
lcd = LCD.Adafruit_CharLCD(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_columns, lcd_rows, lcd_backlight)一旦完成了這些工作,就可以將顯示效果改成需要的樣子。快速介紹一些用Adafruit庫的方法。
home() – 這個方法將把光標移回原點,也就是第一行的第一列。
clear() – 這個方法可以清除LCD,使其完全空白。
set_cursor(col, row) – 本方法將光標移動到一個特定的位置。你可以通過傳遞列號和行號作為參數來指定位置。例如:set_cursor(1,4)
enable_display(enable) – 此項用於啟用或禁用顯示器。將其設置為 true 即可啟用。
show_cursor(show) – 顯示或隱藏光標。如果你想顯示光標,請將其設置為true。
blink(blink) – 打開或關閉閃爍的光標。如果您想讓光標閃爍,請再次將其設置為true。
move_left()或 move_right() – 將光標向左或向右移動一個位置。
set_right_to_left()或set_left_to_right()-設置光標的方向為從左到右或從右到左。
autoscroll(autoscroll) – 如果將autoscroll設置為true,那麼文本將從光標處右對齊。如果設置為false,則文本將左對齊。
message(text) – 簡單地將文本寫到顯示屏上。你也可以在信息中加入新的行數(\n)。
還有一些可用的方法,但你不太可能需要使用它們。如果你想找到所有可用的方法,只要打開Adafruit_CharLCD文件夾內的Ardafruit_CharLCD.py文件即可,這個文件可以在Adafruit_Python_CharLCD文件夾內找到:
sudo nano ~/Adafruit_Python_CharLCD/Adafruit_CharLCD/Ardafruit_CharLCD.py下面是我整理的一個簡單的腳本,允許用戶輸入文字,然後顯示在屏幕上。
#!/usr/bin/python
# Example using a character LCD connected to a Raspberry Pi
import time
import Adafruit_CharLCD as LCD
# Raspberry Pi pin setup
lcd_rs = 25
lcd_en = 24
lcd_d4 = 23
lcd_d5 = 17
lcd_d6 = 18
lcd_d7 = 22
lcd_backlight = 2
# Define LCD column and row size for 16x2 LCD.
lcd_columns = 16
lcd_rows = 2
lcd = LCD.Adafruit_CharLCD(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_columns, lcd_rows, lcd_backlight)
lcd.message('Hello\nworld!')
# Wait 5 seconds
time.sleep(5.0)
lcd.clear()
text = raw_input("Type Something to be displayed: ")
lcd.message(text)
# Wait 5 seconds
time.sleep(5.0)
lcd.clear()
lcd.message('Goodbye\nWorld!')
time.sleep(5.0)
lcd.clear()如果python腳本運行時,顯示屏沒有顯示任何內容,那麼很可能是腳本中定義的引腳有問題。仔細檢查這些,也仔細檢查麵包板上的連接。
最後本教程涵蓋了用樹莓派正確設置16×2液晶顯示屏的基本知識,它還能做很多有趣的項目。
例如,可以在啟動時啟動一個腳本,可以顯示特定的值,如IP位址,時間,溫度等等。
此外,還有大量酷炫的傳感器,可以嘗試與顯示器結合,像DS18B20溫度傳感器就可以和顯示器配合使用,只需每隔幾秒鐘更新一次顯示屏的新溫度即可。
希望本教程對你設置樹莓派LCD 16×2顯示屏有所幫助。如果在閱讀過程中發現了錯誤,或者遇到問題,請在下面留言。
- END -