1. Hardware
Arduino Uno
Saklar Push Button
LED
[kembali]
2. Rangkaian Simulasi
- Master
//MASTER
#define button 2
void setup()
{
pinMode(button,INPUT_PULLUP);
Serial.begin(9600);
}
void loop()
{
int nilai = digitalRead(button);
//ditekan
if(nilai == 0)
{
Serial.print("1");
}
else
{
Serial.print("2");
}
delay(200);
}
- Slave
//SLAVE#define led 12
void setup()
{
pinMode(led,OUTPUT);
Serial.begin(9600);
}
void loop()
{
if(Serial.available()>0)
{
int data = Serial.read();
if(data=='1')
{
digitalWrite(led,HIGH);
}
else
{
digitalWrite(led,LOW);
}
}
} [kembali]
5. Video
Pada komunikasi UART pin TX dari master dihubungkan dengan pin RX dari slave, begitu pun sebaliknya. Pin 2 master dihubungkan dengan saklar push button dan pin 12 slave dihubungkan dengan LED. Saklar push button sebagai input pull up yang akan berlogika low (0) saat ditekan serta berdasarkan program akan mengirimkan kode 1 ke slave dan berlogik high (1) saat diangkat serta berdasarkan program akan mengirimkan kode 2 ke slave. Kode 1 akan menyebabkan LED menyala sedangkan kode 2 akan menyebabkan LED mati.
7. Analisa
1. Apa yang terjadi jika komunikasi UART hanya menggunakan 1 kabel saja, yang terhubung TX ke RX?
Jawab:
Komunikasi tetap berlangsung. Komunikasi UART merupakan komunikasi serial yang bersifat asynchronous, berarti untuk mengirimkan data pada komunikasi UART tidak memerlukan jalur clock untuk mensinkronkan bit data output dari UART transmitter (pengirim) dengan sampel bit yang dibaca oleh UART receiver. Sehingga data dapat terkirim melalui satu kabel transmisi data saja.
Pada UART, kecepatan pengiriman data (baud rate) dan fase clock pada sisi transmitter dan pada sisi receiver harus sinkron. Hal ini dilakukan oleh bit Start dan bit Stop. Ketika saluran transmisi dalam keadaan idle, output UART adalah dalam keadaan logika 1. Ketika transmitter ingin mengirimkan data, output UART akan diset lebih dulu ke logika 0 untuk waktu satu bit. Sinyal ini pada receiver akan dikenali sebagai sinyal Start yang digunakan untuk mensinkronkan fase clocknya sehingga sinkron dengan fase clock transmitter. Selanjutnya data akan dikirimkan secara serial dari bit paling rendah (bit 0) sampai bit tertinggi. Selanjutnya akan dikirim sinyal Stop sebagai akhir dari pengiriman data serial.
2. Apakah dapat mengirim data sebanyak 12 bit? Jelaskan alasannya
Jawab :
Tidak. Banyaknya data yang dapat dikirim pada komunikasi UART adalah 8 bit. Dalam 1 siklus pengiriman data maka master akan mengirimkan start bit, 8 bit data, parity bit dan stop bit (maksimal 1 paket berisikan 12 bit).
Start bit adalah bit untuk memulai transmisi yang ditandai dengan logika nol sebelum bit data. Parity bit adalah bit pilihan yang dikirim setelah karakter bit untuk mendeteksi error transmisi. Ada dua macam parity yaitu parity genap dan parity ganjil. Jika parity genap yang dipilih, parity bit yang berlogika 1 sehingga jumlah bit logika 1 pada karakter bit dan parity bit adalah genap. Jika parity ganjil yang dipilih, parity bit membuat jumlah bit logika 1 pada karakter bit dan parity bit adalah ganjil. Stop bit terdiri atas 1/1,5/2 bit berlogika 1 akan dikirm setelah karakter bit atau parity bit jika ada parity bit. Dengan adanya stop bit dapat dipastikan bahwa penerima mempunyai waktu yang cukup untuk menerima karakter berikut.
3. Apakah kita dapat menggunakan banyak slave? Jelaskan alasannya
Jawab :
Tidak. Komunikasi UART terbatas hanya antar 2 perangkat, dimana salah satu perangkat berperan sebagai master dan perangkat lain sebagai slave. Komunikasi UART tidak bisa menggunakan lebih dari 1 slave karena tidak terdapat port slave select, yang berfungsi memilih slave yang akan dikirimkan data. Jika terdapat lebih dari 1 slave, saat master mengirimkan data maka master tidak dapat menentukan slave mana yang akan dikirimkan data.
[kembali]
8. Link download
Rangkaian klik di sini
Video simulasi klik di sini
Flowchart klik di sini
listing program klik di sini (master) klik di sini (slave)
HTML klik di sini
[kembali]
Tidak ada komentar:
Posting Komentar