Màn hình 1.8 TFT là màn hình full màu với kích thước 128 × 160 pixel. Màn hình có thể tải hình ảnh từ thẻ SD - nó có khe cắm thẻ SD ở phía sau.
Mô-đun này sử dụng giao tiếp SPI. Để điều khiển màn hình chúng tôi sẽ sử dụng thư viện TFT, thư viện này đã có sẵn trong Arduino IDE 1.0.5 trở lên nên ta không cần phải cài mới.
Cách nối dây
Bạn cần chú ý, Các board Arduino khác có các chân SPI ở các chân khác nhau nên ta cần đổi lại cho đúng.
Khởi tạo màn hình
Màn hình TFT giao tiếp với Arduino thông qua giao tiếp SPI, vì vậy bạn cần include thư viện SPI trên chương trình của bạn. Và sử dụng thư viện TFT để viết và vẽ trên màn hình.
#include <TFT.h>
#include <SPI.h>
Sau đó, bạn cần xác định các chân CS, A0 (hoặc DC) và RST:
#define cs 10
#define dc 9
#define rst 8
Khởi tại tft
TFT TFTscreen = TFT(cs, dc, rst);
Gọi hàm sau trong setup()
TFTscreen.begin();
Hiển thị văn bản
Để viết văn bản trên màn hình, bạn có thể tùy chỉnh màu nền màn hình, phông chữ kích thước và màu sắc.
Màu nền RGB
TFTscreen.background(r, g, b);
Màu chữ, Kích thước font chữ
TFTscreen.stroke(r, g, b);
TFTscreen.setTextSize(2);
Cuối cùng là viết chữ ra màn hình ở vị trị pixel x,y
TFTscreen.text("Hello, World!", x, y)
Chương trình Viết chữ đầy đủ
/*
* Rui Santos
* Complete Project Details http://randomnerdtutorials.com
*/
// include TFT and SPI libraries
#include <TFT.h>
#include <SPI.h>
// pin definition for Arduino UNO
#define cs 10
#define dc 9
#define rst 8
// create an instance of the library
TFT TFTscreen = TFT(cs, dc, rst);
void setup() {
//initialize the library
TFTscreen.begin();
// clear the screen with a black background
TFTscreen.background(0, 0, 0);
//set the text size
TFTscreen.setTextSize(2);
}
void loop() {
//generate a random color
int redRandom = random(0, 255);
int greenRandom = random (0, 255);
int blueRandom = random (0, 255);
// set a random font color
TFTscreen.stroke(redRandom, greenRandom, blueRandom);
// print Hello, World! in the middle of the screen
TFTscreen.text("Hello, World!", 6, 57);
// wait 200 miliseconds until change to next color
delay(200);
}
Kết quả:
Vẽ các hình hình học lên màn hình
Thư viện TFT cung cấp các hàm sau để vẽ hình trên màn hình:
- TFTscreen.point(x, y) – hiển thị 1 điểm tại vị trí x,y
- TFTscreen.line(xStart, yStart, xEnd, yEnd) –vẽ đoạn thẳng từ xStart, yStart đến End
- TFTscreen.rect(xStart, yStart, width, height) – Vẽ hình chữ nhật từ x,y với rộng with và height
- TFTscreen.circle(x, y, radius) – Vẽ hình tròn tâm x,y và bán kính radius.
Chương trình mẫu
/*
* Rui Santos
* Complete Project Details http://randomnerdtutorials.com
*/
// include TFT and SPI libraries
#include <TFT.h>
#include <SPI.h>
// định nghĩa chân
#define cs 10
#define dc 9
#define rst 8
// khởi tạo thư viện
TFT TFTscreen = TFT(cs, dc, rst);
void setup() {
//initialize the library
TFTscreen.begin();
// xóa màn hình về màu đen
TFTscreen.background(0, 0, 0);
}
void loop() {
//Tạo màu ngẫu nhiên
int redRandom = random(0, 255);
int greenRandom = random (0, 255);
int blueRandom = random (0, 255);
// Tạo màu cho nét vẽ, màu chữ
TFTscreen.stroke(redRandom, greenRandom, blueRandom);
// Đi đến vị trí 80, 64 và vẽ 1 điểm
TFTscreen.point(80,64);
// chờ 200ms để vẽ tiếp
delay(500);
// vẽ đoạn thẳng
TFTscreen.line(0,64,160,64);
delay(500);
//vẽ hình vuông 60x60
TFTscreen.rect(50,34,60,60);
delay(500);
//vẽ hình tròn
TFTscreen.circle(80,64,30);
delay(500);
//xóa hết các hình
TFTscreen.background(0,0,0);
}
Kết quả
Hiển thị hình ảnh
Màn hình TFT có thể tải hình ảnh từ thẻ SD. Để đọc từ thẻ SD, bạn cần sử dụng thư viện SD, đã có trong phần mềm Arduino IDE.
- Nối các chân bộ đọc thẻ sd đến arduino
Chú ý: Hình ảnh copy vào thẻ SD phải ở định hàng bmp
Mở Arduino IDE và vào File -> Examples -> TFT -> Arduino -> TFTBitmaLogo
Sửa dòng logo = TFTscreen.loadImage(“arduino.bmp”); trong chương trình, đổi arduino.bmp thành tên file của bạn.
Nhớ là hình ảnh to nhất ở kích thước 128×160
Màn hình TFT với Arduino: cố thể hiển thị văn bản, vẽ hình và hiển thị hình ảnh. Bạn có thể dễ dàng thêm một giao diện trực quan đẹp vào dự án của bạn sử dụng màn hình này.