2016年5月30日 星期一

Arduino UNO學習262.螢幕轉接板IIC/I2C



Arduino UNO學習262.螢幕轉接板IIC/I2C

在學習260261使用了1602螢幕,會發現佔用了太多的Arduino接口,
而且接線易接觸不良,文字亮度不易控制等等問題,
所以有業者開發了IIC(I2C)螢幕轉接板,來串接多達16Pin的螢幕,
有內建的電位器來調整亮度,另有跳腳可開關背光,
最重要的是接上Arduino16針腳縮減為4,

硬體除了接上5VGND,2腳的SDASCL直接在Arduin上左的腳位,
SDASCL,如圖 ,由於類比腳A4A5也相通於該2腳位,因此也可接於A4A5,, 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,調整為0x270x200x38外接板指定的通信位址,再重新上傳,若無誤,打開Arduino的監控視窗,輸入文字試試,目前的軟硬體都不支援中文字碼,相關大神網址參考,
http://arduino-info.wikispaces.com/LCD-Blue-I2C



沒有留言:

張貼留言