Module NOKIA N5110

Từ ChipFC Wiki
Phiên bản vào lúc 17:12, ngày 21 tháng 7 năm 2017 của Chipfc (Thảo luận | đóng góp) (Sử dụng)
Bước tới: chuyển hướng, tìm kiếm

Editor.png

Bài viết này đang được phát triển hoặc chỉnh sửa lớn.
Bạn có thể đóng góp để bài viết hoàn thiện hơn.
Sau khi chỉnh sửa xong thông báo này sẽ được gỡ bỏ.

Giới thiệu

NO01.jpg
  • 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

No002.png

Sơ đồ kết nối

Kết nối chân tới Arduino
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

On0003.jpg 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();
}

No004.jpg

  • 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.