ESP32 晶片原本有 2 組 I2C 介面, 它的 Arduino Core 預設支援一組I2C, IO21為SDA, IO22為SCL, 要注意的是:
- 須選用3.3V的LCD模組
- 因為 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 ); } |
文章標籤
全站熱搜
留言列表