DAFTAR ISI
1. Prosedur
2. Hardware dan Diagram Blok
3. Rangkaian Simulasi dan Prinsip Kerja
4. Flowchart
5. Kondisi
6. Video Simulasi
7. Download File
MODUL 3: Communication
Selasa, 30 April 2024
Tugas Pendahuluan 1
1. Prosedur [Daftar Isi]
1. Susunlah susunan komponen dalam perangkat lunak Proteus sesuai dengan kondisi eksperimen.
2. Buatlah skrip untuk perangkat Arduino menggunakan perangkat lunak Arduino IDE.
3. Lakukan proses kompilasi untuk skrip tersebut, kemudian unggah ke perangkat Arduino.
4. Setelah proses pengunggahan selesai, aktifkan simulasi rangkaian dalam perangkat lunak Proteus.
2. Hardware dan Diagram Blok [Daftar Isi]
3. Rangkaian Simulasi dan Prinsip Kerja [Daftar Isi]
Percobaan 3
Rangkaian ini terdiri dari dua buah Arduino: Arduino slave di sebelah kanan untuk menghasilkan output melalui LCD dan Arduino master di sebelah kiri sebagai input berupa keypad 4 x 4. Pada kondisi 7, key A - D menampilkan huruf A-D secara berurut, huruf yang ditampilkan mengalami pergeseran ke kiri dan huruf pertama akan muncul pertama kali tidak di kolom satu, melainkan kolom kedua, dikarenakan codingan di bawah ini dengan pengulangan penambahan 1 kolom pada setiap huruf yang muncul.
for (int i = 0; i < 15; i++) {
message[i] = message[i+1];
}
Percobaan 3
Untuk Master
#include <Wire.h>
#include <Keypad.h>
const byte ROWS = 4; // Jumlah baris pada keypad
const byte COLS = 4; // Jumlah kolom pada keypad
// Matriks keypad
char keys[ROWS][COLS] = {
{'7','8','9','A'},
{'4','5','6','B'},
{'1','2','3','C'},
{'*','0','#','D'}
};
// Pin yang terhubung ke baris keypad
byte rowPins[ROWS] = {7, 8, 9, 10};
// Pin yang terhubung ke kolom keypad
byte colPins[COLS] = {3, 4, 5, 6};
// Membuat objek keypad
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
void setup() {
Serial.begin(9600);
Wire.begin(); // Mulai komunikasi I2C sebagai master
}
void loop() {
char key = keypad.getKey(); // Membaca tombol yang ditekan pada keypad
if (key != NO_KEY) { // Jika tombol ditekan
Serial.println(key); // Tampilkan tombol yang ditekan di serial monitor
Wire.beginTransmission(9); // Mulai transmisi ke slave dengan alamat 9
Wire.write(key); // Kirim tombol yang ditekan ke slave
Wire.endTransmission(); // Akhiri transmisi
delay(100); // Tunda sebentar untuk menghindari bouncing pada tombol
}
}
Untuk Slave
#include <Wire.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Inisialisasi objek LCD dengan pin yang terhubung
char receivedChar; // Variabel untuk menyimpan karakter yang diterima dari master
char message[17] = " "; // Array untuk menyimpan pesan (16 karakter termasuk spasi)
void setup() {
lcd.begin(16, 2); // Inisialisasi LCD dengan ukuran 16x2
Wire.begin(9); // Mulai komunikasi I2C sebagai slave dengan alamat 9
Wire.onReceive(receiveEvent); // Panggil fungsi receiveEvent() saat menerima data dari master
}
void loop() {
// Tidak ada yang perlu dilakukan di loop()
}
void receiveEvent(int byteCount) {
if (byteCount == 1) {
receivedChar = Wire.read(); // Baca karakter yang diterima dari master
scrollAndDisplay(receivedChar); // Panggil fungsi untuk melakukan scroll dan menampilkan karakter di LCD
}
}
void scrollAndDisplay(char newChar) {
// Geser semua karakter ke kiri pada kolom pertama
for (int i = 0; i < 15; i++) {
message[i] = message[i+1];
}
// Tambahkan karakter baru ke posisi terakhir pada kolom pertama
message[15] = newChar;
// Tampilkan pesan pada LCD
lcd.clear();
lcd.setCursor(0, 0); // Set posisi kursor di baris kedua
lcd.print(message + 1); // Tampilkan pesan di baris pertama, dimulai dari karakter kedua atau kolom kedua
}
5. Kondisi [Daftar Isi]
Pada percobaan kali ini, kami melakukan percobaan ke-3 yang berfokus pada mengkomunikasikan I2C menggunakan Arduino dalam kondisi 7, yaitu Key A - D menampilkan huruf A-D secara berurut, huruf yang ditampilkan mengalami scroll ke kiri pada kolom kedua.
6. Video Simulasi [Daftar Isi]
Percobaan 3
7. Download File [Daftar Isi]
Untuk HTML di sini
Unduh Rangkaian Simulasi di sini
Unduh Program di sini
Unduh Video Simulasi di sini
Unduh Datasheet Arduino UNO di sini








0 Komentar