Daftar Isi:

Kalkulator Layar Sentuh LCD TFT Arduino: 3 Langkah
Kalkulator Layar Sentuh LCD TFT Arduino: 3 Langkah

Video: Kalkulator Layar Sentuh LCD TFT Arduino: 3 Langkah

Video: Kalkulator Layar Sentuh LCD TFT Arduino: 3 Langkah
Video: Membuat Kalkulator Layar Sentuh Menggunakan 2.4 inch TFT LCD - Arduino Project Indonesia 2024, Juli
Anonim
Kalkulator Layar Sentuh LCD TFT Arduino
Kalkulator Layar Sentuh LCD TFT Arduino

Hai Teman-teman dalam instruksi ini kita akan belajar cara membuat kalkulator menggunakan Arduino Uno dengan tampilan Layar Sentuh LCD TFT 3,5 . Jadi kita akan menulis kode dan mengunggahnya ke arduino yang akan menampilkan antarmuka kalkulator pada layar dan akan mengambil fungsi sentuh memberikan output dari ekspresi matematika dasar.

Langkah 1: Hal-hal yang Anda Butuhkan

Hal yang Anda Butuhkan
Hal yang Anda Butuhkan
Hal yang Anda Butuhkan
Hal yang Anda Butuhkan

Untuk proyek ini, Anda memerlukan hal-hal berikut: LCD TFT 3,5 DISPLAYARDUINO UNO

Langkah 2: Memasang TFT Display Library di Arduino IDE

Memasang TFT Display Library di Arduino IDE
Memasang TFT Display Library di Arduino IDE

Kami menggunakan Perpustakaan SPFD5408:

agar kode kalkulator arduino ini berfungsi. Ini adalah perpustakaan Adafruit yang dimodifikasi dan dapat bekerja dengan lancar dengan Modul TFT LCD kami. Sangat penting bagi Anda untuk menginstal pustaka ini di Arduino IDE Anda atau program ini untuk dikompilasi tanpa kesalahan. Untuk menginstal pustaka ini, Anda cukup mengklik tautan di atas yang akan membawa Anda ke halaman Github. Di sana klik klon atau unduh dan pilih "Unduh ZIP". File zip akan diunduh. Sekarang, buka Arduino IDE dan pilih Sketch -> Include Librarey -> Add. ZIP library. Jendela browser akan terbuka, arahkan ke file ZIP dan klik "OK". Anda akan melihat "Perpustakaan ditambahkan ke Perpustakaan Anda" di sudut kiri bawah Arduino.

Langkah 3: Unggah Kode Kalkulator

Unggah Kode Kalkulator
Unggah Kode Kalkulator
Unggah Kode Kalkulator
Unggah Kode Kalkulator

Setelah menginstal perpustakaan, hubungkan tampilan ke Arduino dan salin kode berikut & unggah ke Arduino./*_Impor Perpustakaan_*/#include "SPFD5408_Adafruit_GFX.h" // Pustaka grafis inti#include "SPFD5408_Adafruit_TFTLCD.h" // Khusus perangkat keras library#include "SPFD5408_TouchScreen.h"/*_End of Libraries_*//*_Tentukan pin LCD (Saya telah menetapkan nilai default)_*/#define YP A1 // harus pin analog, gunakan notasi "An"!# define XM A2 // harus pin analog, gunakan notasi "An"!#define YM 7 // bisa jadi pin digital#define XP 6 // bisa jadi pin digital#define LCD_CS A3#define LCD_CD A2#define LCD_WR A1#define LCD_RD A0#define LCD_RESET A4/*_End of defanitions_*//*_Tetapkan nama untuk warna dan tekanan_*/#define WHITE 0x0000 //Hitam->Putih#define KUNING 0x001F //Biru->Kuning#define CYAN 0xF800 //Merah->Cyan#define PINK 0x07E0 //Green-> Pink#define RED 0x07FF //Cyan -> Red#define GREEN 0xF81F //Pink -> Green #define BLUE 0xFFE0 //Yellow- >Biru#menentukan HITAM 0xFFFF //Putih-> Hitam#menentukan MINPRESSURE 10#menentukan MAXPRESSURE 1000/*_Ditugaskan_*//*_Kalibrasi TFT LCD_*/#define TS_MINX 125#define TS_MINY 85#define TS_MAXX 965_#define TS_MAXX 965 _Akhir Kalibrasi_*/Layar Sentuh ts = Layar Sentuh(XP, YP, XM, YM, 300); //300 adalah sensitivitasAdafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); //Memulai komunikasi dengan simbol LCDString[4][4] = { { "7", "8", "9", "/" }, { "4", "5", "6", "*" }, { "1", "2", "3", "-" }, { "C", "0", "=", "+" }}; int X, Y; angka panjang1, angka2, angka; tindakan karakter; hasil boolean = false;pengaturan batal() { Serial.begin(9600); //Gunakan monitor serial untuk men-debug tft.reset(); //Selalu reset saat start tft.begin(0x9341); // LCD saya menggunakan IC driver Antarmuka LIL9341 tft.setRotation(2); // Saya baru saja memutar sehingga colokan listrik menghadap ke atas - opsional tft.fillScreen(WHITE); Layar Pendahuluan(); draw_BoxNButtons(); }void loop() {TSPoint p = waitTouch();X = p.y; Y = p.x;// Serial.print(X); Serial.print(', '); Serial.println(Y);// + " " + Y);DetectButtons();if (hasil==benar)CalculateResult();DisplayResult(); delay(300);}TSPoint waitTouch() { TSPoint p; lakukan { p = ts.getPoint(); pinMode(XM, OUTPUT); pinMode(YP, OUTPUT); } while((p.z MAXPRESSURE)); p.x = peta(p.x, TS_MINX, TS_MAXX, 0, 320); p.y = peta(p.y, TS_MINY, TS_MAXY, 0, 240);; return p;}void DetectButtons(){ if (X0) //Mendeteksi Tombol pada Kolom 1 { if (Y>0 && Y<85) //Jika Tombol batal ditekan {Serial.println ("Tombol Batal"); Angka=Bilangan1=Bilangan2=0; result=false;} if (Y>85 && Y<140) //Jika Tombol 1 ditekan {Serial.println ("Tombol 1"); if (Angka==0) Angka=1; else Angka = (Nomor*10) + 1; //Ditekan dua kali } if (Y>140 && Y<192) //Jika Tombol 4 ditekan {Serial.println ("Tombol 4"); if (Angka==0) Angka=4; else Angka = (Nomor*10) + 4; //Ditekan dua kali } if (Y>192 && Y<245) //Jika Tombol 7 ditekan {Serial.println ("Tombol 7"); if (Angka==0) Angka=7; else Angka = (Nomor*10) + 7; //Tekan dua kali } } if (X50) //Mendeteksi Tombol pada Kolom 2 { if (Y>0 && Y<85) {Serial.println ("Tombol 0"); //Tombol 0 Ditekan jika (Angka==0) Angka=0; else Angka = (Nomor*10) + 0; //Tekan dua kali } if (Y>85 && Y<140) {Serial.println ("Tombol 2"); if (Angka==0) Angka=2; else Angka = (Nomor*10) + 2; //Tekan dua kali } if (Y>140 && Y<192) {Serial.println ("Tombol 5"); if (Angka==0) Angka=5; else Angka = (Nomor*10) + 5; //Tekan dua kali } if (Y>192 && Y<245) {Serial.println ("Tombol 8"); if (Angka==0) Angka=8; else Angka = (Nomor*10) + 8; //Tekan dua kali } } if (X105) //Mendeteksi Tombol pada Kolom 3 { if (Y>0 && Y<85) {Serial.println ("Tombol Sama"); Angka2=Angka; hasil = benar; } if (Y>85 && Y<140) {Serial.println ("Tombol 3"); if (Angka==0) Angka=3; else Angka = (Nomor*10) + 3; //Tekan dua kali } if (Y>140 && Y<192) {Serial.println ("Tombol 6"); if (Angka==0) Angka=6; else Angka = (Nomor*10) + 6; //Tekan dua kali } if (Y>192 && Y<245) {Serial.println ("Tombol 9"); if (Angka==0) Angka=9; else Angka = (Nomor*10) + 9; //Tekan dua kali } } if (X165) //Mendeteksi Tombol pada Kolom 3 { Angka1 = Angka; Nomor = 0; tft.setCursor(200, 20); tft.setTextColor(MERAH); if (Y>0 && Y<85) {Serial.println ("Penambahan"); tindakan = 1; tft.println('+');} if (Y>85 && Y<140) {Serial.println ("Pengurangan"); tindakan = 2; tft.println('-');} if (Y>140 && Y<192) {Serial.println ("Perkalian"); tindakan = 3; tft.println('*');} if (Y>192 && Y<245) {Serial.println ("Pengembangan"); tindakan = 4; tft.println('/');} delay(300); } }void HitungResult(){ if (action==1) Number = Num1+Num2; if (aksi==2) Angka = Angka1-Num2; if (aksi==3) Angka = Angka1*Bilangan2; if (aksi==4) Angka = Angka1/Bilangan2; }void DisplayResult(){ tft.fillRect(0, 0, 240, 80, CYAN); //mengosongkan kotak hasil tft.setCursor(10, 20); tft.setTextSize(4); tft.setTextColor(HITAM); tft.println(Nomor); //update nilai baru}void 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("-Intisari Sirkuit"); delay(1800);}void draw_BoxNButtons(){ //Menggambar Kotak Hasil tft.fillRect(0, 0, 240, 80, CYAN); //Gambar Kolom Pertama tft.fillRect (0, 260, 60, 60, RED); tft.fillRect (0, 200, 60, 60, HITAM); tft.fillRect (0, 140, 60, 60, HITAM); tft.fillRect (0, 80, 60, 60, HITAM); //Gambar Kolom Ketiga tft.fillRect (120, 260, 60, 60, HIJAU); tft.fillRect (120, 200, 60, 60, HITAM); tft.fillRect (120, 140, 60, 60, HITAM); tft.fillRect (120, 80, 60, 60, HITAM); //Gambar Kolom Detik & Keempat untuk (int b=260; b>=80; b-=60) { tft.fillRect (180, b, 60, 60, BIRU); tft.fillRect (60, b, 60, 60, BLACK);} //Menggambar Garis Horizontal untuk (int h=80; h<=320; h+=60) tft.drawFastHLine(0, h, 240, WHITE); //Menggambar Garis Vertikal untuk (int v=0; v<=240; v+=60) tft.drawFastVLine(v, 80, 240, WHITE); //Menampilkan label keypad untuk (int j=0;j<4;j++) { for (int i=0;i<4;i++) { tft.setCursor(22 + (60*i), 100 + (60*) J)); tft.setTextSize(3); tft.setTextColor(PUTIH); tft.println(simbol[j]); } }}Setelah meng-upload kode, Anda akan dapat melihat kalkulator berjalan di layar Anda sebagai milik saya dan sekarang Anda dapat melakukan perhitungan matematika dasar pada ini. Jadi bersenang-senanglah membuat kalkulator sendiri dengan Arduino UNO.

Direkomendasikan: