2017年12月13日 星期三

arduino溫濕度計輸出LCD(二) LCD顯示Hello World!

LCD輸出真得很折騰...
試了很多次無法成功,因為不同廠牌的I2C程式碼有點不同,可能要注意

一樣丟關鍵字餵狗"LCD arduino"
【自造學堂】Arduino如何透過I2C控制LCD模組
Arduino 使用 1602 IIC(I2C) LCD 點陣液晶模組   (這個文章的輸入部份我試不出來)

先按圖索驥接好裝置

開啟arduino程式→草稿碼→匯入程式庫→管理程式庫搜尋"newliquidcrystal" →選第一個"Newliquidcrystal_1.3.5"→ 安裝

  • 20200703更新:後來發現Newliquidcrystal無法在程式庫裡面找到了,所以可以點連結下載
    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完全沒有反應,所以可能在這邊要注意一下。
  • 沒有留言:

    張貼留言