/*
Bài tập 1: Hiểu cơ bản về I2C trên ESP32
Lý thuyết:
• Tìm hiểu giao thức I2C và cách nó hoạt động. Giải thích các khái niệm Master, Slave,
SDA (Data), và SCL (Clock).
• ESP32 có thể hoạt động với I2C như thế nào? Liệt kê các chân I2C mặc định trên ESP32.
Thực hành:
• Sử dụng Wokwi, cấu hình một hệ thống với ESP32 và một màn hình OLED SSD1306,
kết nối thông qua giao thức I2C.
• Lập trình ESP32 hiển thị một chuỗi ký tự đơn giản lên màn hình OLED (ví dụ: "Hello,
LHU!").
*/
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // Chiều rộng của OLED, tính bằng pixel
#define SCREEN_HEIGHT 64 // Chiều cao của OLED, tính bằng pixel
// tạo một đối tượng màn hình OLED kết nối với I2C
Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
void setup() {
Serial.begin(9600);
// khởi tạo màn hình OLED với địa chỉ I2C là 0x3C
if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("khởi tạo SSD1306 OLED thất bại"));
while (1);
}
delay(2000); // đợi 2 giây để khởi tạo
oled.clearDisplay(); // xóa màn hình
oled.setTextSize(1); // thiết lập kích thước chữ
oled.setTextColor(WHITE); // thiết lập màu chữ
oled.setCursor(0, 2); // thiết lập vị trí để hiển thị (x,y)
oled.println("Hello, LHU!"); // thiết lập nội dung văn bản
oled.display(); // hiển thị trên OLED
}
void loop() {
}