Results for "U8G2"
Hướng dẫn sử dụng thư viện U8G2-Giao tiếp hiển thị Graphic LCD(GLCD)

Giới thiệu:
Chào các bạn,hôm nay chung ta sẻ tiếp tục với  thư viện đồ họa U8G2 .Mình sẻ làm một ví dụ hiển thì cơ bản lên màn hình Graphic LCD hay còn gọi tắc với tên GLCD ,bằng Arduino IDE.Ta cùng bắt đầu.
Mục tiêu cần nắm : 
Nắm được các pin out của LCD .
Cách kết nối Arduino và LCD .
Chuẩn bị : 
Arduino Uno .
LCD 16x2.
Bread board.
Biến trở 10k

Giới thiệu sơ lược:
Ở bài trước mình đã giới thiệu sơ lược về thư viện U8G2 với nhiều tính năng hỗ trợ các thiết bị khác nhau trong đó có cả GLCD.Bài viết này mình xin giới thiệu các bạn GLCD sử dụng chip KS0108 của SAMSUNG.
Graphic LCD (gọi tắt là GLCD) loại chấm không màu là các loại màn hình tinh thể lỏng nhỏ dùng để hiển thị chữ, số hoặc hình ảnh. Khác với Text LCD (Như LCD 2004, LCD 1602...), GLCD không được chia thành các ô để hiển thị các mã ASCII vì GLCD không có bộ nhớ CGRAM (Character Generation RAM). GLCD 128x64 có 128 cột và 64 hàng tương ứng có 128x64=8192 chấm (dot). Mỗi chấm tương ứng với 1 bit dữ liệu, và như thế cần 8192 bits hay 1024 bytes RAM để chứa dữ liệu hiển thị đầy mỗi 128x64 GLCD. Tùy theo loại chip điều khiển, nguyên lý hoạt động của GLCD có thể khác nhau.
Cách mắc:

Ta kết nối GLCD với Arduino theo cách sau (ở đây mình sử dụng board Arduino uno):
Hai chân A(+) và K(-) là hai chân  Anốt và Katốt của LED nền: A(+) -5V/ K(-)-GND.
Các chân điều khiển ta mắc lần lược theo sau:
Arduino
A0
A1
A2
A3
A4
8
9
10
11
GLCD
CSE1
CSE2
R_W
D_I
EN
D0
D1
D2
D3

Arduino
4
5
6
7
GLCD
D4
D5
D6
D7

Các chân VSS ,VO ,Vout mắc biến trở.
Chân VDD mắc 5v.
Code:
#include <Arduino.h> /// Khai báo thư viện
#include <U8g2lib.h>


U8G2_KS0108_128X64_F u8g2(U8G2_R0, 8, 9, 10, 11, 4, 5, 6, 7, /*enable=*/ 18, /*dc=*/ 17, /*cs0=*/ 14, /*cs1=*/ 15, /*cs2=*/ U8X8_PIN_NONE, /* reset=*/  U8X8_PIN_NONE);
//// Chọn thiết bị hiển thị 


void setup(void) {
  u8g2.begin(); 
}
u8g2.setFont(u8g2_font_ncenB08_tr);    // Chọn Font chữ
            u8g2.drawStr(-2,10,"Welcome to"); // Hiển thị tại dòng 2 cột 10
            delay (100);
            u8g2.drawStr(2,20,"T-2 GROUP");           // Hiển thị tại dòng 2 cột 20

Demo:
Ngoài các hiển thị cơ bản như ví dụ các bạn có thể sử dụng các font hay các tính năng được thư viện đồ họa U8G2 hỗ trợ nhằm tạo ra thêm nhiều hiệu ứng theo ý muốn sáng tạo của mình.
Cảm ơn các bạn đã theo dõi bài viết nếu có sai xót mong các bạn đóng góp ý kiến để các bài viết sau mình có thể cải thiện hơn.Thân chào!


thitech Thứ Sáu, 8 tháng 6, 2018
Hướng dẫn sử dụng thư viện đồ họa U8G2-Hiển thị màn hình Oled 128x64

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

thitech