I2C - 使用LCD並在LCD上顯示資料
材料準備
- Ameba x 1
- Funduino I2C 2×16 LCD
範例說明
一般LCD有許多pin腳, 以手上這片LCD為例有16個pin
直接控制LCD的話會用掉許多pin, 在資料處理上也很麻煩, 所以一般LCD會有額外的控制晶片幫忙處理, 並且使用I2C介面控制這塊控制晶片。
直接控制LCD的話會用掉許多pin, 在資料處理上也很麻煩, 所以一般LCD會有額外的控制晶片幫忙處理, 並且使用I2C介面控制這塊控制晶片。
在Ameba RTL8195上使用I2C控制LCD的接法:
在Ameba RTL8710上使用I2C控制LCD的接法:
打開範例, “File” -> “Examples” -> “AmebaWire” -> “LcdHelloWorld”, 編譯並上傳到Ameba, 完成後按Reset按鈕。
範例裡, LCD第一行出現 “Hello World”, 第二行出現 “Ameba”:
等8秒之後出現提示可以從Serial Monitor輸入要顯示的字串:
在 Serial Monitor 輸入 “123456789” 之後 按下 “Send”, 顯示在LCD上:
程式碼說明
每款LCD的I2C控制板需要設定的內容都不一樣,
範例裡使用的constructor:
範例裡使用的constructor:
LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t backlighPin, t_backlighPol pol);
設定的內容如下:
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Set the LCD I2C address
其中I2C的address是0x27, 後面八個參數代表1個byte裡, 每個bit代表的意義, 其中En為Bit 2, Rw為Bit 1, Rs為 Bit 0, d4為bit 4, 以此類推
每款LCD需要設定的內容可能不一樣, 要參考datasheet做設定。
呼叫 backlight()
, 打開背光使螢幕亮起,
呼叫 setCursor(0, 0)
指定游標的位置, 第一個參數是行, 第二個參數是列
LCD 繼承了Print class, 所以可以使用 lcd.print()
來輸出要顯示的字串。
Realtek IoT/Wi-Fi MCU Solutions . All Rights Reserved. 使用條款