Tugas Pendahuluan 2
== Percobaan 4 Tanpa Kondisi ==
- Membuka proteus
- Buka file proteus yang sudah disesuaikan dengan kondisi
- Running rangkaiannya
- Sesuaikan dengan kondisi yang diinginkan
Keypad
Sebelum menjalankan rangkaian, compile terlebih dahulu listing program pada arduino IDE dan pastikan kembali file .HEX pada arduino diproteus sesuai dengan yang ada di hasil compiling arduino IDE.
Pada gambar rangkaian diatas adalah kondisi awal rangkaian sebelum dijalankan.
Prinsip kerja rangkaian ini berdasarkan komunikasi UART (Universal Asynchronous Receiver-Transmitter) adalah sebagai berikut:
Inisialisasi UART: Pada fungsi setup(), komunikasi serial diatur dengan memulai UART menggunakan `Serial.begin(9600)`. Ini menentukan kecepatan komunikasi serial menjadi 9600 baud.
Penerimaan Data: Pada loop(), Arduino terus memeriksa apakah ada data yang tersedia di port serial menggunakan `Serial.available()`.
Membaca Data: Jika ada data yang tersedia, Arduino membacanya dari port serial menggunakan `Serial.read()`.
Penanganan Data: Data yang dibaca kemudian ditampilkan di LCD setelah teks "Tombol :" dengan menggunakan `lcd.print(message)`.
Proses ini terus berulang secara terus-menerus, sehingga Arduino dapat terus menerima dan menampilkan data yang dikirimkan melalui komunikasi serial.
LISTING PROGRAM MASTER
// MASTER
#include <Keypad.h>
const byte ROWS = 4;
const byte COLS = 3;
// Array to represent keys on keypad
char hexaKeys[ROWS][COLS] = {
{'1', '2', '3'},
{'4', '5', '6'},
{'7', '8', '9'},
{'*', '0', '#'}
};
byte rowPins[ROWS] = {7, 6, 5, 4};
byte colPins[COLS] = {8, 9 , 10};
// Create keypad object
Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
void setup()
{
Serial.begin(9600);
}
void loop()
{
char customKey = customKeypad.getKey();
if (customKey)
{
Serial.write(customKey);
}
delay(20);
}
LISTING PROGRAM SLAVE
#include <LiquidCrystal.h>
LiquidCrystal lcd(A0, A1, A2, A3, A4, A5);
char message;
void setup()
{
Serial.begin(9600);
lcd.begin(16, 2);
}
void loop()
{
lcd.setCursor(0, 0);
lcd.print("Tombol :");
if (Serial.available())
{
message = Serial.read();
lcd.print(message);
}
}
Modul 1: Percobaan 4
Tidak ada komentar:
Posting Komentar