Laporan Akhir M3 1(Percobaan 1 Kondisi 1)
1. Alat dan bahan[Kembali]
Alat dan bahan yang digunakan pada saat praktikum ini adalah:
a) Alat
1. Kabel jumper
2. Breadboard
b) Bahan
1. Arduino UNO
2. LED
3. Resistor
4. Push button
Gambar 6. Push button |
2. Rangkaian [Kembali]
Gambar rangkaian yang digunakan pada saat praktikum adalah sebagai berikut:
3. Prinsip Kerja [Kembali]
a). Prinsip kerja rangkaian
Tujuan dari dilakukannya percobaan ini adalah untuk menggunakan protokol komunikasi UART untuk berkomuniasi antar sesama arduino, Rangkaian diatas merupakan implementasi sederhana dari pengujian pengiriman data menggunakan protokol komunikasi ini. Pertama tentukan terlebih dahulu device manakah yang akan dijadikan master atau slave, kemudian hubungkan kabel - kabel yang sudah ditentukan. Untuk komunikasi UART sendiri menggunkaan dua buah kabel, yakni:
TX (Transceiver) --> Pada arduino terletak pada pin D1
RX(Receiver) --> Pada arduino terletak pada pin D0
Pin TX dihubungkan dengan pin RX dan begitu juga sebaliknya, pada rangkaian diatas terdapat sebuah push button yang akan dijadikan input trigger untuk device masternya yang akan dihubungkan ke pin digital D2. Sementara pada bagian slavenya terdapat sebuah LED yang dihubungkan ke pin digital D12
b). Alur kodingan
CODINGAN MASTER
/*
* Nama : Muhammad Rizieq RIzaldi
* NIM : 2010952031
* KLP : 3
* Percobaan : 1 Kondisi 1 : Buatlah kondisi awal LED mati, lalu hidup berkedip
* dengan delay 500ms
*/
//MASTER
const int button = 2;
void setup() {
// put your setup code here, to run once:
pinMode(button, INPUT_PULLUP);
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
int nilai = digitalRead(button);
//apabila ditekan
if (nilai ==0)
{
Serial.print("1");
}
else
{
Serial.print("2");
}
}
CODINGAN SLAVE
//SLAVE
const int led = 12;
void setup() {
// put your setup code here, to run once:
pinMode(led, OUTPUT);
Serial.begin(9600);
}
void loop()
{
// put your main code here, to run repeatedly:
if(Serial.available()> 0)
{
int data = Serial.read();
if (data=='1')// jika data yang dikirimkan berlogika 1
{
digitalWrite(led, HIGH);
delay(500);
digitalWrite(led, LOW);
delay(500);
}
else
{
digitalWrite(led, LOW);
}
}
}
Penjelasan codingan master
Sebelum masuk kedalam void setup terlebih dahulu dilakukan deklarasi pin yang akan digunakan di device master, pada rangkaian ini akan digunakan sebuah push button yang dihubungkan langsung ke pin digital 2.
Kemudian masuk kedalam void setup(). Pada fungsi ini diiniasiasikan setiap pin yang akan digunakan pada arduino, yang pertama adalah menginisiasikan pin untuk push button dengan mode INPUT_PULLUP. Mode ini hampir mirip dengan mode INPUT, yang membedakannya hanyalah terletak pada metode konfigurasinya, dikarenakan push button akan berada pada kondisi floating, maka digunakan sebuah pull up resistor untuk menjadikan kondisi default dari pin button tersebut menjadi HIGH. Kemudian menginiasikan serial monitor dengan menggunakan fungsi Serial.begin dengan baud rate sebesar 9600.
Lalu masuk ke bagian inti dari program (atau void loop). Pada bagian ini cukup sederhana. Yang pertama adalah menjadikan hasil pembacaan dari push button sebagai variabel (contoh disini adalah nilai). Kemudian berdasarkan nilai pembacaan tersebut terdapat dua buah kondisi, apabila nilai pembacaan 0 (push button ditekan), maka kirim data serial dengan nilai 1, apabila nilai selain 0, maka kirim data serial dengan nilai 2.
Penjelasan codingan slave
Sebelum masuk kedalam void setup terlebih dahulu dilakukan deklarasi pin yang akan digunakan di device slave, pada rangkaian ini akan digunakan sebuah output LED yang akan terhubung lansung ke pin digital D12.
Kemudian masuk kedalam void setup untuk menginisiasikan pin - pin yang akan digunakan, yang pertama adalah pin LED yang diset dengan mode output, lalu untuk menggunakan mode serial, diiniasiasikan serial monitor dengan baud rate sebesar 9600.
Lalu masuk ke dalam bagian void loop. yang pertama adalah perintah if Serial.available > 0. Ini menyatakan bahwa apabila terdapat data serial yang besar dari > 0. Lalu dibaca data yang dikirim melalui variabel data, kemudian dibuat suatu kondisi, yakni: Apabila data yang dibaca bernilai 1, maka kedipkan LED dengan delay sebesar 500ms. Jika tidak maka biarkan LED tetap mati.
4. Video Praktikum [Kembali]
Video percobaan pada saat praktikum dapat dilihat dibawah ini:
5. Analsisis [Kembali]
Soal analisa yang didapat pada percobaan 1 ini adalah
a). Apakah bisa komunikasi UART berjalan jika dipasangkan dengan selain pin - dan pin 1 pada arduino? Jelaskan kenapa dan teori sebenarnya!
Jawab:
Untuk penggunaan hardware dengan arudino, komunikasi UART hanya bisa digunakan pada pin 0 (RX), 1 (TX), hal ini dikarenakan mikrokontroller yang digunakan arduio uno (ATmega328P) hanya memungkinkan penggunaan komunikasi di pin tersebut. Namun, kita dapat menggunakan pin digital lain sebagai pin serial dengan cara mensimulasikannya melalui software dengan library SoftwareSerial. Libary ini mengkonfigurasikan pin digital agar bekerja seperti pin yang menggunakan protokol UART. Meskipun begitu, library ini memiliki batasan seperti hanya bisa dalam mode half duplex, apabila menggunakan 2 atau lebih objek pada library ini, hanya 1 objek saya yang dapat akrif pada setiap waktu.
b). Apa yang terjadi jika baud rate yang digunakan pada program master dan pada program slave berbeda? Jelaskan penyebabnya dan apa solusinya!
Jawab:Baud rate adalah satuan yang menentukan berapa banyak (informasi) yang akan dikirim per detik. Dikarenakan protokol UART tidak memiliki clock input yang menyinkronkan operasi pengiriman data, maka dari itu baud rate antara master dan slave dan dari komunikasi ini harus sama. Jika nilai baud rate yang digunakan tidak sama, kemungkinan terjadinya kesalahan dalam data yang diterima/dikirim akan semakin tinggi yang membuat komunikasi seperti itu menjadi tidak terpecaya.
6. Link Download [Kembali]
Tidak ada komentar:
Posting Komentar