Giới thiệu :
Chào các bạn,hôm nay mình xin
giới thiệu các bạn thư viện đồ họa U8G2.Chúng ta sẻ làm một ví dụ cơ bản hiển
thị dữ liệu trên màn hình Oled 128x64 (ở đây mình sử dụng oled
sh1106 với chuẩn giao tiếp I2C) .
Mục tiêu cần nắm:
Cách kết nối Arduino với oled (
tùy theo chuẩn giao tiếp của oled mà bạn chọn)
Các chân giao tiếp I2C của
Arduino.
Giới thiệu sơ lược:
U8G2 là thư viện đồ họa đơn
sắc, được hỗ trợ rất nhiều font chữ và các chức năng hình vẽ (đường /hộp /vòng tròn).
Một số thiết bị được hỗ
trợ: SSD1305, SSD1306, SSD1309, SSD1322, SSD1325, SSD1327,
SSD1329, SSD1606, SSD1607, SH1106, SH1107, SH1122, T6963, RA8835, LC7981,
PCD8544, PCF8812, HX1230, UC1601, UC1604, UC1608, UC1610, UC1611, UC1701,
ST7565, ST7567, ST7588, ST75256, NT7534, IST3020, ST7920, LD7032...
Bạn có thể down thư viện u8g2 trực tiếp từ library manager
của Arduino IDE.
Chân VCC :từ 2v2 đến 5v
Chân GND: nối đất
Chân SCL: Xung clock
Chân SLA: chân Data
Lắp mạch:
Do ở đây mình sử dụng oled 128x64 với giao tiếp i2c nên mình sẻ mắc chân SCL và SLA của Arduino với chân SCL và SLA của oled.Hai chân VCC mắc nguồn 3v3 và GND nối đất.
Code:
#include <U8x8lib.h>
#ifdef U8X8_HAVE_HW_I2C //// Chuẩn giao tiếp
#include <Wire.h>
#endif
void setup(void)
{
u8x8.begin(); /// Khởi tạo thư viện U8G2
}
Void loop {
u8x8.print("U8G2
LIBRARY"); //// Hiển thị
u8x8.setCursor(2,2);/// tại vị trí cột 2 dòng 2
for( i = 10; i > 0; i-- )
{
u8x8.setCursor(3,3); /// cột 3 dòng 3
u8x8.print(i);//// Xuất biến
}
u8x8.drawString(0,
2, "Welcome
to");//// hiển thị cở
chữ nhỏ tại dong 0 cột 2
u8x8.draw2x2String(0, 3, "T2 Group"); //// hiển thị cỡ 2x2 pixel tại dong 0 cột 3
u8x8.clearLine(r);
/// xóa màn hình
}
Tổng kết:
Rất đơn giản ngoài hiển thị cơ bản mình còn sử dụng thêm một số hiệu ứng hay chức năng vẽ mà thư viện U8G2 hỗ trợ các bạn có thể tham khảo clip sau:
Ngoài ra các bạn có thể tự do sáng tạo ra hiệu ứng cho mình dựa theo các chức năng thư viện hỗ trợ.Cảm ơn các bạn đã theo dõi ,có gì thiếu xót mong các bạn đóng góp ý kiến để mình có thể khắc phục và làm tốt hơn xin cảm ơn
Không có nhận xét nào