TP2 M3


1. Prosedur [Kembali]

  • Rangkai semua komponen 
  • Buat program di aplikasi arduino IDE
  • Setelah selesai masukkan program ke arduino 
  • Jalankan program pada simulasi dan cobakan sesuai kondisi
  • Rangkaian Simulasi


  • Prinsip Kerja
Pada percobaan 3 kondisi 1, disini menggunakan komunikasi data I2C yang mana komunikasi ini bersifat half duplex artinya data yang dikirim dan diterima dalam waktu yang berbeda dan secara bergantian. nah, kita menggunakan 2 arduino uno yang terhubung ke keypad 4x4 dan LCD. master menggunakan keypad sebagai pengirim data dan slave menggunakan LCD sebagai penerima data. Untuk melakukan komunikasi I2C ini, pin yang digunakan yaitu pin SDA(A4) dan SCL(A5). Kondisi pada percobaan ini ketika kita mengklik satu" pada keypad maka akan ditampilkan pada LCD sesuai dengan angka yang ditekan.

  • Flowchart





  • 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] = {5, 4, 3, 2};
char colPins[COLS] = {6, 7, 8};

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
#include <LiquidCrystal.h>
#include <Wire.h>

LiquidCrystal lcd(7, 6, 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);
}

4. Kondisi [Kembali]

Semua Switch dalam kondisi Pull-down, 1 switch mengaktifkan 1 led sementara 4 switch mengaktifkan 3 led    

Simulasi  klik disini
Gambar Simulasi  klik disini
Video Simulasi  klik disini
Listring Program Master  klik disini
Listring Program Slave  klik disini

Komentar

Postingan populer dari blog ini

Tugas Besar

Modul 1

Modul I - Gerbang Logika dan Multivibrator