Laporan Akhir 1 Modul 3




PERCOBAAN 3
KOMUNIKASI I2C MENGGUNAKAN ARDUINO

1. Prosedur
[Kembali]
1. Rangkai komponen sesuai percobaan dan kondisi yang dipilih.
2. Buat program menggunakan Arduino IDE.
3. Transfer program yang telah dibuat ke Arduino yang ada di Proteus.
4. Uji coba program di simulasi sesuai dengan kondisi yang diinginkan.
5. Proses selesai setelah uji coba berhasil dilakukan.

2. Hardware dan Diagram Blok [Kembali]

a. Hardware



b. diagram blok


3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

A. Rangkaian Simulasi



B. Prinsip Kerja

MASTER
Arduino master berfungsi untuk membaca input yang diberikan oleh keypad kemudian menerjemahkan input tersebut menjadi sebuah pesan sesuai dengan kondisi yang diberikan. berdasarkan kondisi, key A- D menampilkan huruf A- D secara berturut- turut. ketika key 1, 2, dan 3, ditekan, maka inputan tersebut akan diterjemahkan menjadi pesan "A". Jika key 4, 5, 6 ditekan, maka inputan tersebut akan ditulisan sebagai pesan "B". Ketika tombol yang ditekan adalah 7, 8, 9 maka inputan tersebut akan diterjemahkan menjadi pesan "C" sedangkan ketika input yang diberikan selain yang ditulisakn sbeelumnya, maka diterjemahkan menjadi pesan "D". Kemudian pesan tersebut akan dikirimkan oleh arduino master ke arduino slave melalui komunikasi I2C.

SLAVE

Arduino slvae berfungsi untuk menerima pesan yang dikirimkan oeh arduino master. Arduino salve dihubungkan dengan LCD sebagai output untuk menampilkan instruksi yang dibawa oelh pesan. Berdasarkan kondisi, huruf akan ditempilkan akan mengalami blinking pada kolom pertama. Ketika pesan yang diterima adalah A, maka LCD akan menampilkan huruf "A", ketika pesan yang diterima adalah B, maka LCD akan menampilkan huruf "B", ketika pesan yang diterima adalah C, maka LCD akan menampilkan huruf "C", sedangkan ketika pesan yang diterima adalah D, maka LCD akan menampilkan huruf "D". Pesan tersebut diterima oleh arduino slave melalui komunikasi I2C.



4. Flowcharth dan Listing Program [Kembali]

a. Flowcharth

Master


Slave



b. Listing Program

Master:

#include <Keypad.h>
#include <Wire.h>

const byte ROWS = 4;
const byte COLS = 3;
char keys[ROWS][COLS] = {
  {'1', '2', '3'},
  {'4', '5', '6'},
  {'7', '8', '9'},
  {'*', '0', '#'},
};
char rowPins[ROWS] = {9, 8, 7, 6};
char colPins[COLS] = {5, 4, 3};
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) {
    char letter;
    if (key == '1' || key == '2' || key == '3') {
      letter = 'A';
    } else if (key == '4' || key == '5' || key == '6') {
      letter = 'B';
    } else if (key == '7' || key == '8' || key == '9') {
      letter = 'C';
    } else {
      letter = 'D';
    }
    Wire.beginTransmission(4); // transmit to device #4
    Wire.write(letter);
    Wire.endTransmission(); // stop transmitting
    delay(100); // Added delay for stability
  }
}

Slave:

#include <LiquidCrystal.h>
#include <Wire.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Sesuaikan pin sesuai dengan koneksi LCD
char receivedLetter;
bool letterReceived = false;

void setup() {
  lcd.begin(16, 2);
  Wire.begin(4); // join i2c bus with address #4
  Wire.onReceive(receiveEvent); // register event
  Serial.begin(9600); // start serial for output
}

void loop() {
  if (letterReceived) {
    for (int i = 0; i < 5; i++) {
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print(receivedLetter);
      delay(300); // Wait for 300ms
      lcd.clear(); // Clear LCD
      delay(300); // Wait for another 300ms
    }
    letterReceived = false; // Reset letterReceived flag
  }
}

void receiveEvent(int howMany) {
  receivedLetter = Wire.read(); // Read the received character
  letterReceived = true; // Set the flag to indicate letter received
}


5. Kondisi [Kembali]

Percobaan 3 kondisi 5


5. Video Simulasi [Kembali]

                                         


7. Download File [Kembali]

Download HMTL Klik disini
Download Program Klik disini
Download Video Percobaan Klik disini
Download Datasheet ARDUINO UNO klik disini
Download Datasheet Keypad  klik disini
Download Datasheet LCD klik disini








Tidak ada komentar:

Posting Komentar

MODUL 4 PRATIKUM uP dan uC

[KEMBALI KE MENU SEBELUMNYA] DAFTAR ISI     1. Pendahuluan     2. Tujuan     3. Alat dan Bahan     4. Dasar Teori     5. Percob...