Tugas Pendahuluan 2




Percobaan3
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]

    1. Arduino Uno


        2. Keypad




      3. LCD

      
       4. Power Supply


     5. Ground


Diagram Blok:



3. Rangkaian Simulasi dan Prinsip kerja [Kembali]

→ Gambar Rangkaian Sebelum Disimulasikan
                                    

→ Gambar Rangkaian Setelah Disimulasikan
       


PRINSIP KERJA

Master :
Prinsip kerja Arduino Master dalam rangkaian ini melibatkan beberapa langkah penting. Pertama, Arduino master secara berkala memeriksa status pin digital yang terhubung ke tombol pada keypad untuk menentukan apakah ada penekanan tombol oleh pengguna. Setelah itu, Arduino master menerjemahkan pola penekanan tombol menjadi kode atau perintah yang dapat dimengerti oleh Arduino slave. Kode ini dapat berupa representasi numerik dari tombol yang ditekan atau karakter tertentu yang mengidentifikasi tombol tersebut. Selanjutnya, 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 untuk merespons sesuai dengan instruksi yang diterima dari master, memfasilitasi interaksi antara keduanya dalam sistem yang terintegrasi.

Slave : Prinsip kerja Arduino Slave dalam rangkaian ini melibatkan beberapa tahapan kunci. Pertama, Arduino slave terus menerima instruksi dari Arduino master melalui pin komunikasi yang telah ditentukan, siap untuk menerima kode atau perintah yang dikirimkan oleh master. Selanjutnya, setelah menerima kode dari master, Arduino slave mengambil peran dalam menerjemahkan kode tersebut menjadi instruksi yang dapat dipahami. Kode yang diterima kemungkinan besar merepresentasikan tombol yang ditekan pada keypad atau perintah lainnya 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, yang dapat berupa instruksi untuk menampilkan karakter tertentu, memperbarui teks yang ditampilkan, atau melakukan tindakan lain yang diperlukan. Dengan demikian, melalui serangkaian tindakan ini, Arduino slave berperan penting dalam mengontrol tampilan pada layar LCD berdasarkan instruksi yang diterima dari Arduino master, memastikan interaksi yang efektif dalam sistem secara keseluruhan.

4. FlowChart [Kembali]

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

const byte ROWS = 4;
const byte COLS = 4; // Diubah menjadi 4 kolom untuk menambahkan tombol A-D
char keys[ROWS][COLS] = {
  {'1', '2', '3', 'A'}, // Menambahkan tombol 'A'
  {'4', '5', '6', 'B'}, // Menambahkan tombol 'B'
  {'7', '8', '9', 'C'}, // Menambahkan tombol 'C'
  {'*', '0', '#', 'D'}, // Menambahkan tombol 'D'
};
byte rowPins[ROWS] = {9, 8, 7, 6};
byte colPins[COLS] = {5, 4, 3, 2}; // Menambahkan pin untuk kolom keempat
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) {
    Wire.beginTransmission(4); // transmit to device #4
    Wire.write(key);
    Wire.endTransmission(); // stop transmitting
  }
}

Slave
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2); // Alamat I2C LCD dan ukuran (misalnya 16x2)

char receivedKey = '\0';
bool blinking = false;

void setup() {
  lcd.init(); // Inisialisasi LCD
  lcd.backlight(); // Hidupkan backlight LCD
  Wire.begin(4); // Terima data pada alamat #4
  Wire.onReceive(receiveEvent);
}

void loop() {
  if (blinking) {
    lcd.setCursor(0, 0);
    lcd.print(receivedKey);
    delay(500); // Tunda 500ms
    lcd.setCursor(0, 0);
    lcd.print(" "); // Hapus huruf yang ditampilkan
    delay(500); // Tunda 500ms
  }
}

b. Flowchart

Master 


Slave 




5. Kondisi [Kembali]

Kondisi  : Percobaan 3 Kondisi 5

Key A - D menampilkan huruf A - D secara berurut, huruf yang ditampilkan mengalami blinking pada kolom pertama
  

6. Video Simulasi [Kembali]



7. Download File [Kembali]

Download Simulasi Rangkaian Klik disini
Download HTML Klik disini
Download Video Simulasi Klik disini
Download Listing Code Klik disini
Download Datasheet ARDUINO UNO klik disini
Download Datasheet Keypad Klik disini




























Tidak ada komentar:

Posting Komentar

                       BAHAN PRESENTASI UNTUK MATA KULIAH ELEKTRONIKA  2021/2022 Oleh : Fauzan Alfitrah 2110952002 Dosen Pengampu : Dr. Darw...