- Bahan yang Dibutuhkan:
- Mengenal Modul Layar LCD TFT:
- Mengkalibrasi Layar LCD TFT untuk Layar Sentuh:
- Koneksi LCD TFT dengan Arduino:
- Memprogram Arduino Anda untuk TFT LCD:
- Kerja:
Arduino selalu membantu membangun proyek dengan mudah dan membuatnya terlihat lebih menarik. Memprogram layar LCD dengan opsi layar sentuh mungkin terdengar sebagai tugas yang rumit, tetapi perpustakaan dan perisai Arduino membuatnya sangat mudah. Dalam proyek ini kami akan menggunakan layar LCD TFT Arduino 2,4 ” untuk membuat kalkulator Layar Sentuh Arduino kami sendiri yang dapat melakukan semua perhitungan dasar seperti Penjumlahan, Pengurangan, Pembagian dan Perkalian.
Bahan yang Dibutuhkan:
- Arduino Uno
- Pelindung layar LCD TFT 2,4 ”
- Baterai 9V.
Mengenal Modul Layar LCD TFT:
Sebelum kita benar-benar menyelami proyek ini, penting untuk diketahui, bagaimana Modul LCD TFT 2,4 ”ini bekerja dan jenis apa saja yang ada di dalamnya. Mari kita lihat pinout dari modul layar LCD TFT 2,4 ”ini.
Seperti yang Anda lihat, ada 28 pin yang sangat cocok dengan Arduino Uno / Arduino Mega Board. Klasifikasi kecil dari pin ini diberikan pada tabel di bawah ini.
Seperti yang Anda lihat, pin dapat diklasifikasikan ke dalam empat klasifikasi utama seperti Pin Perintah LCD, Pin Data LCD, Pin Kartu SD dan Pin Daya, Kami tidak perlu tahu banyak tentang detail kerja pin ini karena mereka akan ditangani oleh Perpustakaan Arduino kami.
Anda juga dapat menemukan slot kartu SD di bagian bawah modul yang ditunjukkan di atas, yang dapat digunakan untuk memuat kartu SD dengan file gambar bmp, dan gambar-gambar ini dapat ditampilkan di layar LCD TFT kami menggunakan Program Arduino.
Hal penting lainnya yang perlu diperhatikan adalah IC Antarmuka Anda. Ada banyak jenis modul TFT yang tersedia di pasaran mulai dari modul LCD TFT Adafruit asli hingga klon Cina yang murah. Program yang berfungsi sempurna untuk perisai Adafruit Anda mungkin tidak berfungsi sama untuk papan breakout Cina. Jadi, sangat penting untuk mengetahui jenis layar LCD apa yang sedang Anda pegang. Detail ini harus diperoleh dari vendor. Jika Anda memiliki tiruan murah seperti milik saya maka kemungkinan besar menggunakan IC driver ili9341. Anda dapat mengikuti tutorial antarmuka LCD TFT dengan Arduino ini untuk mencoba beberapa program contoh dasar dan merasa nyaman dengan layar LCD. Lihat juga proyek LCD TFT kami yang lain dengan Arduino di sini:
- Cara Menggunakan NeoPixel LED Strip dengan Arduino dan TFT LCD
- Smart Phone Controlled Digital Code Lock menggunakan Arduino
Mengkalibrasi Layar LCD TFT untuk Layar Sentuh:
Jika Anda berencana menggunakan fungsi layar sentuh pada modul LCD TFT Anda, maka Anda harus mengkalibrasinya agar berfungsi dengan benar. Layar LCD tanpa kalibrasi mungkin tidak berfungsi, misalnya Anda mungkin menyentuh di satu tempat dan TFT mungkin merespons sentuhan di tempat lain. Hasil kalibrasi ini tidak akan sama untuk semua papan dan karenanya Anda harus melakukannya sendiri.
Cara terbaik untuk mengkalibrasi adalah dengan menggunakan program contoh kalibrasi (dilengkapi pustaka) atau menggunakan monitor serial untuk mendeteksi kesalahan Anda. Namun untuk proyek ini karena ukuran tombolnya besar, kalibrasi seharusnya tidak menjadi masalah besar dan saya juga akan menjelaskan bagaimana Anda dapat mengkalibrasi layar Anda di bawah bagian pemrograman di bawah ini.
Koneksi LCD TFT dengan Arduino:
Layar LCD TFT 2,4 inci adalah Arduino Shield yang sempurna. Anda dapat langsung mendorong layar LCD di atas Arduino Uno dan itu akan cocok dengan pin dan meluncur masuk. Namun, sebagai masalah keamanan, tutupi terminal Pemrograman Arduino UNO Anda dengan pita isolasi kecil, untuk berjaga-jaga jika terminal bersentuhan dengan layar LCD TFT Anda. LCD yang dipasang pada UNO akan terlihat seperti ini di bawah ini.
Memprogram Arduino Anda untuk TFT LCD:
Kami menggunakan Perpustakaan SPFD5408 untuk membuat kode kalkulator Arduino ini berfungsi. Ini adalah pustaka Adafruit yang dimodifikasi dan dapat bekerja dengan lancar dengan Modul TFT LCD kami. Anda dapat memeriksa program lengkapnya di akhir Artikel ini.
Catatan: Sangat penting bagi Anda untuk menginstal pustaka ini di Arduino IDE Anda atau program ini untuk dikompilasi tanpa kesalahan apa pun.
Untuk menginstal library ini, Anda cukup mengklik link di atas yang akan membawa Anda ke halaman Github. Di sana klik clone atau download dan pilih "Download 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 harus melihat "Perpustakaan ditambahkan ke Perpustakaan Anda" di sudut kiri bawah Arduino, jika berhasil. Panduan rinci untuk melakukan hal yang sama diberikan dalam Tutorial Antarmuka.
Sekarang, Anda dapat menggunakan kode di bawah ini di Arduino IDE Anda dan mengunggahnya ke Arduino UNO Anda agar Kalkulator Layar Sentuh berfungsi. Lebih jauh ke bawah, saya telah menjelaskan kode menjadi segmen-segmen kecil.
Kami membutuhkan tiga perpustakaan agar program ini dapat bekerja; ketiga pustaka ini diberikan dalam file ZIP yang Anda unduh dari tautan yang disediakan di atas. Saya hanya memasukkannya ke dalam kode seperti yang ditunjukkan di bawah ini.
#include
Seperti yang dikatakan sebelumnya, kita perlu mengkalibrasi layar LCD agar berfungsi seperti yang diharapkan, tetapi jangan khawatir nilai yang diberikan di sini hampir universal. Variabel TS_MINX, TS_MINY, TS_MAXX, dan TS_MAXY menentukan kalibrasi Layar. Anda bisa mempermainkannya jika merasa kalibrasi tidak memuaskan.
# Tentukan TS_MINX 125 # Tentukan TS_MINY 85 # Tentukan TS_MAXX 965 # Tentukan TS_MAXY 905
Seperti kita ketahui layar LCD TFT dapat menampilkan banyak warna, semua warna tersebut harus dimasukkan dalam nilai hex. Agar lebih mudah dibaca manusia, kami menetapkan nilai-nilai ini ke variabel seperti yang ditunjukkan di bawah ini.
#define WHITE 0x0000 // Black-> White #define YELLOW 0x001F // Blue-> Yellow #define CYAN 0xF800 // Red-> Cyan #define PINK 0x07E0 // Green-> Pink #define RED 0x07FF // Cyan -> Red #define GREEN 0xF81F // Pink -> Green #define BLUE 0xFFE0 // Yellow-> Blue #define BLACK 0xFFFF // White-> Black
Oke sekarang, kita bisa masuk ke bagian pemrograman. Ada tiga bagian yang terlibat dalam program ini. Salah satunya adalah membuat UI kalkulator dengan tombol dan tampilan. Kemudian, mendeteksi tombol berdasarkan sentuhan pengguna dan akhirnya menghitung hasil dan menampilkannya. Mari kita bahas satu per satu.
1. Membuat UI Kalkulator:
Di sinilah Anda dapat menggunakan banyak kreativitas Anda untuk merancang Antarmuka Pengguna kalkulator. Saya baru saja membuat tata letak dasar kalkulator dengan 16 Tombol dan satu unit tampilan. Anda harus membuat desain seperti Anda akan menggambar sesuatu di MS paint. Pustaka yang ditambahkan akan memungkinkan Anda menggambar Garis, Persegi Panjang, Lingkaran, Karakter, String, dan banyak lagi warna yang disukai. Anda dapat memahami fungsi yang tersedia dari artikel ini.
Saya telah menggunakan kemampuan menggambar garis dan kotak untuk mendesain UI yang terlihat sangat mirip dengan kalkulator tahun 90-an. Setiap kotak memiliki lebar dan tinggi 60 piksel.
// Gambar 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, BLACK); tft.fillRect (0,140,60,60, BLACK); tft.fillRect (0,80,60,60, BLACK); // Gambar Kolom Ketiga tft.fillRect (120,260,60,60, GREEN); tft.fillRect (120,200,60,60, BLACK); tft.fillRect (120.140,60,60, BLACK); tft.fillRect (120,80,60,60, BLACK); // Gambar Kolom Kedua & Keempat untuk (int b = 260; b> = 80; b- = 60) {tft.fillRect (180, b, 60,60, BLUE); tft.fillRect (60, b, 60,60, BLACK);} // Gambar Garis Horizontal untuk (int h = 80; h <= 320; h + = 60) tft.drawFastHLine (0, h, 240, WHITE); // Gambar Garis Vertikal untuk (int v = 0; v <= 240; v + = 60) tft.drawFastVLine (v, 80, 240, WHITE); // Tampilkan 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 (WHITE); tft.println (simbol);
2. Mendeteksi tombol:
Tugas menantang lainnya adalah mendeteksi sentuhan pengguna. Setiap kali pengguna menyentuh suatu tempat kita akan bisa bagaimana dimana posisi X dan Y dari pixel yang disentuhnya. Nilai ini dapat ditampilkan pada monitor serial menggunakan println seperti yang ditunjukkan di bawah ini.
TSPoint p = waitTouch (); X = py; Y = px; Serial.print (X); Serial.print (','); Serial.println (Y); // + "" + Y);
Karena kita telah mendesain kotak dengan lebar dan tinggi masing-masing 60 piksel dan memiliki empat Baris dan untuk kolom mulai dari (0,0). Posisi masing-masing kotak dapat diprediksi seperti pada gambar di bawah ini.
Namun dalam kasus praktis, ini tidak akan menjadi hasil. Akan ada perbedaan besar antara nilai yang diharapkan dan nilai sebenarnya, karena masalah kalibrasi.
Jadi, untuk memprediksi posisi yang tepat dari kotak tersebut, Anda harus mengklik garis dan memeriksa posisinya yang sesuai pada monitor serial. Ini mungkin bukan cara paling profesional untuk melakukannya, tetapi tetap berfungsi dengan sempurna. Saya mengukur posisi semua garis dan mendapatkan nilai di bawah ini.
Sekarang, karena kita tahu posisi semua kotak. Ketika pengguna menyentuh di mana saja, kita dapat memprediksi di mana dia telah menyentuh dengan membandingkan nilai (X, Y) miliknya dengan nilai untuk setiap kotak seperti yang ditunjukkan di bawah ini.
if (X <105 && X> 50) // Tombol Deteksi pada Kolom 2 {if (Y> 0 && Y <85) {Serial.println ("Tombol 0"); // Tombol 0 Ditekan jika (Bilangan == 0) Bilangan = 0; lain Nomor = (Nomor * 10) + 0; // Ditekan dua kali} if (Y> 85 && Y <140) {Serial.println ("Button 2"); jika (Angka == 0) Angka = 2; lain Nomor = (Nomor * 10) + 2; // Ditekan dua kali}
3. Menampilkan Angka dan Menghitung Hasilnya:
Langkah terakhir adalah menghitung hasil dan menampilkannya pada Layar LCD TFT. Kalkulator Arduino ini dapat melakukan operasi dengan 2 angka saja. Kedua angka ini dinamai sebagai variabel “Num1” dan “Num2”. Variabel “Number” memberi dan menerima nilai dari Num1 dan Num2 dan juga menghasilkan hasilnya.
Saat penggunaan menekan tombol, satu digit ditambahkan ke nomor. Ketika tombol lain ditekan, digit sebelumnya dikalikan dengan 10 dan angka baru ditambahkan dengannya. Misalnya, jika kita menekan 8 lalu tekan 5 lalu tekan 7. Kemudian variabel pertama akan menampung 8 kemudian (8 * 10) + 5 = 85 kemudian (85 * 10) +7 = 857. Jadi akhirnya variabel tersebut akan memiliki nilai 857 dengan itu.
if (Y> 192 && Y <245) {Serial.println ("Tombol 8"); jika (Angka == 0) Angka = 8; lain Nomor = (Nomor * 10) + 8; // Ditekan lagi}
Ketika kita melakukan operasi seperti penjumlahan, ketika pengguna menekan tombol penjumlahan, nilai dari Number akan ditransfer ke Num1 dan kemudian Number akan menjadi nol sehingga siap untuk mengambil input untuk angka kedua.
Ketika Equal ditekan, nilai dalam Number akan dikirim ke Num2 dan kemudian perhitungan masing-masing (dalam hal ini penjumlahan) akan dilakukan dan hasilnya akan disimpan lagi dalam variabel “Number”.
Akhirnya nilai ini akan ditampilkan di layar LCD.
Kerja:
Cara kerja Kalkulator Layar Sentuh Arduino ini sederhana. Anda harus mengunggah kode yang diberikan di bawah ini ke Arduino Anda dan menyalakannya. Anda mendapatkan kalkulator ditampilkan di layar LCD Anda.
Sekarang, Anda dapat memasukkan angka apa saja dan melakukan perhitungan Anda. Ini dibatasi hanya untuk dua operan dan hanya operator untuk saat ini. Namun, Anda dapat mengubah kode agar memiliki banyak opsi.
Anda harus menekan "C" untuk menghapus nilai di layar setiap kali setelah melakukan perhitungan. Harap Anda memahami proyek tersebut dan menikmati membangun sesuatu yang serupa. Jika Anda memiliki keraguan, silakan posting di forum atau di bagian komentar di bawah. Sampai jumpa di lain waktu dengan proyek menarik lainnya sampai saat itu selamat berkomputasi !!
Cek Juga Video Demonstrasi Di Bawah Ini.