Modul I GENERAL INPUT DAN OUTPUT
- Rangkailah seperti rangkaian berikut
- Buka Arduino IDE dan masukan listing program Upload program ke arduino
- Variasikan tombol yang ditekan dan amati keluarannya pada LCD
Rangkaian Hardware |
Blok Diagram |
Rangkaian ini berfungsi sebagai berikut:
Sensor Touch sebagai input yang akan mengizinkan LCD dalam menampilkan KEYPAD jika berlogika high. LCD akan menampilkan output dari keypad jika sensor touch berlogika high atau 1. Namun, jika sensor touch mati atau berlogika 0, LCD tidak akan menampilkan inputan dari keypad, dan layar LCD akan dihapus (diclearkan) jika sebelumnnya menampilkan output.
Keypad berperan sebagai input, di mana tombol-tombol pada keypad akan menghasilkan input.
LCD berfungsi sebagai output, menampilkan teks yang sesuai dengan tombol yang ditekan pada keypad. Misalnya, jika kita menekan tombol “1”, LCD akan menampilkan “Tombol: 1”. Hal yang sama berlaku untuk tombol pagar (#) dan tombol bintang (*) serta tombol angka 0 hingga 9.
Listing Program
// Include the Keypad library
#include <Keypad.h> //Pustaka ini diperlukan karena kita akan menggunakan keypad dalam program.
#include <LiquidCrystal.h> //Pustaka ini diperlukan karena kita akan menggunakan layar LCD dalam program.
#define touch 10 //Mendefinisikan pin 10 sebagai pin yang digunakan untuk sensor sentuhan (touch sensor).
// Constants for row and column sizes
const byte ROWS = 4; //Mendefinisikan konstanta untuk jumlah baris pada keypad.
const byte COLS = 4; //Mendefinisikan konstanta untuk jumlah kolom pada keypad.
LiquidCrystal lcd(A0, A1, A2, A3, A4, A5); //Membuat objek lcd dengan menggunakan konstruktor LiquidCrystal untuk menginisialisasi layar LCD dengan pin A0 hingga A5.
// Array to represent keys on keypad
char hexaKeys[ROWS][COLS] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
}; // Membuat matriks hexaKeys yang merepresentasikan tombol-tombol pada keypad. Setiap elemen matriks menyimpan karakter yang mewakili tombol yang ditekan.
// Connections to Arduino
byte rowPins[ROWS] = {9, 8, 7, 6}; //Mendefinisikan pin yang digunakan untuk baris pada keypad.
byte colPins[COLS] = {5, 4, 3, 2}; //Mendefinisikan pin yang digunakan untuk kolom pada keypad.
// Create keypad object
Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); //Membuat objek customKeypad dengan menggunakan konstruktor Keypad. Konstruktor ini memerlukan matriks keymap, pin baris, pin kolom, serta jumlah baris dan kolom.
void setup(){
// Setup serial monitor
pinMode(touch,INPUT); // Menetapkan pin touch sebagai input.
Serial.begin(9600); //Menginisialisasi komunikasi serial dengan kecepatan 9600 baud.
lcd.begin(16, 2); //Menginisialisasi layar LCD dengan konfigurasi 16 kolom dan 2 baris.
} //Ini adalah fungsi setup() yang dijalankan sekali saat mikrokontroler pertama kali dinyalakan. Di dalamnya terdapat inisialisasi pin, inisialisasi Serial Monitor, dan inisialisasi layar LCD.
void loop() { //Ini adalah fungsi loop() yang akan dieksekusi secara berulang.
int sensor=digitalRead(touch); //Membaca nilai input dari pin touch dan menyimpannya dalam variabel sensor.
// Get key value if pressed
char customKey = customKeypad.getKey(); //Membaca tombol yang ditekan pada keypad dan menyimpannya dalam variabel customKey.
if ( sensor==HIGH ) // Memeriksa apakah sensor sentuhan aktif.{
if (customKey) //Memeriksa apakah ada tombol yang ditekan pada keypad. {
// Print key value to serial monitor
lcd.setCursor(0, 0); //Mengatur kursor pada posisi baris 0 dan kolom 0 di layar LCD.
lcd.print("Tombol :"); //Mencetak teks "Tombol :" pada layar LCD.
lcd.print(customKey); //Mencetak nilai tombol yang ditekan pada layar LCD.
}
}
else {
lcd.clear (); //Menghapus konten yang ada pada layar LCD.
}
}
Saat Praktikum
P4K7 (Sertakan Touch sensor, mode diatur dengan keypad, tampilan mode pada LCD dan mode dapat diatur ketika Touch sensor berlogika HIGH)
Tidak ada komentar:
Posting Komentar