Laporan Akhir 2 Modul 3

  





Percobaan 

3

1. FOTO HARDWARE DAN DIAGRAM BLOK [Kembali]

a. Hardware

  • Arduino UNO
  • KeyPad
  • LCD

b. Diagram Blok



2. PROSEDUR PERCOBAAN [Kembali]

  • Rangkai semua komponen 
  • Buat program di aplikasi arduino IDE
  • Setelah selesai masukkan program ke arduino 
  • Jalankan program pada simulasi dan cobakan dengan modul


3. RANGKAIAN SIMULASI DAN PRINSIP KERJA [Kembali]



Prinsip Kerja :

Pada percobaan 3 ini menggunakan komunikasi I2c dimana pada komunikasi ini Master dapat terhubung dengan lebih dari 1 Slave. Namun pada praktikum hanya digunakan 1 Slave saja. Sesuai dengan kondisi dimana keypad terhubung dengan Master. Ketika key ditekan, maka data nya akan dikirim ke Slave. sebelum mengirimkan data, ditentukan dulu alamat yang sesuai dengan Slave. Kemudian Slave dengan alamat yang sesuai akan menerima data dan akan manampilkan outputnya pada layar LCD.

4. FLOWCHART DAN LISTING PROGRAM [Kembali]

a. Flowchart
Master



Slave



b. Listing Program
Master
//Master Arduino
#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)
}
 
//byte x = 0;
 
void loop(){
   
  char key = keypad.getKey();
   
  if (key) {
    Wire.beginTransmission(4); // transmit to device #4
    Wire.write(key);
    Wire.endTransmission();    // stop transmitting
  }
}

Slave

//Slave Arduino
#include <LiquidCrystal.h>
#include <Wire.h>
 
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Sesuaikan pin sesuai dengan koneksi LCD
 
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()
{
delay(100);
}
// function that executes whenever data is received from master
// this function is registered as an event, see setup()
void receiveEvent(int howMany)
{
char c = Wire.read(); // receive byte as a character
Serial.println(c);        
// print the character
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(c);
delay(100);
}

5. KONDISI [Kembali]

Ketika tombol pada keyPad yang terhubung dengan Master ditekan maka LCD yang terhubung dengan Slave, akan menampilkan karakter sesuai dengan tombol yang ditekan

6. VIDEO RANGKAIAN [Kembali]



7. ANALISA [Kembali]






8. LINK DOWNLOAD [Kembali]











Tidak ada komentar:

Posting Komentar

 BAHAN PRESENTASI UNTUK MATA KULIAH ELEKTRONIKA 2022 NAMA : AKMAL APRIMANTHA NIM : 2110951046 ELEKTRONIKA B DOSEN PENGAMPU : DARWISON.M.T.  ...