LA 2

    [KEMBALI KE MENU SEBELUMNYA]  




LAPORAN AKHIR 2
KOMUNIKASI


1. Prosedur  [back]

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 [back]

  • a. Arduino

     


    b. LCD


        c. Keypad





3. Rangkaian Simulasi dan Prinsip Kerja  [back]








 Prinsip Kerja

     pada percobaan ini 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




4. Flowchart dan Listing Program  [back]
Master



        Slave


  • 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] = {13, 12, 11, 10};

char colPins[COLS] = {9, 8, 7};

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(13, 12, 6, 5, 4, 3); // Sesuaikan pin sesuai dengan koneksi LCD

 

int receivedData = 0;

 

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

 

  lcd.print("Silahkan Tekan");

}

 

void loop()

{

  delay(100);

}

 

void receiveEvent(int howMany)

{

  receivedData = Wire.read(); // receive byte as a character

  Serial.println(receivedData); // print the character

 

  if (receivedData >= '1' && receivedData <= '9') {

    int number = receivedData - '0';

    lcd.clear();

    lcd.setCursor(0, number % 2);

    lcd.print(number);

  }

}

5. Kondisi  [back]
  
Percobaan 3 I2C

6. Video Demo  [back]






7. Download File  [back]
HTML klik
Simulasi klik
Video demo klik
Listing Program klik
Datasheet lcd klik
Datasheet keypad klik
Datasheet Arduino klik





Tidak ada komentar:

Posting Komentar