Arduino UNO學習262.螢幕轉接板IIC/I2C
在學習260和261使用了1602螢幕,會發現佔用了太多的Arduino接口,
而且接線易接觸不良,文字亮度不易控制等等問題,
所以有業者開發了IIC(I2C)螢幕轉接板,來串接多達16Pin的螢幕,
有內建的電位器來調整亮度,另有跳腳可開關背光,
最重要的是接上Arduino的16針腳縮減為4腳, ↓
硬體除了接上5V及GND,另2腳的SDA及SCL直接在Arduin上左的腳位,
SDA和SCL,如圖 ↓,由於類比腳A4和A5也相通於該2腳位,因此也可接於A4和A5,, SDA=A4,,SCL=A5 ↓
軟體需先安裝I2C資料庫,以下連結擇一下載解壓後安裝到Arduino\libraries ↓
https://drive.google.com/open?id=0B_hzaKBiDSLgQ1I4NURadUV2WTA
https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads
完成軟硬體安裝後執行Arduino程式,在範例裡會多出NewliquidCrystal,
在此學習不使用該範例, ↓
回到編寫視窗上將程式貼上後上傳 ↓
#include <Wire.h>
#include <LiquidCrystal_I2C.h> //務必先安裝資料庫
LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5,
6, 7, 3, POSITIVE); //設定位址
void setup() {
Serial.begin(9600); //監控視窗通訊速率
lcd.begin(16, 2); //初始化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("Hello, world!");
lcd.setCursor(0, 1); //第二行顯示
lcd.print("www.ee543.com");
}
//開啟監控視窗輸入文字顯示在外接螢幕上
void loop() {
if
(Serial.available()) {
delay(100);
lcd.clear();
while (Serial.available() > 0) {
lcd.write(Serial.read());
}
}
}
若一切正常螢幕會先閃爍三下,然後顯示文字如上圖,若只看到黑塊,則取十字起子,調整背面的電位器,若還是沒有,請查看手上的外接板的通信位址,修改第三行的0x3F,調整為0x27或0x20或0x38外接板指定的通信位址,再重新上傳,若無誤,打開Arduino的監控視窗,輸入文字試試,目前的軟硬體都不支援中文字碼,相關大神網址參考,
http://arduino-info.wikispaces.com/LCD-Blue-I2C
沒有留言:
張貼留言