Mục lục:

Máy tính màn hình cảm ứng LCD TFT Arduino: 3 bước
Máy tính màn hình cảm ứng LCD TFT Arduino: 3 bước

Video: Máy tính màn hình cảm ứng LCD TFT Arduino: 3 bước

Video: Máy tính màn hình cảm ứng LCD TFT Arduino: 3 bước
Video: Màn Hình TFT Arduino shield 3.5 | Review Cùng Điện Tử Nshop 2024, Tháng mười một
Anonim
Máy tính màn hình cảm ứng LCD TFT Arduino
Máy tính màn hình cảm ứng LCD TFT Arduino

Xin chào các bạn trong phần hướng dẫn này, chúng ta sẽ học cách tạo máy tính bằng Arduino Uno với màn hình cảm ứng LCD 3,5 TFT. Vì vậy, chúng ta sẽ viết mã và tải nó lên arduino, nó sẽ hiển thị giao diện máy tính trên màn hình và sẽ có chức năng cảm ứng và đưa ra kết quả của các biểu thức toán học cơ bản.

Bước 1: Những thứ bạn cần

Những thứ bạn cần
Những thứ bạn cần
Những thứ bạn cần
Những thứ bạn cần

Đối với dự án này, bạn sẽ cần những thứ sau: 3.5 TFT LCD DISPLAYARDUINO UNO

Bước 2: Cài đặt Thư viện hiển thị TFT trong Arduino IDE

Cài đặt Thư viện hiển thị TFT trong Arduino IDE
Cài đặt Thư viện hiển thị TFT trong Arduino IDE

Chúng tôi đang sử dụng Thư viện SPFD5408:

để mã máy tính arduino này hoạt động. Đây là một thư viện đã sửa đổi của Adafruit và có thể hoạt động liền mạch với Mô-đun TFT LCD của chúng tôi. Điều rất quan trọng là bạn phải cài đặt thư viện này trong Arduino IDE của mình hoặc chương trình này để biên dịch mà không gặp bất kỳ lỗi nào. Để cài đặt thư viện này, bạn chỉ cần nhấp vào liên kết ở trên sẽ đưa bạn đến trang Github. Ở đó nhấp vào sao chép hoặc tải xuống và chọn “Tải xuống ZIP”. Một tệp zip sẽ được tải xuống. Bây giờ, hãy mở Arduino IDE và chọn Sketch -> Bao gồm Librarey -> Thêm thư viện. ZIP. Một cửa sổ trình duyệt sẽ mở, điều hướng đến tệp ZIP và nhấp vào “OK”. Bạn sẽ thấy “Thư viện được thêm vào Thư viện của bạn” ở góc dưới bên trái của Arduino.

Bước 3: Tải lên mã máy tính

Tải lên mã máy tính
Tải lên mã máy tính
Tải lên mã máy tính
Tải lên mã máy tính

Sau khi cài đặt thư viện, hãy kết nối màn hình với Arduino và sao chép đoạn mã sau và tải nó lên Arduino./*_ Thư viện nhập khẩu _ * / # include "SPFD5408_Adafruit_GFX.h" // Thư viện đồ họa cốt lõi # bao gồm "SPFD5408_Adafruit_TFTLCD.h" // Phần cứng-cụ thể thư viện # bao gồm "SPFD5408_TouchScreen.h" / * _ End of Libraries _ * // * _ Xác định các chân LCD (Tôi đã đánh dấu các giá trị mặc định) _ * / # xác định YP A1 // phải là một chân analog, sử dụng ký hiệu "An"! # xác định XM A2 // phải là chân tương tự, sử dụng ký hiệu "An"! #define YM 7 // có thể là chân kỹ thuật số # xác định XP 6 // có thể là chân kỹ thuật số # định nghĩa LCD_CS A3 # định nghĩa LCD_CD A2 # xác định LCD_WR A1 # xác định LCD_RD A0 # xác định LCD_RESET A4 / * _ End of defanitions _ * // * _ Gán tên cho màu sắc và áp suất _ * / # xác định TRẮNG 0x0000 // Đen-> Trắng # xác định VÀNG 0x001F // Xanh lam-> Vàng # xác định CYAN 0xF800 // Đỏ-> Lục lam # xác định HỒNG 0x07E0 // Xanh lá-> Hồng # xác định ĐỎ 0x07FF // Lục lam -> Đỏ # xác định XANH 0xF81F // Hồng -> Xanh lá #define XANH 0xFFE0 // Vàng- > Màu xanh lam # xác định ĐEN 0xFFFF // Trắng-> Đen # xác định MINPRESSURE 10 # xác định TỐI ĐA 1000 / * _ Đã chỉ định _ * // * _ Hiệu chỉnh TFT LCD _ * / # xác định TS_MINX 125 # xác định TS_MINY 85 # xác định TS_MAXX 965 # xác định TS_MAXY 905 / * _End of Calibration _ * / TouchScreen ts = TouchScreen (XP, YP, XM, YM, 300); // 300 là độ nhạy Adafruit_TFTLCD tft (LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); // Bắt đầu giao tiếp với ký hiệu LCDString [4] [4] = {{"7", "8", "9", "/"}, {"4", "5", "6", "*"}, {"1", "2", "3", "-"}, {"C", "0", "=", "+"}}; int X, Y; dài Num1, Num2, Number; hành động char; boolean result = false; void setup () {Serial.begin (9600); // Sử dụng màn hình nối tiếp để gỡ lỗi tft.reset (); // Luôn đặt lại khi bắt đầu tft.begin (0x9341); // Màn hình LCD của tôi sử dụng IC điều khiển giao diện LIL9341 tft.setRotation (2); // Tôi vừa định vị để giắc cắm hướng lên - tùy chọn tft.fillScreen (WHITE); IntroScreen (); draw_BoxNButtons (); } void loop () {TSPoint p = waitTouch (); X = p.y; Y = p.x; // Serial.print (X); Serial.print (','); Serial.println (Y); // + "" + Y); DetectButtons (); if (result == true) CalculResult (); DisplayResult (); delay (300);} TSPoint waitTouch () {TSPoint p; làm {p = ts.getPoint (); pinMode (XM, OUTPUT); pinMode (YP, OUTPUT); } while ((p.z MAXPRESSURE)); p.x = map (p.x, TS_MINX, TS_MAXX, 0, 320); p.y = map (p.y, TS_MINY, TS_MAXY, 0, 240);; return p;} void DetectButtons () {if (X0) // Phát hiện các nút trên cột 1 {if (Y> 0 && Y <85) // Nếu nút hủy được nhấn {Serial.println ("Nút Hủy"); Số = Num1 = Num2 = 0; result = false;} if (Y> 85 && Y <140) // Nếu Nút 1 được nhấn {Serial.println ("Nút 1"); if (Số == 0) Số = 1; else Số = (Số * 10) + 1; // Được nhấn hai lần} if (Y> 140 && Y <192) // Nếu Nút 4 được nhấn {Serial.println ("Nút 4"); if (Số == 0) Số = 4; else Số = (Số * 10) + 4; // Được nhấn hai lần} if (Y> 192 && Y <245) // Nếu Nút 7 được nhấn {Serial.println ("Nút 7"); if (Số == 0) Số = 7; else Số = (Số * 10) + 7; // Được nhấn hai lần}} if (X50) // Phát hiện các nút trên cột 2 {if (Y> 0 && Y <85) {Serial.println ("Nút 0"); // Nút 0 được nhấn if (Number == 0) Number = 0; else Số = (Số * 10) + 0; // Được nhấn hai lần} if (Y> 85 && Y <140) {Serial.println ("Nút 2"); if (Số == 0) Số = 2; else Số = (Số * 10) + 2; // Được nhấn hai lần} if (Y> 140 && Y <192) {Serial.println ("Nút 5"); if (Số == 0) Số = 5; else Số = (Số * 10) + 5; // Đã nhấn twic} if (Y> 192 && Y <245) {Serial.println ("Nút 8"); if (Số == 0) Số = 8; else Số = (Số * 10) + 8; // Đã nhấn twic}} if (X105) // Phát hiện các nút trên cột 3 {if (Y> 0 && Y <85) {Serial.println ("Nút bằng"); Num2 = Số; kết quả = true; } if (Y> 85 && Y <140) {Serial.println ("Nút 3"); if (Số == 0) Số = 3; else Số = (Số * 10) + 3; // Được nhấn hai lần} if (Y> 140 && Y <192) {Serial.println ("Nút 6"); if (Số == 0) Số = 6; else Số = (Số * 10) + 6; // Được nhấn hai lần} if (Y> 192 && Y <245) {Serial.println ("Nút 9"); if (Số == 0) Số = 9; else Số = (Số * 10) + 9; // Được nhấn hai lần}} if (X165) // Phát hiện các nút trên cột 3 {Num1 = Number; Số = 0; tft.setCursor (200, 20); tft.setTextColor (ĐỎ); if (Y> 0 && Y <85) {Serial.println ("Phép cộng"); hành động = 1; tft.println ('+');} if (Y> 85 && Y <140) {Serial.println ("Phép trừ"); hành động = 2; tft.println ('-');} if (Y> 140 && Y <192) {Serial.println ("Phép nhân"); hành động = 3; tft.println ('*');} if (Y> 192 && Y <245) {Serial.println ("Devesion"); hành động = 4; tft.println ('/');} delay (300); }} void CalculResult () {if (action == 1) Number = Num1 + Num2; if (action == 2) Number = Num1-Num2; if (action == 3) Number = Num1 * Num2; if (action == 4) Number = Num1 / Num2; } void DisplayResult () {tft.fillRect (0, 0, 240, 80, CYAN); // xóa ô kết quả tft.setCursor (10, 20); tft.setTextSize (4); tft.setTextColor (ĐEN); tft.println (Số); // cập nhật giá trị mới} void IntroScreen () {tft.setCursor (55, 120); tft.setTextSize (3); tft.setTextColor (ĐỎ); tft.println ("ARDUINO"); tft.setCursor (30, 160); tft.println ("MÁY TÍNH TOÁN"); tft.setCursor (30, 220); tft.setTextSize (2); tft.setTextColor (BLUE); tft.println ("- Thông báo về Circut"); delay (1800);} void draw_BoxNButtons () {// Vẽ Hộp Kết quả tft.fillRect (0, 0, 240, 80, CYAN); // Vẽ Cột đầu tiên tft.fillRect (0, 260, 60, 60, RED); tft.fillRect (0, 200, 60, 60, BLACK); tft.fillRect (0, 140, 60, 60, BLACK); tft.fillRect (0, 80, 60, 60, BLACK); // Vẽ Cột thứ Ba tft.fillRect (120, 260, 60, 60, XANH); tft.fillRect (120, 200, 60, 60, BLACK); tft.fillRect (120, 140, 60, 60, BLACK); tft.fillRect (120, 80, 60, 60, BLACK); // Vẽ Cột bí mật & Cột thứ tư for (int b = 260; b> = 80; b- = 60) {tft.fillRect (180, b, 60, 60, BLUE); tft.fillRect (60, b, 60, 60, BLACK);} // Vẽ Đường Ngang for (int h = 80; h <= 320; h + = 60) tft.drawFastHLine (0, h, 240, WHITE); // Vẽ Đường dọc for (int v = 0; v <= 240; v + = 60) tft.drawFastVLine (v, 80, 240, WHITE); // Hiển thị các nhãn bàn phím for (int j = 0; j <4; j ++) {for (int i = 0; i <4; i ++) {tft.setCursor (22 + (60 * i), 100 + (60 * NS)); tft.setTextSize (3); tft.setTextColor (TRẮNG); tft.println (ký hiệu [j] ); }}} Sau khi tải mã lên, bạn sẽ có thể thấy máy tính đang chạy trên màn hình của mình như của tôi và bây giờ bạn có thể thực hiện các phép tính toán học cơ bản về việc này. Vì vậy, hãy vui vẻ khi tạo máy tính của riêng bạn với Arduino UNO.

Đề xuất: