#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // Độ rộng màn hình OLED
#define SCREEN_HEIGHT 64 // Độ cao màn hình OLED
#define OLED_RESET -1 // Chân reset OLED (không cần nếu kết nối qua I2C)
// Địa chỉ I2C của 2 màn hình OLED
#define OLED_ADDR_1 0x3C
#define OLED_ADDR_2 0x3D
// Tạo đối tượng cho 2 màn hình OLED
Adafruit_SSD1306 display1(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
Adafruit_SSD1306 display2(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
void setup() {
// Khởi động kết nối Serial để nhập dữ liệu từ bàn phím
Serial.begin(115200);
// Khởi động màn hình OLED thứ nhất
if (!display1.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR_1)) {
Serial.println(F("Không tìm thấy màn hình OLED 1"));
for (;;);
}
// Khởi động màn hình OLED thứ hai
if (!display2.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR_2)) {
Serial.println(F("Không tìm thấy màn hình OLED 2"));
for (;;);
}
// Xóa cả hai màn hình ban đầu
display1.clearDisplay();
display2.clearDisplay();
// Hiển thị một thông báo ban đầu
display1.setTextSize(1);
display1.setTextColor(SSD1306_WHITE);
display1.setCursor(0, 0);
display1.println(F("Man hinh 1 san sang"));
display1.display();
display2.setTextSize(1);
display2.setTextColor(SSD1306_WHITE);
display2.setCursor(0, 0);
display2.println(F("Man hinh 2 san sang"));
display2.display();
}
void loop() {
// Kiểm tra xem có dữ liệu nhập vào từ Serial không
if (Serial.available()) {
String input = Serial.readStringUntil('\n'); // Đọc dữ liệu đến khi xuống dòng
input.trim(); // Loại bỏ khoảng trắng ở đầu và cuối
// Kiểm tra dữ liệu nhập có đúng định dạng "1: text" hoặc "2: text"
if (input.startsWith("1:")) {
String text = input.substring(2); // Lấy phần văn bản sau "1:"
display1.clearDisplay(); // Xóa màn hình 1
display1.setCursor(0, 0); // Đặt vị trí con trỏ
display1.println(text); // In văn bản lên màn hình 1
display1.display(); // Hiển thị văn bản
} else if (input.startsWith("2:")) {
String text = input.substring(2); // Lấy phần văn bản sau "2:"
display2.clearDisplay(); // Xóa màn hình 2
display2.setCursor(0, 0); // Đặt vị trí con trỏ
display2.println(text); // In văn bản lên màn hình 2
display2.display(); // Hiển thị văn bản
}
}
}