2017年6月4日 星期日

ESP32 使用 I2C LCD

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

沒有留言:

張貼留言