TUGAS PENDAHULUAN 1 M3 up&uc
1. Prosedur [Kembali]
- Susunlah susunan komponen dalam perangkat lunak Proteus sesuai dengan kondisi eksperimen.
- Buatlah skrip untuk perangkat Arduino menggunakan perangkat lunak Arduino IDE.
- Lakukan proses kompilasi untuk skrip tersebut, kemudian unggah ke perangkat Arduino.
- Setelah proses pengunggahan selesai, aktifkan simulasi rangkaian dalam perangkat lunak Proteus
2. Hardware dan Diagram Blok [Kembali]
Pada dasarnya rangkaian ini menggunakan komunikasi data jenis I2C. Dalam komunikasi I2C, ada dua jenis perangkat, yaitu master dan slave. Komunikasi dimulai ketika master menginisiasi transmisi dengan mengirimkan sinyal start (START) di jalur SDA saat SCL berada pada level tinggi. Pada rangkaian ini sinyal start dimulai ketika kita mulai menekan keypad. Kemudian, master mengirimkan alamat slave yang dituju beserta operasi yang diminta yang mana inputan pada keypad tadi. Setelah itu, slave yang dituju memberikan respons sesuai permintaan master yang mana Slave akan mengeluarkan output sesuai masukan dari master dan outputnya akan ditampilkan pada LCD. Data dikirimkan antara master dan slave secara serial pada jalur SDA, dan sinkron dengan sinyal clock pada jalur SCL. Komunikasi diakhiri dengan master mengirimkan sinyal stop (STOP) di jalur SDA saat SCL berada pada level tinggi.
Komunikasi ini menggunakan jenis komunikasi I2C.
4. Flowchart dan Listing Program [Kembali]
Flowcharth
Listing Program
#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
}
}
Flowcharth Slave
Listing program
#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. Video Demo [Kembali]
Saat Praktikum
6. Kondisi [Kembali]
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.
7. Video Simulasi [Kembali]
8. Link Download [Kembali]
Download HTML [Klik di sini]
Download file rangkaian [Klik di sini]
Download video rangkaian [Klik di sini]
Download program Arduino [Klik di sini]
Download datasheet Arduino [Klik di sini]
Komentar
Posting Komentar