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 60×60 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
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