實驗說明:
通常物聯網產品在設計上都會具備一個資訊顯示裝置,觀察一下我們周邊的常見的電子產品,是不是也都有個小螢幕與我們產生互動?舉例來說,計算機的螢幕可以顯示數字與運算的結果,智慧手錶中的螢幕除了可以顯示目前時間,甚至還是顯示重要文字訊息。在 Arduino 系統中,最常使用便宜又大碗的LCD1602的液晶顯示器,可以顯示單一列16個字元的長度,一次可以顯示兩列。下圖為實際的LCD1602顯示螢幕。現在米羅就來跟各位介紹ESP32 搭配LCD 1602 I2C 模組使用方式。
材料:
- ESP32-E DevKit
- USB 傳輸線
- 1602 I2C 顯示模組
- 麵包板
- 杜邦線
▼ 購買IoT物聯網學習教材:
相關知識:
I2C(Inter-Integrated Circuit)是一種兩線序列式通訊方式,可用於微控制器及其周邊設備的連接。I2C 傳輸有兩條線,一條叫做 SDA(serial data),專門用來送資料,另一條叫做 SCL(serial clock),是用來傳clock。使用 I2C 通訊的設備必須連接到SDA和SCL稱為 I2C Bus。 每個設備都有一個唯一的地址,可以用作發送器或接收器與連接到I2C Bus的設備進行通信。
安裝 LiquidCrystal I2C 程式庫
本次試驗使用arduino直接驅動1602液晶顯示文字,需安裝 LiquidCrystal I2C函式庫。
- 下載LiquidCrystal I2C函式庫 : 載點
- 在 Arduino 整合環境功能表點選 草稿碼 / 匯入程式庫 / 加入.ZIP程式庫
▼選擇剛剛所下載的「 LiquidCrystal_I2C-master.zip 」加入程式庫。
程式:
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display
void setup()
{
lcd.init(); // initialize the lcd
// Print a message to the LCD.
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Hello, world!");
lcd.setCursor(0,1);
lcd.print("MiroTek");
}
void loop()
{
}
Troubleshooting:
- 必須使用5V : LCD需使用5V電壓,否則背光會很黯淡,甚至看不到顯示內容。
- LCD顯示螢幕的背面有一個藍色電位器(對比調整旋鈕 )。您可以轉動電位器來調整對比度,可以使屏幕變亮或變暗,並且讓字幕變得更明顯。
- 背光接口需要經由Jump將腳位短路,若是Jump遺失可使用母母杜邦線對接。