- Bahan yang Diperlukan:
- Mengenal Modul Skrin LCD TFT:
- Mengkalibrasi Skrin LCD TFT untuk Skrin Sentuh:
- Sambungan TFT LCD dengan Arduino:
- Memprogram Arduino anda untuk TFT LCD:
- Bekerja:
Arduino sentiasa membantu membina projek dengan mudah dan menjadikannya kelihatan lebih menarik. Memprogram layar LCD dengan pilihan layar sentuh mungkin terdengar sebagai tugas yang rumit, tetapi perpustakaan dan perisai Arduino membuatnya sangat mudah. Dalam projek ini, kami akan menggunakan layar LCD Arduino TFT 2.4 " untuk membina kalkulator Arduino Touch Screen kami sendiri yang dapat melakukan semua pengiraan asas seperti Penambahan, Pengurangan, Pembahagian dan Pendaraban.
Bahan yang Diperlukan:
- Arduino Uno
- Perisai paparan LCD TFT 2.4 "
- Bateri 9V.
Mengenal Modul Skrin LCD TFT:
Sebelum kita benar-benar menyelami projek ini, penting untuk mengetahui, bagaimana Modul TFT LCD 2.4 "ini berfungsi dan jenis apa yang terdapat di dalamnya. Mari kita lihat pin modul LCD TFT 2.4 inci ini.
Seperti yang anda lihat terdapat 28 pin yang akan sesuai dengan mana-mana Arduino Uno / Arduino Mega Board. Klasifikasi kecil pin ini diberikan dalam jadual di bawah.
Seperti yang anda lihat, pin dapat dikelaskan kepada empat klasifikasi utama seperti LCD Command Pins, LCD Data Pin, SD Card Pin dan Power Pin, Kami tidak perlu banyak mengetahui tentang cara kerja terperinci pin ini kerana ia akan dijaga oleh Perpustakaan Arduino kami.
Anda juga dapat mencari slot kad SD di bahagian bawah modul yang ditunjukkan di atas, yang dapat digunakan untuk memuatkan kad SD dengan fail gambar bmp, dan gambar-gambar ini dapat ditampilkan di layar LCD TFT kami menggunakan Program Arduino.
Perkara penting lain yang perlu diberi perhatian ialah IC Antaramuka anda. Terdapat banyak jenis modul TFT yang tersedia di pasaran bermula dari modul LCD Adafruit TFT yang asli hingga klon Cina yang murah. Program yang berfungsi dengan sempurna untuk perisai Adafruit anda mungkin tidak berfungsi sama untuk papan pelarian Cina. Oleh itu, sangat penting untuk mengetahui jenis paparan LCD mana yang anda pegang. Perincian ini mesti diperoleh daripada penjual. Sekiranya anda mempunyai klon murah seperti milik saya, kemungkinan besar menggunakan IC pemacu ili9341. Anda boleh mengikuti TFT LCD interfacing ini dengan tutorial Arduino untuk mencuba beberapa contoh program asas dan selesa dengan layar LCD. Lihat juga projek LCD TFT kami yang lain dengan Arduino di sini:
- Cara Menggunakan Jalur LED NeoPixel dengan Arduino dan TFT LCD
- Kunci Kod Digital Dikawal Telefon Pintar menggunakan Arduino
Mengkalibrasi Skrin LCD TFT untuk Skrin Sentuh:
Sekiranya anda merancang untuk menggunakan fungsi skrin sentuh modul TFT LCD anda, maka anda harus menentukurnya agar berfungsi dengan baik. Layar LCD tanpa penentukuran mungkin tidak berfungsi, misalnya anda mungkin menyentuh di satu tempat dan TFT mungkin bertindak balas untuk sentuhan di tempat lain. Hasil penentukuran ini tidak akan serupa untuk semua papan dan oleh itu anda ditinggalkan sendiri untuk melakukan ini.
Cara terbaik untuk mengkalibrasi adalah dengan menggunakan program contoh penentukuran (disertakan dengan perpustakaan) atau menggunakan monitor bersiri untuk mengesan kesilapan anda. Namun untuk projek ini kerana ukuran butang adalah penentukuran yang besar seharusnya tidak menjadi masalah besar dan saya juga akan menerangkan bagaimana anda dapat menentukurkan skrin anda di bawah bahagian pengaturcaraan di bawah.
Sambungan TFT LCD dengan Arduino:
Layar TFT LCD 2.4 "adalah Arduino Shield yang sempurna. Anda boleh terus menekan skrin LCD di atas Arduino Uno dan ia akan sesuai dengan pin dan meluncur masuk. Walau bagaimanapun, kerana keselamatan meliputi terminal Pengaturcaraan Arduino UNO anda dengan pita penebat kecil, sekiranya sekiranya terminal bersentuhan dengan layar LCD TFT anda. LCD yang dipasang di UNO akan kelihatan seperti ini di bawah.
Memprogram Arduino anda untuk TFT LCD:
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. Anda boleh menyemak program yang lengkap di akhir Artikel ini.
Catatan: Sangat penting bagi anda untuk memasang pustaka ini di Arduino IDE atau program ini untuk menyusun tanpa ralat.
Untuk memasang perpustakaan ini, anda hanya boleh mengklik 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, jika berjaya. Panduan terperinci untuk melakukan perkara yang sama diberikan dalam Tutorial Interfacing.
Sekarang, anda boleh menggunakan kod di bawah ini di Arduino IDE anda dan memuat naiknya ke Arduino UNO anda agar Kalkulator Skrin Sentuh berfungsi. Di bawah, saya telah menerangkan kod tersebut ke dalam segmen kecil.
Kami memerlukan tiga perpustakaan untuk program ini berfungsi; ketiga-tiga perpustakaan ini diberikan dalam fail ZIP yang anda muat turun dari pautan yang disediakan di atas. Saya telah memasukkannya ke dalam kod seperti yang ditunjukkan di bawah.
#sertakan
Seperti yang dinyatakan sebelumnya, kita perlu mengkalibrasi layar LCD agar berfungsi seperti yang diharapkan, tetapi jangan bimbang nilai yang diberikan di sini hampir universal. Pemboleh ubah TS_MINX, TS_MINY, TS_MAXX, dan TS_MAXY memutuskan penentukuran Skrin. Anda boleh bermain di sekitarnya jika anda merasakan penentukurannya tidak memuaskan.
#tentukan TS_MINX 125 #tentukan TS_MINY 85 #tentukan TS_MAXX 965 #tentukan TS_MAXY 905
Seperti yang kita ketahui, layar TFT LCD dapat menampilkan banyak warna, semua warna ini harus dimasukkan dalam nilai hex. Untuk menjadikannya lebih mudah dibaca manusia, kami memberikan nilai-nilai ini kepada pemboleh ubah seperti yang ditunjukkan di bawah.
#define WHITE 0x0000 // Black-> White #define KUNING 0x001F // Biru-> Kuning #define CYAN 0xF800 // Merah-> Cyan #define PINK 0x07E0 // Hijau-> Pink #define MERAH 0x07FF // Cyan -> Merah #define HIJAU 0xF81F // Pink -> Hijau #define BIRU 0xFFE0 // Kuning-> Biru #define HITAM 0xFFFF // Putih-> Hitam
Baiklah sekarang, kita boleh masuk ke bahagian pengaturcaraan. Terdapat tiga bahagian yang terlibat dalam program ini. Salah satunya ialah membuat UI kalkulator dengan butang dan paparan. Kemudian, mengesan butang berdasarkan pengguna menyentuh dan akhirnya mengira hasilnya dan memaparkannya. Marilah kita melalui mereka satu persatu.
1. Membuat UI Kalkulator:
Di sinilah anda dapat menggunakan banyak kreativiti anda untuk merancang Antaramuka Pengguna kalkulator. Saya hanya membuat susun atur asas kalkulator dengan 16 Butang dan satu unit paparan. Anda harus membina reka bentuk seperti anda akan melukis sesuatu pada cat MS. Perpustakaan yang ditambahkan akan membolehkan anda melukis Garisan, Segi Empat, Lingkaran, Huruf, String dan banyak lagi warna pilihan. Anda dapat memahami fungsi yang ada dari artikel ini.
Saya telah menggunakan kemampuan melukis garis dan kotak untuk merancang UI yang kelihatan sangat serupa dengan kalkulator tahun 90an. Setiap kotak mempunyai lebar dan tinggi 60 piksel.
// 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, HIJAU); 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);
2. Mengesan butang:
Tugas mencabar lain adalah mengesan sentuhan pengguna. Setiap kali pengguna menyentuh suatu tempat kita akan dapat mengetahui bagaimana kedudukan X dan Y piksel yang disentuhnya. Nilai ini dapat ditunjukkan pada monitor bersiri menggunakan println seperti gambar di bawah.
TSPoint p = waitTouch (); X = py; Y = px; Cetakan bersiri (X); Cetakan bersiri (','); Serial.println (Y); // + "" + Y);
Oleh kerana kami telah merancang kotak dengan lebar dan tinggi 60 piksel masing-masing dan mempunyai empat Baris dan untuk lajur bermula dari (0,0). Kedudukan setiap kotak dapat diramalkan seperti yang ditunjukkan pada gambar di bawah.
Tetapi dalam kes praktikal, ini tidak akan menjadi hasilnya. Akan ada perbezaan besar antara nilai yang diharapkan dan yang sebenarnya, kerana masalah penentukuran.
Oleh itu, untuk meramalkan kedudukan kotak yang tepat, anda perlu mengklik garis dan memeriksa kedudukannya yang sesuai pada monitor bersiri. Ini mungkin bukan kaedah yang paling profesional untuk melakukannya, tetapi tetap berfungsi dengan sempurna. Saya mengukur kedudukan semua garis dan memperoleh nilai di bawah.
Sekarang, kerana kita tahu kedudukan semua kotak. Apabila pengguna menyentuh di mana sahaja kita dapat meramalkan di mana dia menyentuh dengan membandingkan nilai (X, Y) dengan nilai untuk setiap kotak seperti yang ditunjukkan di bawah.
if (X <105 && X> 50) // Mengesan Butang pada Lajur 2 {if (Y> 0 && Y <85) {Serial.println ("Butang 0"); // Butang 0 Ditekan jika (Nombor == 0) Nombor = 0; nombor lain = (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}
3. Memaparkan Nombor dan Mengira Hasilnya:
Langkah terakhir adalah mengira hasilnya dan memaparkannya pada Skrin LCD TFT. Ini kalkulator arduino boleh melakukan operasi dengan 2 nombor sahaja. Kedua-dua nombor ini dinamakan sebagai pemboleh ubah "Num1" dan "Num2". Pemboleh ubah "Number" memberikan dan mengambil nilai dari Num1 dan Num2 dan juga memberikan hasilnya.
Apabila penggunaan menekan butang, satu digit ditambahkan ke nombor. Apabila butang lain ditekan, satu digit sebelumnya didarabkan dengan 10 dan nombor baru ditambah dengannya. Sebagai contoh, jika kita menekan 8 dan kemudian tekan 5 dan kemudian tekan 7. Kemudian pertama pemboleh ubah akan menahan 8 kemudian (8 * 10) + 5 = 85 kemudian (85 * 10) +7 = 857. Jadi akhirnya pemboleh ubah akan mempunyai nilai 857 dengannya.
jika (Y> 192 && Y <245) {Serial.println ("Butang 8"); jika (Nombor == 0) Nombor = 8; nombor lain = (Nombor * 10) + 8; // Ditekan lagi}
Apabila kita melakukan operasi seperti penambahan, ketika pengguna menekan butang penambahan, nilai dari Nombor akan dipindahkan ke Num1 dan kemudian Nombor akan dibuat sifar sehingga siap untuk mengambil input untuk angka kedua.
Apabila Equal ditekan, nilai dalam Number akan dikirim ke Num2 dan kemudian perhitungan masing-masing (dalam hal ini penambahan) akan dibuat dan hasilnya akan disimpan lagi dalam pemboleh ubah "Number".
Akhirnya nilai ini akan dipaparkan di skrin LCD.
Bekerja:
Cara kerja Kalkulator Skrin Sentuh Arduino ini mudah. Anda mesti memuat naik kod yang diberikan di bawah ini di Arduino anda dan nyalakannya. Anda mendapatkan kalkulator yang dipaparkan di skrin LCD anda.
Sekarang, anda boleh memasukkan sebarang nombor dan melakukan pengiraan anda. Hanya terhad kepada dua operasi dan satu-satunya pengendali buat masa ini. Tetapi, anda boleh mengubah kod untuk menjadikannya banyak pilihan.
Anda harus menekan "C" untuk menghapus nilai di layar setiap kali setelah melakukan pengiraan. Harap anda memahami projek ini dan menikmati pembinaan sesuatu yang serupa. Sekiranya anda mempunyai keraguan, sila hantarkannya di forum atau di bahagian komen di bawah. Sampai jumpa lagi dengan projek menarik yang lain sehingga senang perkomputeran !!
Lihat juga Video Demonstrasi Di Bawah.