Laporan Akhir 2

[KEMBALI KE MENU SEBELUMNYA]

 

 

Laporan Akhir Percobaan 3

 

1. Komponen [kembali]

     1. Potensiometer






       2. Resistor




        3. Power supply






        4. Arduino Uno




        5. LED 



2. Rangkaian [kembali]

 


3. Flowchart [kembali]

 




4. Listing Program [kembali]

//Master

 

#include <Wire.h> 

#define MASTER_ADDR 9

 

int analogPin = 0; int val = 0;

 

void setup() 

{

Wire.begin();

Serial.begin(1200);

}

 

void loop() 

{

delay(50);

val = map(analogRead(analogPin), 0, 1023, 0, 100);

 

Wire.beginTransmission(MASTER_ADDR); 

Wire.write(val);

Wire.endTransmission();

 

}

 

//Slave

#include <Wire.h>

#define SLAVE_ADDR 9

 

int led2 = 11;

int led1 = 12;

int readI2c;

 

 

void setup()

{

pinMode(led1, OUTPUT);

pinMode(led2, OUTPUT);

Wire.begin(SLAVE_ADDR);

Wire.onReceive(receiveEvent);

Serial.begin(1200);

delay(500);

}

 

void receiveEvent()

{

readI2c = Wire.read();

}

 

void loop()

{

Serial.print("Nilai readI2c: ");

Serial.println(readI2c);

 

       if ((readI2c <= 20) and (readI2c >= 0))

       {

digitalWrite(led1, HIGH);

digitalWrite(led2, LOW);

delay(200);

digitalWrite(led1, LOW);

digitalWrite(led2, HIGH);

delay(200);

       }

       else

{

digitalWrite(led1, LOW);

digitalWrite(led2, LOW);

delay(1000);

       }

}

 

5. Video [kembali]

 


6. Analisa [kembali]

1.     Apa yang terjadi jika alamat yang digunakan berbeda? Bandingkan jika #define MASTER_ADDR9 dan ganti di SLAVE_ADDR99, apa yang akan terjadi?

Jawab :

Perangkat master mengirimkan urutan S ADDR W kemudian menunggu bit acknowledge (A) dari slave yang hanya akan diberikan oleh slave jika alamat yang dikirimkan oleh master sesuai dengan alamat pada slave. Jika bit acknowledge (A) dikirim, perangkat master akan mengirimkan DATA dan menunggu bit acknowledge (A) dari slave. Jadi alamat di master maupun di slave harus sesuai agar alamat yang dituju pun tepat.

 

2.     Dari listing program, komunikasi apa yang digunakan simplex atau half duplex?

Jawab :

Pada rangkaian percobaan menggunakan I2C yang memiliki dua saluran yaitu SCL dan SDA yang dapat memberikan informasi kepada pengontrolnya baik itu dari master ataupun slave. Dan pada percobaan ini didapatkan bahwa komunikasi yang digunakan yaitu half duplex, jadi proses transfer data itu secara dua arah, tetapi data tersebut tidak sampai / diterima secara bersamaan.

 

3.     Pada slave coba diganti Serial.begin(9600) menjadi (115200)?

Jawab :

Tidak ada perubahan yang terjadi pada rangkaian, rangkaian tetap bisa berjalan, dan pada listing program pun bisa di running. Hal ini disebabkan karena serial begin berfungsi mengatur baudrate / kecepatan transmisi data antar Arduino. Jadi jikapun antara slave dan master berbeda serial.beginnya maka hanya berpengaruh pada kecepatan transmisi datanya saja, sedangkan program ataupun rangkaian tetap bisa berjalan.

 

7. Link Download [kembali]

Tidak ada komentar:

Posting Komentar