LA 1 - M3





Laporan Akhir Percobaan 3
== Percobaan 3 Kondisi 2==
Komunikasi I2C menggunakan Arduino


  1. Membuka proteus
  2. Buka file proteus yang sudah disesuaikan dengan kondisi
  3. Running rangkaiannya
  4. Sesuaikan dengan kondisi yang diinginkan




Arduino Uno


LCD


Keypad











LISTING PROGRAM MASTER

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

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Adjust pin connections according to your LCD wiring

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 debugging
}

void loop() {
  delay(100);
}

void receiveEvent(int howMany) {
  char c = Wire.read(); // receive byte as a character

  Serial.println(c);    // print the character received

  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print(c);

  delay(100);

  if (c >= '1' && c <= '9') {
    // Convert character to number and calculate the corresponding character to display
    int num = c - '0';
    char display_char = '9' - (num - 1);
    lcd.setCursor(1, 0); // Set cursor position to the second column
    lcd.print(display_char); // Display the corresponding character
  }
}

LISTING PROGRAM SLAVE

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

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Adjust pin connections according to your LCD wiring

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 debugging
}

void loop() {
  delay(100);
}

void receiveEvent(int howMany) {
  char c = Wire.read(); // receive byte as a character

  Serial.println(c);    // print the character received

  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print(c);

  delay(100);

  if (c >= '1' && c <= '9') {
    // Convert character to number and calculate the corresponding character to display
    int num = c - '0';
    char display_char = '9' - (num - 1);
    lcd.setCursor(1, 0); // Set cursor position to the second column
    lcd.print(display_char); // Display the corresponding character
  }
}



Modul 3: Percobaan 3 Kondisi 2
"Komunikasi I2C dengan Arduino"




Percobaan 3

1. Jelaskan perbedaan antara rangkaian TP dengan rangkaian praktikum?
Jawab:

Tidak ada perbedaan signifikan antara kedua rangkaian tersebut. Karena pada kedua rangkaian ini untuk master dan slave sama yaitu master sebagai input menggunakan keypad dan slave sebagai output menggunakan lcd untuk menampilkan hasilnya. Perbedaan keduanya hanyalah perbedaan penggunakan pin-pin yang dihubungkan ke arduino.

2. Kenapa cara pengupload program pada komunikasi percobaan 3 tidak sama dengan cara pengupload program dengan komunikasi UART?
Jawab:

Pada percobaan 3 menggunakan komunkasi I2C. Pada komunikasi I2C tidak ada penguplodan program, tapi komunikasi ini menghubungkan perangkat pada rangkaian. Sedangkan pada komunikasi UART memiliki penguplodan program dan menggunakan komunikasi serial. 



Tidak ada komentar:

Posting Komentar

  PRATIKUM SISTEM DIGITAL TAHUN 2022 OLEH : Tyas Ananda Putri 2010952036 JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK UNIVERSITAS ANDALAS PADANG 2021