

//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);
}
#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
}
}
}
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.
1. Apa pengaruh set baud rate ? (bandingkan setelah baud rate diganti menjadi 34500)
Jawab :
Pada sistem komunikasi serial, baud rate adalah kecepatan dalam pengiriman atau transmisi pada data. Satuan baud rate adalah bit per second (bps). Dalam percobaan ini, baud rate pada master dan slave sama yaitu adalah 9600.Sehingga pada keadaan ini buzzer berbunyi. Setelah baud rate di set menjadi 34500, buzzer bisa berbunyi. Hal ini dikarenakan boud rate sekarang terlalu besar dan jauh selisihnya dari baud rate sebelumnya yaitu 9600. Sehingga terjadinya penumpukan data yang akan ditransmisikan dan terjadilah error.
2. Bagimana jika hanya 1 Tx dan Rx yang dihubungkan? Analisa juga programnya!
Jawab :
Jika hanya 1 sambungan Tx dan Rx yang dihubungkan, buzzer tetap berbunyi. Karena Master masih bisa mentransmisikan data ke Slave secara simplex saja. Jika kita analisa Pada program :
if (Serial.available() > 0)
{
int data = Serial.read();
if (data == '1') //Jika data yang dikirimkan berlogika
{
digitalWrite(buzzer, HIGH); //Buzzer menyala
}
else
{
digitalWrite(buzzer, LOW); //Buzzer mati
}
Dalam kasus ini hanya 1 sambungan Tx dan Rx, buzzer akan tetap berbunyi, karena data masih bisa di transmisikan secara simplex
3. Jelaskan button pullup dan button pulldown
Jawab :
Untuk Pull-up, salah satu kaki resistor dihubungkan ke Vcc sedangkan kaki resistor yang lain dicabangkan, satu ke pin input MCU, dan yang lain ke button untuk disambungkan ke ground (0V).
Sedangkan Pull-down, salah satu kaki resistor dihubungkan ke kutub ground (0v), sedangkan kaki resistor yang lain dicabangkan, satu ke pin input MCU, dan yang lain ke button untuk disambungkan ke Vcc (5v/3.3v).
7. Link Download [Daftar]
Tidak ada komentar:
Posting Komentar