LCD màu TFT 3.2 inch cho board Adruino Mega 2560

1. Giới thiệu sơ lược

Các bạn đã từng trải nghiệm nhiều phiên bản LCD như LCD 16x02, 20x04, 5110 nokia, Oled, Homephone,… nhưng đối với LCD TFT thì nó sẽ lung linh hơn nhiều, thư viện UTFT thì lại cũng dễ sử dụng như một số LCD cơ bản- Với LCD TFT chúng ta sẽ DIY với những cảm biến như gia tốc, nhiệt độ, ánh sáng,lập một menu button điều khiển xe không cần android … thậm chí nó có thể mang đến cảm giác hoàn hảo tuyệt vời khi chế tạo cùng với chế độ điều khiển servo, robot, led, làm menu smartphone, vận hành máy in3D với loại TFT cao cấp hơn…

2. LCD TFT 3.2inch

Trong bài viết này mình sử dụng loại TFT 3.2inch cho mega. Nếu các bạn sử dụng với board uno thì mua loại TFT2.4 inch (shield cắm uno). 3.2 inch hơn hẳn 2.4 inch về mặt kích thước, độ phân giải,.

3. Thông số kỹ thuật

  • Sử dụng driver ILI9341-65.000 màu
  • Độ phân giải 320x240
  • Hỗ trợ thẻ nhớ SD card
  • Cần có shield riêng 16bit chuyển thành 3,3v cho màn hình thư viện
  • Các bạn vào trang này để tải những thư viện chủ chốt sau  http://www.rinkydinkelectronics.com/index.php

Sau khi tải xong các bạn chép vào mục library của IDE5 chạy thư viện mẫu từ rinkydinkelectronics.com Vẽ màu ta chọn thư viện URTouch

Lưu ý dòng

UTFT    myGLCD(ITDB32S,38,39,40,41); chúng ta chuyển thành

UTFT    myGLCD(ILI9341_16,38,39,40,41);

Cho phù hợp loại driver 16bit và bất cứ thư viện nào liên quan ta vẫn phải chỉnh nhé.

Có 8 màu để bạn lựa chọn. clear để xóa sạch man hinh

Có thể phóng to nhỏ kích thước chạm

Code mẫu test button number URTouch buttontest

Thư viện số 3 load ảnh RAW (thô)

Các loại lcd khác thường sử dụng kiểu ảnh bitmap chúng ta có thể convert qua Paint( PC) một cách dễ dàng. mách nhỏ các bạn con TFT 2.4 inch có thể load ảnh bitmap màu 24bit trong Paint. Tuy nhiên đối với LCD TFT 3.2 inch. Nó chỉ có thể load ảnh thô được thôi. ảnh thô thì vấn đề này nhiều người gây tranh cãi với mình là chỉ có thể chuyển từ RAW sang PNG nhưng ngược lại thì không được. mình không muốn bàn sâu vào vấn đề này. Chúng ta hãy chuyển một file hình ảnh bất kì PNG 320x240 sang RAW nhé!

Bước 1 tìm 1 hình bất kì, vào Paint resize lại kích thước pixel là 320x240

Save lại file png đó

Bước 2 vào địa chỉ này http://www.rinkydinkelectronics.com/t_imageconverter565.php

Tích mục RAW file thay vì .c chọn tệp bạn vừa resize xong ta sẽ được file có tên như này “anhkhanh.raw”

Bạn copy vào thẻ file raw đó ( trên màn hình có khe cắm SD card

Bước 3

Vào thư viện UTFT_tinyFAT chọn DemoLandcape hoặc Demo_Potrait do kích thước là 320x240 nên chọn theo chiều ngang ta chọn code mẫu DemoLandcape

Hoặc để cho gọn code bạn có thể lấy code mình làm gọn, xóa những thứ không cần thiết như thế này.

#include <tinyFAT.h>
#include <UTFT.h>
#include <UTFT_tinyFAT.h>g
extern uint8_t SmallFont[];
UTFT myGLCD(ILI9341_16, 38, 39, 40, 41); // Remember to change the model parameter to suit your display module!
UTFT_tinyFAT myFiles(&myGLCD);
int picsize_x, picsize_y;
void setup()
{
    myGLCD.InitLCD();
    myGLCD.clrScr();
    file.initFAT();
    myGLCD.setColor(255, 255, 255);
    myGLCD.setFont(SmallFont);
    picsize_x = myGLCD.getDisplayXSize();
    picsize_y = myGLCD.getDisplayYSize();
}
void loop()
{
    myFiles.loadBitmap(0, 0, picsize_x, picsize_y, "anhkhanh.raw");
}

Chú ý dòng void loop

Tên file phải chính xác ko chính xác nó không lên hình nha  .RAW hoặc .raw

Bạn muốn up liên tiếp những bức ảnh thì cứ trong void loop bạn thêm dòng như thế này

myFiles.loadBitmap(0, 0, picsize_x, picsize_y, "anhkhanh.raw");

myFiles.loadBitmap(0, 0, picsize_x, picsize_y, "adruino.raw");

 

Hiện bây giờ mình có ý tưởng cắt video ra thành cả nghìn bức ảnh PNG (có công cụ phần mềm cắt) xong lại có thêm công cụ chuyển hang loạt file PNG sang RAW trên trang web lúc ta tải thư viện. nhưng lại có thêm thủ thuật đánh số hang loạt tên file chạy từ 1>>>> 1000… nhưng chỉ duy nhất một điều là những thư viện trên nó load ảnh trong ít nhất 1 giây nó chuyển sang ảnh kế tiếp, bạn nào có thể thu hẹp khoảng thời gian ấy ( vài milli giây ) , để nó trở thành 1 video thật sự chạy trên adruino mega. Do mình mới tìm hiểu nên ý tưởng hơi điên rồ chút ( chắc có lẽ video chỉ chạy trên nền tảng máy tính nhúng thôi nhỉ ) ^^ adruino bộ nhớ thấp quá. Sau bài này mình mong rằng anh nick chung hay bất cứ bạn nào đã từng tiếp cận loại LCD này cho mình xin chút kinh nghiệm. cảm ơn các bạn xem bài viết

Youtube: 
lên
11 thành viên đã đánh giá bài viết này hữu ích.
Chuyên mục: 
Các dự án được truyền cảm hứng

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

RoboArm, PlayStation 2 và LCD5110 - Một dự án xe ra đời

Do mình thấy một số anh và bạn bè mình chơi RoboArm theo nhiều hình thức khác nhau qua Bluetooh, NRF24l01, Xbee,RF, Remote hồng ngoại. Và cũng chưa thấy bài viết tổng hợp về Arm +L298 nên mình xin viết bài này, Do lập trình mình chưa vững chỉ thấy có sự logic là cứ viết cộng với phần cơ khí mình có vẻ tồi nên có gì sai sót mong anh em trong group thông cảm và góp ý vào phần comment phía dưới nhé để bài viết mình chỉnh sửa và hoàn thiện hơn. Hi vọng bài viết này mang lại trải nghiệm thú vị cho một số bạn newbie

lên
22 thành viên đã đánh giá bài viết này hữu ích.
Từ khóa: 

Vẽ ảnh Bitmap trên OLed I2C - Rất đẹp, bạn cảm nhận thử xem?

Để khắc phục bài viết bitmap LCD5110 với lỗi ảnh và không full HD được. Mình viết bài này để các bạn  có them nhiều thú vui với LCD hơn. Con LCD bây giờ mình tâm đắc nhất là OLed giao tiếp I2c với độ pixel 128x64.

lên
7 thành viên đã đánh giá bài viết này hữu ích.