PERCOBAAN 1
UART
1. Hardware [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);
//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
}
}
}
|
1. Bagaimana proses pengiriman data pada UART ?Dari percobaan yang telah kita lakukan dimana Asynchronous serial adalah komunikasi antara kedua pihak (pengirim dan penerima) masing-masing menghasilkan clock namun hanya data yang ditransmisikan, tanpa clock. Pertama-tama data dikirimkan secara paralel ke UART yang telah diatur sebagai master lalu data dikirimkan secara seri dan berurutan kepada UART yang telah kita setting sebagai Slave. Kondisi yang diujikan ketika button dibiarkan diam maka master akan selalu mengirimkan data “2” kepada Slave. Dimana data 2 ini menandakan bahwa LED tidak menyala, sedangkan ketika button kita tekan maka slave akan menerima data “1” maka LED akan menyala.
Video Praktikum disini
HTML disini
Tidak ada komentar:
Posting Komentar