Modul 3 - Tugas Pendahuluan 1


Percobaan 3 Kondisi 7

1. Prosedur [Kembali]

Rangkailah seperti rangkaian berikut 
Buka Arduino IDE dan buat listing program sesuai kondisi diberikan, upload program ke arduino IDE
Variasikan tombol yang ditekan 

2. Hardware dan Diagram Blok [Kembali]
a. Arduino
 






b. Keypad

c. LCD 






  • Rangkaian



  • Prinsip Kerja
Percobaan ini menunjukkan komunikasi serial antar 2 perangkat arduino Uno dimana, terdapat arduino yang berfungsi sebagai master untuk mengirimkan informasi berupa perintah untuk menampilkan input keypad pada LCD oleh arduino yang berfungsi sebagai slave.
Dalam hal ini, keypad berfungsi sebagai input dan LCD berfungsi sebagai output.

  • Flowchart


  • Listing Program
//Master Arduino
#include <Keypad.h>
#include <Wire.h>
const byte ROWS = 4;
const byte COLS = 3;
char keys[ROWS][COLS] = {
 {'A', '2', '3'},
 {'B', '5', '6'},
 {'C', '8', '9'},
 {'D', '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
#include <Wire.h>
#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Inisialisasi objek LCD dengan pin yang terhubung

String message = ""; // Pesan yang akan ditampilkan di LCD

void setup() {
  lcd.begin(16, 2); // Inisialisasi LCD dengan ukuran 16x2
  Wire.begin(9); // Mulai komunikasi I2C sebagai slave dengan alamat 9
  Wire.onReceive(receiveEvent); // Panggil fungsi receiveEvent() saat menerima data dari master
}

void loop() {
  // Tidak ada yang perlu dilakukan di loop()
}

void receiveEvent(int byteCount) {
  while (Wire.available()) {
    char receivedChar = Wire.read(); // Baca karakter yang diterima dari master
    message += receivedChar; // Tambahkan karakter ke pesan
    if (message.length() > 16) { // Jika panjang pesan lebih dari 16 karakter
      message = message.substring(1); // Potong karakter pertama dari pesan
    }
    displayMessage(); // Tampilkan pesan pada LCD
  }
}

void displayMessage() {
  lcd.clear(); // Bersihkan layar LCD
  lcd.setCursor(0, 0); // Set posisi kursor di baris pertama
  lcd.print(message); // Tampilkan pesan di LCD
}

4. Kondisi [Kembali]

Hubungan komunikasi serial pada 2 perangkat arduino, dengan keypad sebagai input dan LCD sebagai output dengan mengganti program untuk angka 1 pada keypad menampilkan huruf A, angka 4 menampilkan huruf B, 7 menampilkan huruf C, dan simbol bintang pada keypad menampilkan huruf D.

HTML klik disini  
Simulasi  klik disini
Gambar Simulasi  klik disini
Video Simulasi   klik disini
Listring Program  klik disini









Materi MataKuliah SENSOR TE1212 C  Semester Ganjil 2020 (II) Disusun Oleh : Ibrahim 1910953006 Fajar Ruhud M...