Khác biệt giữa các bản “Module NOKIA N5110”

Từ ChipFC Wiki
Bước tới: chuyển hướng, tìm kiếm
(Một số cú pháp cơ bản)
(Sơ đồ chân)
Dòng 30: Dòng 30:
 
| 5          || Clk        || tốc độ Clock
 
| 5          || Clk        || tốc độ Clock
 
|-
 
|-
| 6          || Vcc        || nguồn (3,3V)
+
| 6          || Vcc        || nguồn (5V hoặc 3,3V)
 
|-
 
|-
 
| 7          || BL        || Backlight control terminal
 
| 7          || BL        || Backlight control terminal
Dòng 36: Dòng 36:
 
| 8          || GND        || mass
 
| 8          || GND        || mass
 
|}
 
|}
 
  
 
== Sử dụng ==  
 
== Sử dụng ==  

Phiên bản lúc 17:27, ngày 21 tháng 7 năm 2017

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 (5V hoặc 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
  • Boolean color: chỉ chấp nhận 3 loại sau BLACK (1), WHITE(0), DELETE(0)
  • void Display(); : là hàm cho phép màn hình hiển thị những gì đã vẽ
  • void Clear(); : xóa tất cả 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); On0003.jpg


  • 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.
  • Viết chữ số

void Number_Long(int x, int y,long a,byte select_font, bool color); void Number_Ulong(int x, int y,unsigned long a,byte select_font, bool color); void Number_Float(int x, int y, float a,byte n, byte select_font,bool color);

int k=0;// int , long...
byte l=0;// byte, unsigned int, unsigned long...
float m=0.123;
 
void loop(){ 
    
    lcd.Number_Long(10,10,k,STYLE_NUMBER,BLACK);
    lcd.Number_Ulong(10,28,l,CASIO_NUMBER,BLACK);
    lcd.Number_Float(10, 50,m,3,ASCII_NUMBER,BLACK);
    lcd.Display();
    k++;
    l++;
    m++;
    lcd.Clear();
 
}


  • Vẽ ảnh bitmap

void Bitmap(int x, int y, unsigned int w, unsigned int h,const uint8_t *bitmap , bool color);

#ifdef __AVR__
#include <avr/io.h>
#include <avr/pgmspace.h> 
#endif
 
/** bitmap logo 16x 16
*/
const static unsigned char __attribute__ ((progmem)) logo16_glcd_bmp[]= {
0x30, 0xf0, 0xf0, 0xf0, 0xf0, 0x30, 0xf8, 0xbe, 0x9f, 0xff, 0xf8, 0xc0, 0xc0, 0xc0, 0x80, 0x00, 
0x20, 0x3c, 0x3f, 0x3f, 0x1f, 0x19, 0x1f, 0x7b, 0xfb, 0xfe, 0xfe, 0x07, 0x07, 0x07, 0x03, 0x00, };
 
 
void loop(){
    lcd.Bitmap( 60,30,16,16,logo16_glcd_bmp,BLACK);
    lcd.display();
}


  • Xoay và Gương cho ảnh bitmap

void Plus_Bitmap(int x0, int y0, unsigned int w, unsigned int h,const uint8_t *bitmap , int goc, bool mirror, bool color);

  • Giữ góc

int Keep_Angle(int goc);

  • Tìm điểm thuộc đường elip

void Find_XY_Elip(int x0, int y0, int a, int b,int goc_alpha) ; int X_Elip(); int Y_Elip()

  • get_xy_ellipsse

Tìm điểm thuộc mặt cầu void Find_XY_Sphere(int x0, int y0, int a, int b, int goc_alpha, int goc_beta); int X_Sphere(); int Y_Sphere();



link tham khảo thêm

tại đây