試了很多次無法成功,因為不同廠牌的I2C程式碼有點不同,可能要注意
一樣丟關鍵字餵狗"LCD arduino"
【自造學堂】Arduino如何透過I2C控制LCD模組
Arduino 使用 1602 IIC(I2C) LCD 點陣液晶模組 (這個文章的輸入部份我試不出來)
先按圖索驥接好裝置
開啟arduino程式→草稿碼→匯入程式庫→管理程式庫搜尋"newliquidcrystal" →選第一個"Newliquidcrystal_1.3.5"→ 安裝
NewLiquidCrystal_1.5.1.zip,或是(點這裡)下載後,arduino程式→草稿碼→匯入程式庫→加入zip程式庫 處理
或者也可以換成liquidcrystal原生程式庫,參考Arduino練習:以LiquidCrystal程式庫控制LCD(相容於Hitachi HD44780)
根據第一篇文章修改成以下樣子,上傳到板子就可以了
// Arduino IDE 內建
#include <Wire.h>
// LCD I2C Library,從這裡可以下載:
// https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads
#include <LiquidCrystal_I2C.h>
// Set the pins on the I2C chip used for LCD connections:
// addr, en,rw,rs,d4,d5,d6,d7,bl,blpol
// 設定 LCD I2C 位址,兩種不同晶片有不同設定方式,如果第一個不行請改第二個
LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
//LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
void setup() {
// 初始化 LCD,一行 16 的字元,共 2 行,預設開啟背光
lcd.begin(16, 2);
// 閃爍三次
for(int i = 0; i < 3; i++) {
lcd.backlight(); // 開啟背光
delay(250);
lcd.noBacklight(); // 關閉背光
delay(250);
}
lcd.backlight();
// 輸出初始化文字
// 設定游標位置在第一行行首
lcd.setCursor(0, 0);
lcd.print("LCDtest");
delay(1000);
// 設定游標位置在第二行行首
lcd.setCursor(0, 1);
lcd.print("Hello, World!");
delay(6000);
// 顯示清除
lcd.clear();
}
void loop() {
// 設定游標位置在第一行行首
lcd.setCursor(0, 0);
lcd.print("count");
// 設定游標位置在第二行行首
lcd.setCursor(0, 1);
lcd.print(millis()/1000);
}
注意這兩行,會根據板子要設定成不一樣的程式
// 設定 LCD I2C 位址,兩種不同晶片有不同設定方式,如果第一個不行請改第二個
LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
//LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
我買的兩塊板子就有不同
上面那塊要設定成LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
下面那塊要設定成LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
如果設定錯誤還是可以上傳到板子,不過LCD完全沒有反應,所以可能在這邊要注意一下。
沒有留言:
張貼留言