ESP32 晶片原本有 2 組 I2C 介面, 它的 Arduino Core 預設支援一組I2C, IO21為SDA, IO22為SCL, 要注意的是:

  1. 須選用3.3V的LCD模組
  2. 因為 ESP32 使用 4 組 timer 去支援 16ch 的 PWM, 且須先使用 attach 將某個 ch 與 pin 連接, 因此沒有原生的 AnalogWrite(), 而是使用ledcAnalogWrite(), 導致某些版本的 I2CLCD 程式庫編譯時會發生錯誤, 因此須使用直接呼叫Wire程式庫的版本, 例如 https://github.com/esp8266/Basic/tree/master/libraries/LiquidCrystal

以下為主程式:

#include <Wire.h>

#include "LiquidCrystal_I2C.h"

 

//LiquidCrystal_I2C lcd(0x27);  // Set the LCD I2C address

LiquidCrystal_I2C  lcd(0x27,2,1,0,4,5,6,7);

void setup()

{

  Serial.begin(115200);

  lcd.begin (16,2); // for 16 x 2 LCD module

  lcd.setBacklightPin(3,POSITIVE);

  lcd.setBacklight(HIGH);

}

void loop()

  lcd.home ();                 

  lcd.print("Hello, ESP32"); 

  lcd.setCursor ( 0, 1 );     

  lcd.print (" by Ghosty   ");

  delay ( 1000 );

}

 

完整程式碼: https://github.com/ghostyguo/ESP32_I2C_LCD_Test

arrow
arrow
    文章標籤
    ESP32
    全站熱搜

    ghostyguo 發表在 痞客邦 留言(0) 人氣()