DAFTAR ISI
#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,LOW); //LED mati
}
}
}
//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);
}
#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,LOW); //LED mati
}
}
}
ANALISA PERCOBAAN 1 [UART]:
1. Apa yang terjadi jika komunikasi UART hanya menggunakan 1 kabel saja, yang terhubung TX ke RX?
Jawab :
Jika pada komunikasi UART hanya menggunakan
1 kabel saja yang terhubung dari Tx Master ke Rx Slave, maka akan terjadi
error. Hal tersebut dikarenakan Tx Slave tidak terhubung ke Rx Master untuk
menandakan adanya data yang masuk ke Slave. Jadi, dihubungkan 2 kabel dimana
tujuan kabel pertama dihubungkannya dari Tx Master ke Rx Slave adalah untuk
komunikasi asinkron dari Master ke Slave, kemudian kabel kedua dihubungkannya
dari Tx Slave ke Rx Master sebagai penanda atau memberitahukan ke Master bahwa
data telah masuk ke Slave.
2. Apakah pada uart dapat menggunakan banyak
master ataupun slave? Jelaskan alasannya!
Jawab :
Pada UART, jumlah Master maupun Slave masing-masing
hanya 1 saja. Hal tersebut dikarenakan UART menggunakan jalur data tunggal
untuk mentransmisikan data (Transmitter) dan untuk menerima data (Receiver).
Jadi, dari Transmitter Master dihubungkan ke Receiver Slave untuk
pentransmisian data dan Transmitter Slave dihubungkan ke Receiver Master untuk
menandakan Slave telah menerima data dari Master. Pada UART ini hanya dapat
mengirimkan sekitar 8 bit dan bit-bit tambahan (start bit, parity bit, dan stop
bit ) setiap pentransmisian data.
3. Jika ditambahkan resistor 22k sebelum LED,
apa yang akan terjadi?
Jawab :
Sebelumnya, ketika resistor tidak
ditambahkan sebelum LED, maka LED akan hidup dimana tegangan yang dihasilkan
dari Slave sekitar 2,5V dengan besar tegangan volt minimal diterima LED sekitar
2,2V. Namun, ketika ditambahkan resistor 22k ditambahkan, maka tahanan pada
resistor akan menghambat laju arus listrik sehingga tegangan yang dihasilkan
sekitar 2V dan itu kurang dari 2,2V yang dibutuhkan LED untuk hidup atau
menyala. Dengan begitu LED tidak menyala.
4. Jelaskan prinsip kerja UART pada rangkaian!
Jawab :
Pada rangkaian terdapat 2 buah Arduino
(Master dan Slave), button, LED, dan ground. Untuk menjalankan rangkaian maka
dibuat program Arduino untuk Master dan Slave. Untuk Master, button yang
terhubung pada pin 2 Master dideklarasikan sebagai input_pullup dimana jika
pullup maka menerima logika LOW (bernilai 0). Kemudian baud rate sebesar 9600.
Kedua hal tersebut dieksekusi sekali void setup(). Kemudian, fungsi void loop()
yang dieksekusi berulang. Nilai yang didapatkan dari Button akan dibaca, jika
bernilai 0, maka Master mengirm data “1”. Jika selain nilai 0, Master mengirim
data “2”. Terakhir delay selama 20 ms.
Untuk Slave, dengan fungsi void setup (),
LED yang terhubung ke pin 12 Slave dideklarasikan sebagai output dan baud rate
dibuat sebesar 9600. Kemudian fungsi void loop(), jika data telah diterima dan
terbaca oleh Slave. Jika data “1” diterima, maka LED menyala, sedangkan jika
data selain “1” maka LED mati.
Setelah program Arduino untuk Master dan
Slave dibuat, lalu dipasang pada Arduino pada rangkaian. Ketika rangkaian
dijalankan, ketika button pullup, maka berlogika HIGH dan data dikirimkan
selain “1” dan LED mati. Sedangkan ketika button pulldown (ditekan), maka
berlogika LOW dan data “1” dikirimkan dan LED hidup.
No comments:
Post a Comment