Laporan Akhir 2 Modul 3 Percobaan 3

[KEMBALI KE MENU SEBELUMNYA]



  1. Memahami prinsip kerja UART, SPI, dan I2C
  2. Mengaplikasikan protokol komunikasi UART, SPI, dan I2C pada Arduino
Kondisi:

Ganti led dengan motor DC, sehingga ketika button di tekan maka motor DC akan berputar searah jarum jam.


a. Push Button
b. Motor
c. Arduino Uno

 d. Power Supply

e. Resistor

f. Buzzer

g. Driver Motor L293



Rangkaian sebelum di run:


Rangkaian setelah di run:



=> Listing Program Master

#include <Wire.h>
#define BUTTON A0
#define MASTER_ADDR 9

void setup() {
  Wire.begin();
  pinMode(BUTTON, INPUT);
}

void loop() {
  delay(50);
  int button_status = digitalRead(BUTTON);
  Wire.beginTransmission(MASTER_ADDR);
  Wire.write(button_status);
  Wire.endTransmission();
}

=> Listing Program Slave

#include <Wire.h>
#define SLAVE_ADDR 9
#define in1 9
#define in2 10

int rd;

void setup() {
  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  Wire.begin(SLAVE_ADDR);
  Wire.onReceive(receiveEvent);

  Serial.begin(9600);
  Serial.println("I2C Slave demo");
}

void receiveEvent() {
  rd = Wire.read();
  Serial.println(rd);
}

void loop() {
  if (rd == LOW) {
    digitalWrite(in1, LOW);
    digitalWrite(in2, HIGH);
  } else {
    digitalWrite(in1, LOW);
    digitalWrite(in2, LOW);
  }
}



 Prinsip Kerja Rangkaian

    Pada rangkaian percobaan 3 modul 3 ini, ada beberapa komponen yang digunakan, yaitu Arduino (Master & Slave), Power, Push Button, Resistor, Ground, Driver L293 dan Motor  sebagai outputnya. Driver Motor nantinya akan digunakan untuk mengatur arah putaran motor sesuai yang diinginkan.

    Sebelum dapat menjalankan rangkaiannya, harus di buat terlebih dahulu listing program untuk masing-masing Master dan Slave seperti pada program diatas. Setelah file ino dimasukkan ke dalam rangkaian, maka rangkaian dapat dijalankan. 

    Saat file ino telah dimasukkan ke dalam rangkaian, maka sesuai dengan perintah percobaan, maka saat button di tekan, motor akan bergerak searah dengan jarum jam. Sedangkan saat button di posisi awal (tidak ditekan) maka motor akan berhenti.

Analisa M3P3

1. Apakah device master pada komunikasi ini mempunyai alamat/address?

Jawab:

  Iya, device master pada komunikasi memiliki alamat/ address agar dapat mengirim data ke device slave. Syntax untuk alama device master adalah #define MASTER_ADDR 9 yang ditambahkan pada listing program master. 

2. Apa yang terjadi jika addres pada slave di ganti menjadi 0x70?

Jawab:

    Jika address pada slave diganti menjadi 0x70, maka output yang ada pada rangkaian  tidak akan bisa berputar karena address pada device slave berubah sehingga data yang dikirim dari master tidak bisa diterima oleh slave. Hal ini karena address slave di listing program slave berbeda dengan listing program master. 

    Akan tetapi, jika address slave pada listing program device master juga diubah, (menjadi kode ‘Wire.beginTransmission(0x70)’), maka master dapat mengirim data ke slave dan motor dapat berputar/hidup.

 3. Apa fungsi sintax 'Wire.onReceive(receiveEvent)' pada slave?

Jawab:

   Wire.onReceive berfungsi untuk menerima data yang dikirimkan oleh device master ketika fungsi dipanggil. Fungsi tersebut adalah fungsi receiveEvent () yang digunakan untuk parameter receiveEvent yang merupakan fungsi yang akan dipanggil ketika slave menerima data.


Download file rangkaian simulasi di sini
Download video simulasi di sini
Download HTML di sini
Download Listing Program Master di sini
Download Listing Program Slave di sini
Download Library Arduino di sini
Download Datasheet Arduino Uno di sini
Download Datasheet Push Button di sini
Download Datasheet L293D di sini
       

Tidak ada komentar:

Posting Komentar