Slave
LISTING PROGRAM MASTER
//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(500);
}
LISTING PROGRAM SLAVE
//Slave
#define 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'){
digitalWrite(led,HIGH);
delay(500);
digitalWrite(led,LOW);
delay(500);
}else{
digitalWrite(led,LOW);
}
}
}
UART adalah komunikasi antar dilakukan 2 objek / 2 device seperti antara PC dengan mikrokontroler atau mikrokontroler dengan mikrokontroler. Pin komunikasi UART pada arduino yaitu pin Tx atau pin 1 (transmitter) dan pin Rx atau pin 0 (receiver). Pada rangkaian di atas terdapat 2 buah arduino uno, arduino sebelah kiri diberi nama MASTER dan sebelah kanan diberi nama SLAVE, 1 buah LED, dan button sebagai indikator / pembuat sinyal dari arduino. Push button dihubungkan ke pin 2 atau boleh pin berapa saja, namun pada listing program disesuaikan pin mana yang digunakan. LED akan diberi instruksi oleh arduino kedua (SLAVE). Pin Tx MASTER dihubungkan pada pin Rx SLAVE, sebaliknya pin Rx master dihungkan pada pin Tx SLAVE yang mana disebut hubungan UART menggunakan kabel.
Pada listing program arduino MASTER, setelah pin 2 dideklarasikan sebagai input button, di dalam void setup dideklarasikan button sebagai input pull up. Input pull up memberikan kondisi LOW apabila button ditekan dan kondisi HIGH apabila button dilepas. Selanjutnya, pada void loop digunakan tipe data integer untuk nilai (pembacaan dan button) dan menggunakan kondisi if. Ketika button ditekan, nilai = 0, maka arduino MASTER akan mengirim data ke arduino SLAVE berupa data serial atau bit serial "1". Sebaliknya, jika button dilepas, nilai =/= 0, maka arduino MASTER akan mengirim data ke arduino SLAVE berupa data serial atau bit serial "2". Keadaan tersebut akan berganti terus-menerus dengan selang waktu 500 ms.
Dalam listing program arduino SLAVE,
setelah pin 12 dideklarasikan sebagai input LED, di dalam void setup
dideklarasikan bahwa LED adalah output. Serial.begin berfungsi untuk melihat
serial monitornya. Pada void loop, digunakan kondisi if, jika data serial yang
masuk bernilai "1", maka LED akan dalam kondisi HIGH selama 500 ms
dan setelahnya LED akan dalam kondisi LOW selama 500 ms. Selanjutnya, jika data
atau bit serial yang masuk bernilai "2", maka LED akan dalam kondisi
LOW selama 500 ms.
Tidak ada komentar:
Posting Komentar