LA2M3







Key 1-9 menampilkan karakter nomor 9-1 secara berurutan dikolom kedua LCD

1.Prosedur

Langkah-langkah percobaan :

1. Rangkai semua komponen sesuai kondisi yang dipilih

2. buat program di aplikasi arduino IDE

3. setelah selesai masukkan program ke arduino di proteus

4. jalankan program pada simulasi dan cobakan sesuai dengan modul dan kondisi

5. Selesai

2. Hardware dan Diagram Blok

  • arduino una
  • Keypad
  • LCD


3. Rangkaian Simulasi dan Prinsip Kerja


    Pada percobaan ini kita menggunakan komunikasi arduino yaitu I2c. komunikasi 12c adalah komunikasi yang bisa mengirim dan menerima informasi tanpa adanya perbedaan waktu. pada percobaan ini kami menggunakan 2 arduino yaitu arduino sebagai master dan arduino sebagai slave. master berfungsi untuk mengontrol slave dengan mengirimkan inputan berupa kondisi keypad kepada slave, sedangkan slave akan menerima inputan yang mana akan ditampilkan pada LCD.. penggunaan arduino ini menggunakan pin SCL dan SDA untuk melakukan komunikasinya. komunikasi terjadi ketika pin SDA bekerja secara half-duplex. angak ganjil akan ditampilkan pada kolam 1 sedangkan angka genap pada kolam 2.

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); 
}




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

Tidak ada komentar:

Posting Komentar