LA 1



Modul 2 Percobaan 1 

1. Prosedur [Kembali]

            1 Rangkai komponen sesuai percobaan dan kondisi yang dipilih.

  • 2. Buat program menggunakan Arduino IDE.

    3. Compile program yang telah dibuat lalu Upload ke dalam Arduino Uno.

    4. Saat Proses Penguploadan porgram, lepas pin rx tx pada arduino master dengan arduino slave

    5. Uji coba program pada rangkaian percobaan sesuai dengan kondisi yang diinginkan.

    6. Selesai

  • Hardware


a. Hardware
1. Arduino uno
Spesifikasi Arduino Uno:




2. LCD

Spesifikasi LCD:



3. 
Keypad



4.   Kabel Jumper

Diagram Blok :


  • Rangkaian 


  • 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. Cara kerjanya kita mengklik satu" maka input akan keluar pada LCD sesuai dengan angka yang ditekan, jika mengklik keypad secara bersamaan maka terjadinya bertabrakan informasi.
  • Flowchart


  • 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(1, 0);
 lcd.print(c);
 delay(100);
}

6. Kondisi [Kembali]

Percobaan dengan menggunakan komunikasi i2C

7. Download File [Kembali]

Rangkaian Simulasi  klik disini
Gambar Simulasi  klik disini
Video demo  klik disini
Listring Program  klik disini
Download Datasheet ARDUINO UNO klik di sini
Download Datasheet LCD klik di sini
Datasheet resistor klik di sini
Datasheet dipswitch klik di sini
Datasheet Sensor LDR klik di sini
Datasheet Potensiometer klik di sini
Datasheet Driver L239D klik di sini
Datasheet Motor DC klik di sini