TP MODUL 1 PERCOBAAN 4
Percobaan IV
- Rangkailah seperti rangkaian berikut
- Buka Arduino IDE dan masukan listing program
- Upload program ke arduino
- Variasikan tombol yang ditekan dan amati keluarannya pada LCD
- Hardware
- Digram Blok
- Rangkaian
- Prinsip Kerja
Jalan kerja pada rangkaian ini ialah dimana sensor touch merupakan input keypad sebagai input dan lcd merupakan Output yang dimana ketika keypad ditekan akan mengeluarkan tulisan tombol pada lcd dan ketika ir touch berlogika 1 sekaligus keypad ditekan berdasarkan pasword yang benar maka LCD akan hidup
Ketika program berjalan dan diunggah ke Arduino, layar LCD akan menampilkan pesan "Masukkan password:". Kemudian, program akan terus berjalan dalam loop utama, menunggu input dari pengguna. Jika pengguna memasukkan karakter dari keypad sebelum password dimasukkan, karakter tersebut akan ditampilkan di layar LCD, memungkinkan pengguna memasukkan karakter password satu per satu.
Ketika sensor sentuh terdeteksi dan password belum dimasukkan, pesan di layar LCD akan dihapus dan diganti dengan "Password:", menandakan dimulainya proses memasukkan password. Selanjutnya, program akan memasuki loop untuk membaca input dari keypad dan menampilkan karakter yang dimasukkan di layar LCD. Proses ini akan berlanjut hingga tombol "#" ditekan, menandakan bahwa pengguna telah selesai memasukkan password.
Setelah itu, program akan kembali ke awal dan siap untuk memulai proses memasukkan password lagi jika diperlukan. Saat disimulasikan di Proteus, prinsip kerjanya akan sama dengan di dunia nyata, di mana pengguna akan melihat pesan yang sama dan berinteraksi dengan keypad dan layar LCD seperti yang dijelaskan di atas.
- Listing Program
#include <Keypad.h> #include <LiquidCrystal.h> const int numRows = 4; // Jumlah baris keypad const int numCols = 3; // Jumlah kolom keypad // Matriks untuk keypad char keymap[numRows][numCols] = { {'1','2','3'}, {'4','5','6'}, {'7','8','9'}, {'*','0','#'} }; // Pin untuk keypad byte rowPins[numRows] = {3, 2, 1, 0}; byte colPins[numCols] = {4, 5, 6}; Keypad keypad = Keypad(makeKeymap(keymap), rowPins, colPins, numRows, numCols); LiquidCrystal lcd(12, 11, 10, 9, 8, 7); // (RS, E, D4, D5, D6, D7) const int touchSensorPin = 13; // Pin untuk sensor sentuh bool passwordEntered = false; // Apakah password sudah dimasukkan void setup() { lcd.begin(16, 2); pinMode(touchSensorPin, INPUT); lcd.print("Masukkan password:"); } void loop() { char key = keypad.getKey(); if (key != NO_KEY && !passwordEntered) { lcd.print(key); } if (digitalRead(touchSensorPin) == HIGH && !passwordEntered) { // Sensor sentuh aktif, minta masukkan password lcd.clear(); lcd.print("Password:"); passwordEntered = true; // Tunggu sampai tombol keypad ditekan dan tampilkan karakter pada LCD while (true) { char key = keypad.getKey(); if (key != NO_KEY) { lcd.print(key); } // Keluar dari loop jika tombol "#" ditekan if (key == '#') { break; } } } }
Tidak ada komentar:
Posting Komentar