Isi kandungan:
- Langkah 1: Perkara yang Anda Perlu
- Langkah 2: Memasang TFT Display Library di Arduino IDE
- Langkah 3: Muat naik Kod Kalkulator
Video: Kalkulator Skrin Sentuh LCD Arduino TFT: 3 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:09
Hai Guys dalam instruksional ini, kita akan belajar bagaimana membuat kalkulator menggunakan Arduino Uno dengan paparan Skrin Sentuh LCD TFT 3,5 . Oleh itu, kami akan menulis kod dan Muat naik ke arduino yang akan memaparkan antara muka kalkulator pada paparan dan akan menggunakan fungsi sentuhan dan berikan output ungkapan matematik asas.
Langkah 1: Perkara yang Anda Perlu
Untuk projek ini, anda memerlukan perkara berikut: TFT LCD DISPLAYARDUINO 3.5 UNO
Langkah 2: Memasang TFT Display Library di Arduino IDE
Kami menggunakan Perpustakaan SPFD5408:
agar kod kalkulator arduino ini berfungsi. Ini adalah perpustakaan Adafruit yang diubahsuai dan dapat berfungsi dengan lancar dengan Modul TFT LCD kami. Sangat penting bagi anda untuk memasang pustaka ini di Arduino IDE atau program ini untuk menyusun tanpa sebarang kesalahan. Untuk memasang pustaka ini, anda hanya boleh klik pada pautan di atas yang akan membawa anda ke halaman Github. Di sana klik pada klon atau muat turun dan pilih "Muat turun ZIP". Fail zip akan dimuat turun. Sekarang, buka Arduino IDE dan pilih Sketch -> Include Librarey -> Add. ZIP library. Tetingkap penyemak imbas akan terbuka menavigasi ke fail ZIP dan klik "OK". Anda harus melihat "Perpustakaan ditambahkan ke Perpustakaan anda" di sudut kiri bawah Arduino.
Langkah 3: Muat naik Kod Kalkulator
Setelah memasang perpustakaan sambungkan paparan ke Arduino dan salin kod berikut & muat naik ke Arduino./*_Import Perpustakaan _ * / # include "SPFD5408_Adafruit_GFX.h" // Perpustakaan grafik teras # sertakan "SPFD5408_Adafruit_TFTLCD.h" // Khusus perkakasan perpustakaan # sertakan "SPFD5408_TouchScreen.h" / * _ Akhir Perpustakaan _ * // * _ Tentukan pin LCD (saya telah menetapkan nilai lalai) _ * / # tentukan YP A1 // mestilah pin analog, gunakan notasi "An"! # definisikan XM A2 // mestilah pin analog, gunakan notasi "An"! #tentukan YM 7 // boleh menjadi pin digital # tentukan XP 6 // boleh menjadi pin digital # tentukan LCD_CS A3 # tentukan LCD_CD A2 # tentukan LCD_WR A1 # define LCD_RD A0 # define LCD_RESET A4 / * _ Akhir definisi _ * // * _ Tetapkan nama pada warna dan tekanan _ * / # tentukan PUTIH 0x0000 // Hitam-> Putih # tentukan KUNING 0x001F // Biru-> Kuning # tentukan CYAN 0xF800 // Merah-> Sian # tentukan PINK 0x07E0 // Hijau-> Pink # tentukan RED 0x07FF // Sian -> Merah # tentukan HIJAU 0xF81F // Pink -> Hijau # tentukan BIRU 0xFFE0 // Kuning- > Biru # tentukan HITAM 0xFFFF // Putih-> Hitam # tentukan MINPRESSURE 10 # tentukan MAXPRESSURE 1000 / * _ Ditugaskan _ * // * _ Kalibrasi TFT LCD _ * / # tentukan TS_MINX 125 # tentukan TS_MINY 85 # tentukan TS_MAXX 965 # tentukan TS_MAXY 905 / * _Tamat Penentukuran _ * / TouchScreen ts = TouchScreen (XP, YP, XM, YM, 300); // 300 adalah kepekaanAdafruit_TFTLCD tft (LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); // Mulakan komunikasi dengan simbol LCDString [4] [4] = {{"7", "8", "9", "/"}, {"4", "5", "6", "*"}, {"1", "2", "3", "-"}, {"C", "0", "=", "+"}}; int X, Y; panjang Num1, Num2, Nombor; tindakan char; hasil boolean = false; persediaan kosong () {Serial.begin (9600); // Gunakan monitor bersiri untuk menyahpepijat tft.reset (); // Sentiasa tetapkan semula pada permulaan tft.begin (0x9341); // LCD saya menggunakan pemacu antara muka LIL9341 IC tft.setRotation (2); // Saya baru berkeliaran sehingga soket kuasa menghadap ke atas - pilihan tft.fillScreen (WHITE); Skrin Pengenalan (); draw_BoxNButtons (); } gelung void () {TSPoint p = waitTouch (); X = p.y; Y = p.x; // Serial.print (X); Cetakan bersiri (','); Serial.println (Y); // + "" + Y); DetectButtons (); if (hasil == benar) CalculateResult (); DisplayResult (); kelewatan (300);} TSPoint waitTouch () {TSPoint p; lakukan {p = ts.getPoint (); pinMode (XM, OUTPUT); pinMode (YP, OUTPUT); } sementara ((hlm. MAXPRESSURE)); p.x = peta (p.x, TS_MINX, TS_MAXX, 0, 320); p.y = peta (p.y, TS_MINY, TS_MAXY, 0, 240);; kembali p;} batal DetectButtons () {if (X0) // Butang Mengesan pada Lajur 1 {if (Y> 0 && Y <85) // Sekiranya Batal batal ditekan {Serial.println ("Button Cancel"); Nombor = Num1 = Num2 = 0; hasil = false;} jika (Y> 85 && Y <140) // Jika Butang 1 ditekan {Serial.println ("Butang 1"); jika (Nombor == 0) Nombor = 1; nombor lain = (Nombor * 10) + 1; // Ditekan dua kali} jika (Y> 140 && Y <192) // Jika Butang 4 ditekan {Serial.println ("Butang 4"); jika (Nombor == 0) Nombor = 4; lain Nombor = (Nombor * 10) + 4; // Ditekan dua kali} jika (Y> 192 && Y <245) // Jika Butang 7 ditekan {Serial.println ("Butang 7"); jika (Nombor == 0) Nombor = 7; nombor lain = (Nombor * 10) + 7; // Ditekan dua kali}} jika (X50) // Mengesan Butang pada Lajur 2 {if (Y> 0 && Y <85) {Serial.println ("Butang 0"); // Butang 0 Ditekan jika (Nombor == 0) Nombor = 0; lain Nombor = (Nombor * 10) + 0; // Ditekan dua kali} jika (Y> 85 && Y <140) {Serial.println ("Butang 2"); jika (Nombor == 0) Nombor = 2; nombor lain = (Nombor * 10) + 2; // Ditekan dua kali} jika (Y> 140 && Y <192) {Serial.println ("Butang 5"); jika (Nombor == 0) Nombor = 5; nombor lain = (Nombor * 10) + 5; // Ditekan dua} jika (Y> 192 && Y <245) {Serial.println ("Butang 8"); jika (Nombor == 0) Nombor = 8; nombor lain = (Nombor * 10) + 8; // Ditekan dua}} jika (X105) // Mengesan Butang pada Lajur 3 {if (Y> 0 && Y <85) {Serial.println ("Butang Sama"); Num2 = Nombor; hasil = benar; } jika (Y> 85 && Y <140) {Serial.println ("Butang 3"); jika (Nombor == 0) Nombor = 3; nombor lain = (Nombor * 10) + 3; // Ditekan dua kali} jika (Y> 140 && Y <192) {Serial.println ("Butang 6"); jika (Nombor == 0) Nombor = 6; nombor lain = (Nombor * 10) + 6; // Ditekan dua kali} jika (Y> 192 && Y <245) {Serial.println ("Butang 9"); jika (Nombor == 0) Nombor = 9; nombor lain = (Nombor * 10) + 9; // Ditekan dua kali}} jika (X165) // Mengesan Butang pada Lajur 3 {Num1 = Number; Nombor = 0; tft.setCursor (200, 20); tft.setTextColor (MERAH); jika (Y> 0 && Y <85) {Serial.println ("Penambahan"); tindakan = 1; tft.println ('+');} jika (Y> 85 && Y <140) {Serial.println ("Pengurangan"); tindakan = 2; tft.println ('-');} jika (Y> 140 && Y <192) {Serial.println ("Pendaraban"); tindakan = 3; tft.println ('*');} jika (Y> 192 && Y <245) {Serial.println ("Penyimpangan"); tindakan = 4; tft.println ('/');} kelewatan (300); }} batal CalculateResult () {if (tindakan == 1) Nombor = Num1 + Num2; jika (tindakan == 2) Nombor = Num1-Num2; jika (tindakan == 3) Nombor = Num1 * Num2; jika (tindakan == 4) Nombor = Num1 / Num2; } batal DisplayResult () {tft.fillRect (0, 0, 240, 80, CYAN); // kotak keputusan yang jelas tft.setCursor (10, 20); tft.setTextSize (4); tft.setTextColor (HITAM); tft.println (Nombor); // kemas kini nilai baru} batal IntroScreen () {tft.setCursor (55, 120); tft.setTextSize (3); tft.setTextColor (MERAH); tft.println ("ARDUINO"); tft.setCursor (30, 160); tft.println ("KALKULATOR"); tft.setCursor (30, 220); tft.setTextSize (2); tft.setTextColor (BIRU); tft.println ("- Circut Digest"); kelewatan (1800);} batal draw_BoxNButtons () {// Lukis Kotak Hasil tft.fillRect (0, 0, 240, 80, CYAN); // Lukis Lajur Pertama tft.fillRect (0, 260, 60, 60, MERAH); tft.fillRect (0, 200, 60, 60, HITAM); tft.fillRect (0, 140, 60, 60, HITAM); tft.fillRect (0, 80, 60, 60, HITAM); // Lukis Lajur Ketiga tft.fillRect (120, 260, 60, 60, GREEN); tft.fillRect (120, 200, 60, 60, HITAM); tft.fillRect (120, 140, 60, 60, HITAM); tft.fillRect (120, 80, 60, 60, HITAM); // Lukiskan Lajur Rahsia & Keempat untuk (int b = 260; b> = 80; b- = 60) {tft.fillRect (180, b, 60, 60, BLUE); tft.fillRect (60, b, 60, 60, BLACK);} // Lukis Garisan Mendatar untuk (int h = 80; h <= 320; h + = 60) tft.drawFastHLine (0, h, 240, WHITE); // Lukis Garisan Vertikal untuk (int v = 0; v <= 240; v + = 60) tft.drawFastVLine (v, 80, 240, WHITE); // Paparkan label pad kekunci untuk (int j = 0; j <4; j ++) {untuk (int i = 0; i <4; i ++) {tft.setCursor (22 + (60 * i), 100 + (60 * j)); tft.setTextSize (3); tft.setTextColor (PUTIH); tft.println (simbol [j] ); }}} Selepas memuat naik kod, anda akan dapat melihat kalkulator berjalan di paparan anda sebagai milik saya dan sekarang anda boleh melakukan pengiraan asas matematik mengenai hal ini. Oleh itu, bersenang-senang membuat kalkulator anda sendiri dengan Arduino UNO.
Disyorkan:
Skrin Sentuh Macintosh - Mac Klasik Dengan IPad Mini untuk Skrin: 5 Langkah (dengan Gambar)
Skrin Sentuh Macintosh | Klasik Mac Dengan IPad Mini untuk Skrin: Ini adalah kemas kini dan reka bentuk saya yang disemak semula mengenai cara mengganti skrin Macintosh vintaj dengan iPad mini. Ini adalah yang ke-6 yang saya buat selama ini dan saya cukup gembira dengan evolusi dan reka bentuknya! Kembali pada tahun 2013 ketika saya membuat
Kalkulator Skrin Sentuh Arduino: 7 Langkah
Kalkulator Skrin Sentuh Arduino: Helo! Ini adalah projek untuk membuat kalkulator skrin sentuh menggunakan Arduino Uno dan perisai TFT LCD. Saya mengemukakan konsep untuk kelas pengaturcaraan homeschool saya, dan pengalaman membina projek ini sangat menarik. Kalkulator ini
Paparan Skrin Sentuh Arduino: 4 Langkah
Paparan Skrin Sentuh Arduino: Helo! Hari ini, saya akan menunjukkan cara menggunakan pelindung Skrin Sentuh dengan Arduino Uno. Anda boleh menggunakannya sebagai paparan kecil untuk petikan atau gambar atau semua jenis barang lain
BluBerriSix - Tutorial Skrin Sentuh TFT / Arduino: 12 Langkah (dengan Gambar)
BluBerriSix - TFT TouchScreen / Arduino Tutorial: 2019 adalah ulang tahun ke-20 RIM Blackberry 850! Penemuan Kanada kecil ini mengubah cara dunia berkomunikasi. Sudah lama berlalu, tetapi warisannya berterusan! Dalam arahan ini, anda akan belajar bagaimana menggunakan MCUfriend.com 2.4 " TFT
Kunci Pintu Skrin Sentuh Arduino TFT: 5 Langkah
Kunci Pintu Skrin Sentuh Arduino TFT: Ini adalah Instructable pertama saya. Projek ini menggunakan Arduino dan 2.8 " Skrin sentuh TFT dengan lakaran kata laluan untuk mengaktifkan geganti yang memutuskan litar ke pintu kunci mag. Latar belakang, kunci RFID pada pintu di tempat kerja pecah daripada memasang semula