Cool Blue Outer Glow Pointer

Laporan Akhir I - Percobaan 1






1. Komponen [Daftar]

a. Arduino
 


 
b. Button
 
 
 
c. Buzzer

 
 
 
2. Gambar Rangkaian [Daftar]
 
 

 
3. Flowchart [Daftar]
 
 


4. Listing program [Daftar]
 
//MASTER
//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);

//Button ditekan
if(nilai == 0)
{
Serial.print("1");
}
else
{
Serial.print("2");
}
delay(200);
}
 
 
//SLAVE

#define buzzer 12 //Deklarasi pin 12 untuk Buzzer

void setup() //Semua kode dalam fungsi ini dieksekusi sekali
{
pinMode(buzzer,OUTPUT); //Deklarasi Buzzer sebagai output
Serial.begin(34500);  //Set baud rate 34500
}

void loop() //Semua program dalam fungsi ini dieksekusi berulang
{
if(Serial.available()>0)
{
int data = Serial.read();
if(data=='1') //Jika data yang diterima berlogika 1
{
digitalWrite(buzzer,HIGH); //Buzzer ON
}
else
{
digitalWrite(buzzer,LOW); //buzzer OFF
}
}
}


5. Video simulasi   [Daftar]



Prinsip Kerja:
-Pada master, input yang diberikan oleh buttun pull-up yang terhubung pada pin 2 digital, ketika button ditekan akan berlogika LOW (0) sedangkan jika tidak ditekan berlokika HIGH  (1). Inisialisasi variable nilai yang akan diisi nilai kondisi pada button 1/0. Selanjutnya pengkondisian jika button ditekan maka pada variable nilai akan dimasukkan data sesuai kondisi button.  
 
-Pada Slavle, dekalrasi pin 12 sebagai output. Pada percobaan output yang digunakan adalah buzzer.
Pada kondisi awal nilai baud rate (kecepatan transfer data) adalah 9600 sama dengan nilai baud rate pada Master. Jika data yang diterimadari master adalah 1 maka buzzer berlogika HIGH (1), sedangkan jika data yang diterima selain 1, maka buzzer berlogika LOW (0). 
 
-Kondisi

Sesuai dengan kondisi maka nilai baud rate pada Slave diganti menjadi 34500. Karena adanya perbedaan nilai baud rate sehingga data dari master tidak dapat dikirimkan pada slave. Karena perbedaan nilai baud rate sehingga buzzer dalam kondisi LOW / 0. 

 


6. Kondisi dan Analisa [Daftar]
 
a. Kondisi
 
1. Ganti LED menjadi Buzzer
2. Ubah boud rate pada Slave menjadi 34500
 
 
b. Analisa
 
1. Apa pengaruh perbedaan dari baud ratenya dari 9600 menjadi 34500 pada slave.
Jawab:
Baud rate berfungsi sebagai seberapa cepat data yang akan dikirimkan. Pengaruh baud rate pada percobaan, jika semakin besar nilai baud rate maka semakin cepat data yang akan dikirimkan. Nilai baud rate yang umum digunakan yaitu sebesar 9600. Pada percobaan, nilai baudrate pada arduino Slave diganti menjadi 34500 sehingga data yang dikirimkan dengan kecepatan 34500 dengan satuan bit per secon (bps). Tetapi pada kenyataannya jika diubah nilai baud rate hanya pada Slave saja sedangkan baud rate pada Master tetap 9600, maka data tidak dapat di terima pada Slave sehingga buzzer tidak akan berbunyi. Maka nilai konfigurasi baud rate pada Master dan Slave harus sama agar data dapat diterima pada Slave. Untuk menghidupkan buzzer pada kondisi ini diatur nilai konfigurasi baud rate pada Master dan Slave harus sama bernilai 34500 atau 9600 sehingga data dapat diterima dan pada percobaan buzzer akan berbunyi.
 
 
2. Bagaimana jika hanya pin RX pada master ke TX pada slave.
Jawab:
 Jika hanya salah satu pin saja yang terhubung pada Master dan Slave maka kominikasi yang terjadi hanya satu arah (simplex). Komunikasi tetap bisa berjalan berdasarkan pin-pin yang terhubung pada Master dan Slave. Maka akan ada dua kondisi yang terjadi:
a. Jika pada Master pin RX yang terhubung sedangkan pada slave adalah pin TX, maka slave yang akan mengirim data sedangkan master yang akan menerima data. Tetapi tidak bisa sebaliknya karena pin TX pada Master tidak terhubung ke pin RX pada Slave. Data disini adalah inputan dari button. 
 
Analisa pada program:
Pada program Slave tidak ada yang dikirimkan pada Master karena pada Slave program diatur untuk menerima data dari Master dan data yang diterma akan dieksekusi, output berupa buzzer. Begitu juga dengan Master yang diprogram untuk mengirim data bukan menerima data dari Slave.
 
 
b. Jika pada Master pin TX yang terhubung sedangkan pada slave adalah pin RX, maka Master yang akan mengirim data sedangkan Slave yang akan menerima data. Tetapi tidak bisa sebaliknya karena pin RX pada Slave tidak terhubung ke pin RX pada Master. Data disini adalah inputan dari button.
 
Analisa pada program:
Pada program Master akan mengirim data pada Slave yang inputnya berupa button. Data dari button akan masuk pada pin 2 digital arduino lalu data akan dibaca dan akan dimasukkan pada variabel nilai. Pada program menggunakan sintak INPUT_PULLUP, yang berarti jika ditekan maka button akan berlogika LOW(0) dan jika tidak akan berlogika HIGH (1).  Lalu ada pengkondisian jika bernilai 0 maka akan dicetak angka 1 jika tidak ditekan akan bernilai 1 lalu data dikirimkan ke pin RX pada slave. Lalu slave akan siap menerima data lalu dibaca jika data = 1 maka buzzer on, jika data selain bernilai 1 maka buzzer off. 
 
 
 
3. Jelaskan apa itu button input pull-up dan input-pull down
Jawab: 
Pada button pull-up input yang masuk ke arduino awalnya akan berlogika HIGH atau 1, jika button ditekan maka arus yang mengalir dari pin arduino lalu ke button akan terhambat atau tidak mengalir, sehingga tidak ada arus yang mengalir ke ground. Dengan kata lain, ketika button di tekan maka button akan berlogika LOW atau 0 maka tidak ada input yang diberikan pada arduino Master.
 
 
Pada button pull-down, input yang masuk ke arduino awalnya akan berlogika 0 atau LOW, jika button ditekan maka arus yang mengalir dari pin arduino lalu ke button lalu arus akan mengalir ke ground sehingga button berlogika HIGH atau 1. Dengan kata lain, ketika button di tekan maka button akan berlogika HIGH atau 1 maka akan ada input yang diberikan pada arduino Master melalui button.
 
Pada program Master adanya pengkondisian jika button ditekan maka akan berlogika LOW / 0, maka logika data pada variable nilai = 0. Dengan pengkondisian jika variable  nilai = 0, maka akan dicetak data '1' dan dikirmkan ke slave, sedagkan jika tidak ditekan akan dicetak data '2' dan dikirimkan ke slave.

Pada program Slave, data yang diterima dari Master akan dibaca jika serial data yang diterima lebih besar dari 0, jika serial data = 1, maka buzzer akan berlogika HIGH atau 1, sedangkan jika serial data yang diterima lebih besar dari 0, jika data = 2 (lainnya) maka buzzer akan berlogika  LOW atau 0.









 
 

7. Link Download  [Daftar]


 *(note: nilai baud rate slave = 9600, Buzzer off)
 
*(note: nilai baud rate slave = 34500, Buzzer off)
 

7. HTML

Tidak ada komentar:

Posting Komentar