Laporan Akhir 2 Modul 3




Modul 3 Percobaan IV


1.  Prosedur
 [Kembali]

1. Rangkai komponen sesuai percobaan dan kondisi yang dipilih.

2. Buat program menggunakan Arduino IDE.

3. Compile program yang telah dibuat lalu Upload ke dalam Arduino Uno.

4. Uji coba program pada rangkaian percobaan sesuai dengan kondisi yang diinginkan.

5. Selesai


2. Hardware dan Diagram Blok [Kembali]

Hardware:

1.Arduino Uno


2.Keypad


3.LCD 16x2




Diagram Blok:



3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]


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.
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]
Master 



Slave 


ListingProgram :

Master
// Memasukkan library yang dibutuhkan
#include <Keypad.h>
#include <Wire.h>

// Mendefinisikan jumlah baris dan kolom pada keypad
const byte ROWS = 4;
const byte COLS = 3;

// Membuat array yang berisi karakter-karakter pada keypad
char keys[ROWS][COLS] = {
 {'1', '2', '3'}, // Baris pertama pada keypad
 {'4', '5', '6'}, // Baris kedua pada keypad
 {'7', '8', '9'}, // Baris ketiga pada keypad
 {'*', '0', '#'}, // Baris keempat pada keypad
};

// Mendefinisikan pin-pin untuk baris pada Arduino
char rowPins[ROWS] = {9, 8, 7, 6};

// Mendefinisikan pin-pin untuk kolom pada Arduino
char colPins[COLS] = {5, 4, 3};

// Inisialisasi objek Keypad
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);

void setup()
{
 Wire.begin(); // Bergabung dengan bus I2C sebagai master
}

void loop(){
 
 char key = keypad.getKey(); // Mendapatkan tombol yang ditekan
 
 if (key) { // Jika ada tombol yang ditekan
 Wire.beginTransmission(4); // Mulai transmisi ke perangkat dengan alamat I2C #4
 Wire.write(key); // Mengirim karakter tombol yang ditekan
 Wire.endTransmission(); // Mengakhiri transmisi
 }
}

Slave
// Memasukkan library yang dibutuhkan untuk LCD dan komunikasi I2C
#include <LiquidCrystal.h>
#include <Wire.h>

// Inisialisasi objek LiquidCrystal dengan pin-pin yang terhubung ke LCD
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Sesuaikan pin sesuai dengan koneksi LCD

void setup()
{
 lcd.begin(16, 2); // Menginisialisasi LCD dengan ukuran 16 kolom dan 2 baris
 Wire.begin(4); // Bergabung dengan bus I2C dengan alamat #4 sebagai slave
 Wire.onReceive(receiveEvent); // Mendaftarkan fungsi receiveEvent sebagai event handler ketika data diterima
 Serial.begin(9600); // Memulai komunikasi serial untuk output
}

void loop()
{
 delay(100); // Loop utama hanya memiliki delay, pemrosesan dilakukan di receiveEvent
}

// Fungsi yang dijalankan setiap kali data diterima dari master
void receiveEvent(int howMany)
{
 char c = Wire.read(); // Menerima byte sebagai karakter
 Serial.println(c); // Mencetak karakter ke serial monitor
 lcd.clear(); // Membersihkan layar LCD
 lcd.setCursor(0, 0); // Menyetel kursor ke posisi awal
 lcd.print(c); // Menampilkan karakter pada LCD
 delay(100); // Delay untuk stabilitas
}


5. Kondisi [Kembali]

Modul 3 Percobaan 4

6.  Video Simulasi [Kembali]



7. Download File [Kembali]


Laporan Akhir 2 Modul 3 Laporan Akhir 2 Modul 3 Reviewed by Andre Kurniawan on Mei 01, 2024 Rating: 5

Tidak ada komentar:

Diberdayakan oleh Blogger.