內容目錄
LCD I2C模組
這裡使用的LCD模組顯示為16×2,也就是一列可以顯示16個字元,共有兩列。背後有焊I2C模組,這樣就只需要I2C的兩條線、Vcc、GND,共4條線就能使用了。
I2C簡單來說就是用2條線來達成資料的傳輸,一條為SDA為序列資料線,另一條為SCL序列時脈線,透過這兩條線就可以將Arudino要顯示的資料傳給LCD模組。
線路連接
ARDUINO UNO | lcd1602 i2c模組 |
---|---|
5V | VCC |
GND | GND |
A4(SDA) | SDA |
A5(SCL) | SCL |
A4、A5的腳位為Arduino Uno 定義的I2C腳位
這是依據Wire程式庫所定義的。
Arduino程式
本篇使用 johnrickman/LiquidCrystal_I2C 程式庫,從Arduino IDE內的程式庫管理員就可以搜尋到並安裝。
#include <Wire.h> // I2C程式庫
#include <LiquidCrystal_I2C.h> // LCD_I2C模組程式庫
// LCD I2C位址,默認為0x27或0x3F,依據背板的晶片不同而有差異,16、2為LCD顯示器大小。
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
// 初始化LCD
lcd.init();
lcd.backlight();
}
void loop() {
// 在LCD上顯示Hello World!
lcd.setCursor(2, 0); // (colum, row)從第一排的第三個位置開始顯示
lcd.print("Hello World!");
lcd.setCursor(2, 1); // (colum,row)從第二排第三格位置開始顯示
lcd.print("Crazy Maker!");
}
可以從螢幕中秀出”Hello World!” 跟”Crazy Maker!” 了~
實際應用
我們之前玩過超音波測距感測器,不過當時是用電腦序列部監控視窗來看量測距離。
但我們現在有LCD這個好東西,就用它來顯示出感測的距離吧~
實際操作影片:
#include <Wire.h> // I2C程式庫
#include <LiquidCrystal_I2C.h> // LCD_I2C模組程式庫
#include <Ultrasonic.h>
// LCD I2C位址,默認為0x27或0x3F,依據背板的晶片不同而有差異,16、2為LCD顯示器大小。
LiquidCrystal_I2C lcd(0x27, 16, 2);
Ultrasonic ultrasonic(13,12); //ultrasonic(trig, echo)
int distance;
String dist;
void setup() {
Serial.begin(115200);
// 初始化LCD
lcd.init();
lcd.backlight();
}
void loop() {
distance= ultrasonic.read();
lcd.setCursor(0, 0);
lcd.print("distance:");
lcd.setCursor(10, 0);
lcd.print(distance);
lcd.print(" ");
lcd.setCursor(14, 0);
lcd.print("cm");
delay(100);
}
最後!! 你喜歡這篇文章,或是這篇文章對你有幫助的話,也歡迎分享出去給需要的人,訂閱免費電子報獲得最新資訊😄😄😄