Module NOKIA N5110
Bài viết này đang được phát triển hoặc chỉnh sửa lớn. |
Giới thiệu
- Màn hình LCD Nokia 5110 sử dụng IC điều khiển Philips PCD8544, rất thích hợp sử dụng cho các dự án Arduino vì kích thước nhỏ và khả năng hiển thị nhiều kí tự.
Đặc điểm
NOKIA N5110:
- Kích thước màn hình 84x48 (pixel)
- IC điều khiển PCD8544
- Điều khiển độ sáng màn hình bằng xung PWM
- Điện áp nguồn: 3,5v
Sơ đồ chân
Thứ tự chân | Tên gọi | Mô tả |
---|---|---|
1 | RST | reset |
2 | CE | chip selection |
3 | DC | data/commands choice |
4 | Din | dòng dữ liệu |
5 | Clk | tốc độ Clock |
6 | Vcc | nguồn (3,3V) |
7 | BL | Backlight control terminal |
8 | GND | mass |
Sử dụng
Sơ đồ kết nối
Thứ tự chân | Tên gọi | chân tại Arduino |
---|---|---|
1 | RST | D3 |
2 | CE | D4 |
3 | DC | D5 |
4 | Din | D6 |
5 | Clk | D7 |
6 | Vcc | 3,3V |
7 | BL | không dùng |
8 | GND | GND |
thư viện dùng cho Arduino khi sử dụng NOKIA N5110:[ tại đây]
Source code mẫu:
#include <bmps.h>
#include <PCD8544_HOANGSA.h>
PCD8544 lcd(3,4,5,6,7);//b
void setup() {
lcd.ON();//c
lcd.SET(50,0,0,0,4); //d
}
void loop(){
lcd.Asc_String(10,15,Asc("Chipfc.com"), BLACK);
lcd.Display();
} |
Một số cú pháp cơ bản
- Cấu trúc khai báo thư viện
#include "ST7565_homephone.h"//a
ST7565 lcd(3,4,5,6);//b
void setup() {
lcd.ON();//c
lcd.SET(22,0,0,0,4); //d
}
void loop(){ |
- Cài đặt giao diện
void SET(byte contrast, bool negative, bool rotation, bool mirror, byte tyledientro);
Hàm này có thể được gọi nhiều lần với các thông số khác.
contrast - độ tương phản - giá trị từ 0->63 (0x00 trở xuống 0x3f)
negative - hiển thị âm bản - giá trị 0 hoặc 1
rotation - đảo ngược màn hình - giá trị 0 hoặc 1
mirror - hiển thi gương - giá trị 0 hoặc 1
tyledientro - bằng R1/R2 - thiết lập điện áp hoạt động- 0 -> 6 (0x0 đến 0x6) |
- In ra màn hình
- Vẽ 1 điểm có tọa độ x, y
void DrawPixel(int x,int y, bool color);
- Đọc dữ liệu bộ nhớ
bool GetPixel( int x, int y);
- Vẽ đoạn thẳng
void DrawLine(int x0,int y0,int x1,int y1, bool color);
- Vẽ hình chữ nhật
void Rect(int x,int y, int w, int h, bool color);
- Tô màu hình chữ nhật
void FillRect(int x,int y, int w, int h, bool color);
- Hình chữ nhật kèm hiệu ứng bo góc
void Corner( int x,int y, int w, int h,int r, bool color);
- Vẽ Corner tô màu
void FillCorner( int x,int y,int w,int h, int r, bool color);
- Vẽ tam giác
void Tri (int x1,int y1,int x2,int y2,int x3,int y3, bool color);
- Vẽ tam giác tô màu
void FillTri(int x1,int y1,int x2,int y2 ,int x3,int y3, bool color);
- Vẽ đường tròn
void Circle(int x0,int y0,int r, bool color);
- Vẽ hình tròn tô màu
void FillCircle(int x0,int y0, int r, bool color);
- Vẽ elip
void Elip( int x, int y, int xRadius, int yRadius, bool color);
- Vẽ hình elip tô màu
void FillElip(int x0, int y0 , int xRadius, int yRadius, bool color);
- Viết 1 kí tự trong bảng ASCII
void Asc_Char(int x1, int y1,unsigned char c, bool color);
void loop(){
//cách 1:
char text ='A';
text='A';
lcd.Asc_Char(10,10,text,BLACK);
lcd.Display();
//cách 2:
lcd.Asc_Char(20,10,'B',BLACK);
lcd.Display();
//cách 3: dùng bảng mã ASCII
lcd.Asc_Char(30,10,67,BLACK);
lcd.Display();
} |
- Viết một chuỗi kí tự
void Asc_String(int x1, int y1,unsigned char c[] , bool color);
void loop(){
//cách 1:
lcd.Asc_String(10,15,Asc(" Nguyen"), BLACK);
//cách 2:
const static unsigned char text[] PROGMEM =" Khuong";
lcd.Asc_String(10,35,text, BLACK);
lcd.display();
} |
- Viết 1 kí tự tiếng Việt
void Uni_Char(int x1, int y1, char16_t c, bool color);
void loop(){
//cách 1:
lcd.Uni_Char(63,10,u'A',BLACK);//A
//cách 2:
const static char16_t text=u'\x1ED8';//Ộ
lcd.Uni_Char(63,31,text,BLACK);
lcd.display();
} |
- Viết 1 chuỗi chữ Việt
void Uni_String(int x, int y, char16_t c[] , bool color);
void loop(){
//cách 1:
lcd.Uni_String( 30, 15,Uni( u"\x111\x1ECF"), BLACK);//đỏ
//cách 2:
const static char16_t text[] PROGMEM =u"\x111\x65n";//đen
lcd.Uni_String( 30, 35,text, BLACK);
lcd.Display();
} |
- Cách gõ kí tự dạng hex,các bạn cài bộ gõ UNIKEY ở chế độ "Unicode C String" , nhấn "Đóng"rồi gõ như bình thường.