26 May 2020 - Tien Cao-hoang
Giao tiếp màn hình 1.3” OLED SH1106 với Arduino Zero
Màn hình OLED giao tiếp với Arduino qua chuẩn I2C. Sơ đồ kết nối:
Arduino Zero | OLED |
---|---|
GND | GND |
3.3V | VCC |
SDA | SDA |
SCL | SCL |
Sử dụng thư viện U8g2, thư viện này hỗ trợ rất nhiều loại màn hình như: SSD1305, SSD1306, SSD1309, SSD1322, SSD1325, SSD1327, SSD1329, SSD1606, SSD1607, SH1106, SH1107, SH1108, SH1122, T6963, RA8835, LC7981, PCD8544,…
#include <Arduino.h>
#include <U8g2lib.h>
#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif
U8G2_SH1106_128X64_NONAME_1_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
void setup(void) {
u8g2.begin();
u8g2.enableUTF8Print(); // enable UTF8 support for the Arduino print() function
}
void loop(void) {
//u8g2.setFont(u8g2_font_unifont_t_chinese2); // use chinese2 for all the glyphs of "你好世界"
u8g2.setFont(u8g2_font_b10_t_japanese1); // all the glyphs of "こんにちは世界" are already included in japanese1: Lerning Level 1-6
u8g2.setFontDirection(0);
u8g2.firstPage();
do {
u8g2.setCursor(0, 15);
u8g2.print("Hello World!");
u8g2.setCursor(0, 40);
u8g2.print("こんにちは世界"); // Japanese "Hello World"
} while ( u8g2.nextPage() );
delay(1000);
}