2. Rangkaian Simulasi [kembali]
//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,LOW); //LED mati
}
}
}
PERCOBAAN 1 [UART]:
1.Apa yang terjadi jika
komunikasi UART hanya menggunakan 1 kabel saja, yang terhubung TX ke RX ?
Jawab:
Berdasarkan
praktikum yang telah dilaksanakan,jika komunikasi UART hanya menggunakan 1
kabel saja, yaitu yang terhubung TX ke RX maka akan terjadi master tidak
mengetahui apakah slave telah menerima data atau belum,TX yaitu transmitter dan
RX yaitu received.Fungsi dari kabel RX(master) ke TX (slave) adalah memberitahu
kalau slave telah menerima dan memproses data.Namun ,jika dilihat pada proteus
tidak terlalu terlihat .Pada saat diaplikasikan pada alat ,mungkin akan
terlihat dampaknya jika hanya TX dan RX yang digunakan.
2. Apakah pada UART dapat
menggunakan banyak master ataupun slave?
Jelaskan alasannya
Jawab:
Tidak,dikarenakan UART tidak memiliki pin yang dapat
memilih slave dan tidak bisa mengirimkan banyak bit data sehingga hanya bisa
menggunakan satu master dan satu slave saja.UART merupakan komunikasi
serial,data dari bus dkirimkan secara parallel ke UART 1 lalu ditransmisikan secara serial dari
TX UART 1 ke RX UART2 lalu UART 2
mengkonversikan data dan menghapus bit tambahan,kemudian ditransmisikan
parallel ke data bus penerima.jadi UART hanya bisa menggunakan satu master dan
satu slave.
3. Jika ditambahkan
resistor 22k sebelum LED, apa yang akan terjadi?
Jawab:
Jika ditambahkan resistor 22k sebelum LED, maka LED tidak
akan menyala saat button ditekan ,hal ini dikarenakan adanya resistor 22k yang
menghambat arus sehingga arus dan tegangan tidak cukup untuk menyalakan LED
saat button ditekan.Maka kita tidak dapat melihat output yang telah diprogram
yaitu ketika button ditekan LED akan menyala dan ketika tidak ditekan LED akan
mati.
4. Jelaskan prinsip kerja
UART pada rangkaian
Jawab:
Pada rangkaian terdapat dua buah simulino uno yaitu master
dan slave ,lalu ada button sebagai data inputnya,dan LED sebagai indikator
outputnya.Pin 2 dihubungkan ke button lalu ke ground ,lalu pin 12 slave
dihubungkan LED RED dan dihubungkan ke ground.Pin TX master dihubungkan ke pin
RX slave dan pin RX master dihubungkan ke TX slave.berikut penjelasan
programnya pada program master ,pertama dideklarasikan pin 2 untuk button yaitu
#define button 2, lalu dibuat fungsi void setup() dimana semua kode dalam
fungsi ini dideklarasikan sekali. Didalam fungsi ini dibuat pinMode(button,INPUT_PULLUP)
lalu di set baud rate 9600.Dan dibuat fungsi void loop dimana seluruh dalam
fungsi dapat dieksekusi secara berulang.lalu dibuat int nilai =
digitalRead(button) karena data input berupa data digital.Terdapat dua
kondisi jika if(nilai == 0 ) yaitu Serial.print("1")
dan selain itu else yaitu Serial.print("2") dan terdapat delay 200
untuk memulai perulangan.
Selanjutnya pada program slavenya,pertama dideklarasikan
pin 12 untuk LED lalu dibuat fungsi void setup dimana semua kode yang berada
didalam fungsi ini hanya dieksekusi sekali. Lalu didalam fungsi ini dibuat pinMode(led,OUTPUT)
sebagai Deklarasi LED sebagai outputnya ,lalu di set baud rate 9600.selanjutnya
dibuat void loop dimana semua program dalam fungsi ini dieksekusi secara
berulang. Lalu terdapat if(Serial.available()>0) ,lalu didalamnya dibuat int
data = Serial.read().Terdapat kondisi if(data=='1') berarti Jika data yang dikirimkan berlogika 1
maka dibuat digitalWrite(led,HIGH) untuk LED menyala. Namun selain itu else maka
digitalWrite(led,LOW) untuk LED mati.
Setelah selesai program maka program dicompile ,lalu
dicopykan alamatnya ke dalam simulino unonya baik untuk master maupun slavenya
lalu dijalankan.Data input dari button akan diterima oleh master jadi ada dua
data yaitu saat button ditekan berlogika 1 dan saat tidak ditekan berlogika
0.saat button ditekan maka data akan ditransmisikan dari master melalui pin TX
master ke RX slave secara serial lalu data akan di proses di slave setelah
diproses lalu data akan di tampilkan ke output berupa LED RED ini sesuai dengan
program yang telah dibuat pada master dan slavenya maka LED nya menyala.lalu
juga ada pemberitahuan dari TX slave ke RX master bahwa data telah diterima dan
diproses agar komunikasi UART nya dapat berjalan dengan baik .Jika data button
tidak ditekan maka data juga sesuai prinsip diatas sehingga LED nya mati.
Download video simulasi disini
Download rangkaian simulasi disini
Download HTML disini
Download program arduino masterdisini
Download program arduino slavedisini
Tidak ada komentar:
Posting Komentar