Modul 3 : Laporan Akhir 1



PERCOBAAN 1



1. Jurnal[Kembali]

Pin Rx Slave dan Tx master dilepas kemudian pin Tx mastes dan pin Rx dilepas

2. Alat dan Bahan[Kembali]
  1. Modul Arduino


  2. LED


  3. Resistor


  4. Jumper

3. Rangkaian Simulasi[Kembali]




4. Prinsip Kerja Rangkaian[Kembali]

Listing program:
//MASTER
#define button 2 //Deklarasi pin 2 untuk button
void setup() //Semua kode dalam fungsi ini dieksekusi sekali
{
pinMode(button,INPUT_PULLUP);
Serial.begin(9600); //Set baud rate 9600
}
void loop() //Semua kode dalam fungsi ini dieksekusi berulang
{
int nilai = digitalRead(button);
//ditekan
if(nilai == 0)
{
Serial.print("1");
}
else
{
Serial.print("2");
}
delay(200);
}

//SLAVE
#define led 12 //Deklarasi pin 12 untuk LED
void setup() //Semua kode dalam fungsi ini dieksekusi sekali
{
pinMode(led,OUTPUT); //Deklarasi LED sebagai output
Serial.begin(9600); //Set baud rate 9600
}
void loop() //Semua program dalam fungsi ini dieksekusi berulang
{
if(Serial.available()>0)
{
int data = Serial.read();
if(data=='1') //Jika data yang dikirimkan berlogika
{
digitalWrite(led,HIGH); //LED menyala
}
else
{
digitalWrite(led,HIGH); //LED mati
}
}
}

    Terdapat 2 program yang digunakan pada modul ini, program master dan slave. pada program master, bagian header nya di isi dengan deklarasi pin 2 untuk menghubungkan button dengan arduino. Pada bagian set up,  fungsi pinmode() dan serial.begin() dideklarasikan untuk memberikan suatu nilai logika yang berasal dari button ke arduino dan mengatur kecepatan transferdata sebesar 9600 bps. Pada bagian loop, variabel nilai diklarasikan sebagai fungsi digitalread(button) untuk membaca inputan dari button. fungsi if() memberikan kondisi apabila variabel nilai memiliki nilai 0 maka fungsi serial print("1") akan mentranfer angka 1 dari pin Tx ke slave dan jika kondisi tidak terpenuhi, fungsi serial print("2") akan mentranfer angka 2 dari pin Tx ke slave . fungsi delay memberikan jeda 200 ms sebelum lopping dilakukan.
    Pada program slave, bagian header nya di isi dengan deklarasi pin 12 untuk menghubungkan  LED dengan arduino. Pada bagian set up, fungsi pinmode() dan serial.begin() dideklarasikan untuk memberikan suatu nilai logika pada LED dan mengatur kecepatan penerimaan data sebesar 9600 bps. Pada bagian loop, fungsi if() pertama memberikan kondisi apabila fungsi serial.avaible() bernilai besar dari 0 maka variabel data sebagai serial.read() yang berfungsi untuk membaca transferdata dari master melalui pin Rx akan dideklarasikan dan  fungsi if() kedua dijalankan. Namun jika kondisi tidak terpenuhi, fungsi digitalwrite(led,LOW) akan dijalankan (LED mati). fungsi if () kedua memberikan kondisi apabila variabel data sama dengan 1 maka fungsi digitalWrite(led,High) akan memberikan logika HIGH pada LED (LED hidup)

5. Video Rangkaian[Kembali]




6. Analisa[Kembali]

1. Berdasarkan percobaan yang telah dilakukan dengan memvariasikan nilai baudrate pada slave, master, dan serial monitor :
Variasi 1:
Master (9600) 
slave (9600) 
serial monitor (9600)
Variasi 2:
Master  (115200) 
slave (115200) 
serial monitor (115200) 
Variasi ke 3: 
Master (9600) 
Master  (115200) 
serial monitor (9600)
Bagaimana output yang dihasilkan? Apakah led disetiap variasi itu hidup atau bagaimana? Jelaskan output yang dihasilkan dari setiap variasi beserta alasan dan penjelasannya dengan lengkap!
     Output yang dihasilkan pada variasi satu dan dua adalaah LED dapat hidup atau mati tergantung pada button ( button ditekan LED hidup jika tidak LED mati). Hal ini dapat terjadi karena kecepatan data pada master dan slave sama ( variasi 1 9600 bps dan variasi 2 115200 bps) sehingga tidak akan terjadi ganggunakn ketika master mengirimkan data ke slave karena kecepatan terima slav esama dengan kecepatan transfer master. Selain itu serial monitor pada master variasi 1 dan variasi 2 akan menampilkan data yang dikirm master ke slave (1 atau 2). Hal ini terjadi karena kecepatan baca serial montiro ( variasi 1 9600 bps dan variasi 2 115200 bps) disamakan dengan kecepatan master dan slvae nya sehingga serial monitor master dapat mengikuti transfer data dan menampilkan data yang dkirim oleh master
    Output yang dihasilkan pada variasi 3 adalah LED akan tetap mati dan serial monitro akan menampilkan (?). Hal ini dapat terjadi karena kecepatan data master dan slave yang berbeda sehingga data yang akan dikirimkan oleh master tidak dpat diterima oleh slave (LED mati). Serial monitor yang memiliki kecepatan dibawah dari master atau slave tidak dapat mengikuti transfer data sehingga akan menampilkan karakter (?) ataud alam variasi ini serial monitor tidak akan menampilkan apa-apa karena kegagalan transfre data dari master ke slave.

2. Pada percobaan, apa yang terjadi jika Tx pada slave dan Rx pada master diputuskan? Apakah LED tetap menyala? Apakah data masih bisa dikirimkan dari slave ke master? Jelaskan beserta alasannya dengan lengkap!
    Pada percobaan LED akan tetap dapat menyala (button ditekan) walaupun Tx pada slave dan Rx pada slave diputuskan. Hal ini terjadi karena pada percobaan ini data dikirimkan dari master ke slave yang mana data ditransfer melalui pin Tx master dan diteria oleh pin Rx slave. Namun dalam hal ini slave tidak akan dapat mentransfer data ke master karena saluran prngirimannya telah dipustuskan (Tx salve ke Rx master).

7. Link Download[Kembali]
  1. HTML [disini]
  2. Video [disini]
  3. Datasheet LED [disini]
  4. Datasheet Button [disini]
  5. Datasheet  Arduino Uno [disini]