Tugas Pendahuluan 2 Modul 3
(Percobaan 3 Kondisi 5)
a. Rangkai komponen sesuai percobaan dan kondisi yang dipilih.
b. Buat program menggunakan Arduino IDE.
c. Transfer program yang telah dibuat ke Arduino yang ada di Proteus.
d. Uji coba program di simulasi sesuai dengan kondisi yang diinginkan.
e. Proses selesai setelah uji coba berhasil dilakukan.
3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]
4. Flowchart dan Listing Program [Kembali]
2. Hardware dan Diagram Blok
[Kembali]
3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]
Gambar Rangkaian Simulasi
Master:
Prinsip kerja Arduino yang bertindak sebagai Master dalam rangkaian ini melibatkan beberapa langkah penting. Pertama, Arduino master secara berkala akan memeriksa status pin digital yang terhubung ke tombol pada keypad untuk menentukan apakah ada penekanan tombol oleh pengguna. Selanjutnya, Arduino master menerjemahkan pola penekanan tombol menjadi kode atau perintah yang dapat dimengerti oleh Arduino slave. Kemudian, Arduino master mengirimkan kode yang dihasilkan ke Arduino slave melalui pin digital yang telah ditetapkan untuk komunikasi antara master dan slave. Proses ini memungkinkan Arduino slave dapat merespons sesuai dengan instruksi yang diterima dari master.
Slave:
Prinsip kerja Arduino Slave dalam rangkaian ini melibatkan beberapa langkah penting. Pertama, Arduino slave secara terus menerima instruksi dari Arduino master melalui pin komunikasi yang telah ditetapkan untuk menerima kode atau perintah yang dikirimkan oleh master. Selanjutnya, setelah menerima kode dari master, Arduino slave mengambil peran dalam mengubah kode tersebut menjadi instruksi yang dapat dipahami. Kode yang diterima merepresentasikan tombol yang ditekan pada keypad atau perintah lain yang dikirim oleh master. Setelah itu, Arduino slave bertanggung jawab untuk mengontrol layar LCD sesuai dengan instruksi yang diterima. Ini mencakup mengirimkan perintah yang sesuai ke layar LCD, seperti instruksi untuk menampilkan karakter tertentu, memperbarui teks yang ditampilkan, atau melakukan tindakan lain yang diperlukan.
4. Flowchart dan Listing Program [Kembali]
Flowchart
Master
Slave
Listing Program
Master
#include <Keypad.h>
#include <Wire.h>
const byte ROWS = 4;
const byte COLS = 4; // Diubah menjadi 4 kolom untuk menambahkan tombol A-D
char keys[ROWS][COLS] = {
{'1', '2', '3', 'A'}, // Menambahkan tombol 'A'
{'4', '5', '6', 'B'}, // Menambahkan tombol 'B'
{'7', '8', '9', 'C'}, // Menambahkan tombol 'C'
{'*', '0', '#', 'D'}, // Menambahkan tombol 'D'
};
byte rowPins[ROWS] = {9, 8, 7, 6};
byte colPins[COLS] = {5, 4, 3, 2}; // Menambahkan pin untuk kolom keempat
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
void setup() {
Wire.begin(); // join i2c bus (address optional for master)
}
void loop() {
char key = keypad.getKey();
if (key) {
Wire.beginTransmission(4); // transmit to device #4
Wire.write(key);
Wire.endTransmission(); // stop transmitting
}
}
Slave
#include <Wire.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Alamat I2C LCD dan ukuran (misalnya 16x2)
char receivedKey = '\0';
bool blinking = false;
void setup() {
lcd.begin(16,2); // Inisialisasi LCD
Wire.begin(4); // Terima data pada alamat #4
Wire.onReceive(receiveEvent);
Serial.begin(9600); // start serial for output
}
void loop() {
if (blinking) {
lcd.setCursor(0, 0);
lcd.print(receivedKey);
delay(500); // Tunda 500ms
lcd.setCursor(0, 0);
lcd.print(" "); // Hapus huruf yang ditampilkan
delay(500); // Tunda 500ms
}
}
void receiveEvent(int numBytes) {
while (Wire.available()) {
receivedKey = Wire.read();
if (receivedKey >= 'A' && receivedKey <= 'D') {
blinking = true; // Aktifkan blinking jika tombol yang ditekan adalah A - D
}
}
}
Percobaan 3 Kondisi 5
Key A-D menampilkan huruf A-D secara berurutan huruf yang ditampilkan mengalami blinking pada kolom pertama.
6. Video Simulasi [Kembali]
Download Simulasi Rangkaian Klik disini
Download HTML Klik disini
Download Datasheet ARDUINO UNO klik disini
Download Datasheet Keypad Klik disini
Tidak ada komentar: