Cara Komunikasi Arduino ke Arduino Melalui Serial

Posted on

Komunikasi Arduino ke Arduino

Cara Komunikasi Arduino ke Arduino Melalui Komunikasi Serial  – Pada tutorial kali saya akan menjelaskan bagaimana caranya satu board arduino berkomunikasi dengan board arduino lainnya.

Ketika satu miktokontroller akan melakukan komunikasi dengan miktokontroller lainnya, kita harus menentukan protokol komunikasi apa yang ingin dipakai.

Salah satu protokol yang sering dipakai pada kondisi seperti adalah komunikasi serial.

Pada komunikasi serial, digunakan dua pin yaitu TX dan RX. Pin TX digunakan untuk mengirim data dan pin RX digunakan untuk menerima data.

A. Jenis Arah Komunikasi

Selanjutnya kita akan mengenal istilah arah komunikasi yaitu One Way dan Two Way (Handshaking).

One way artinya komunikasi terjadi ke satu arah saja, misalnya dari Master ke Slave. Jika Two way atau sering disebut dengan handshaking adalah komunikasi dua arah, kedua perangkat bisa jadi master dan slave dalam satu kondisi.

Perintah dasar arduino untuk dapat mengirimkan data melalui port serial adalah Serial.write() dan Serial.print() atau Serial.println();

Serial.write() digunakan jika kita ingin mengirimkan data berupa biner melalui pin TX.

Serial.print() digunakan jika kita ingin mengirimkan data berupa karakter ASCII .

 

B. Rangkaian Arduino ke Arduino Serial

Agar dua mikrokontroller dapat bekerja, maka kita harus menghubungkan pin:

  • TX dari perangkat A,  ke RX pada perangkat B .
  • TX dari perangkat B, ke RX pada perangkat A.

 

Dalam tutorial saya menggunakan Arduino Uno dan Arduino Nano. Untuk rangkaiannya, teman-teman lihat pada gambar berikut:

Setelah rangkaian selesai dibuat seperti pada gambar diatas, maka selanjutnya kita akan belajar bagaimana cara komunikasinya.

Ada 2 tahapan yang akan kita gunakan pelajari pada , yaitu cara Mengirim Datadan cara Menerima Data

C. Progam Arduino

Dalam program arduino, baik pengirim dan penerima ada dua parameter penting yang harus di perhatikan yaitu “baudrate”. Untuk penjelasan lebih lengkap, silahkan baca Pengertian dan Penjelasan Baudrate.
 
Mohon perhatiannya!
  • Untuk testing kode Mengirimkan dan Menerima data, saya gunakan:
    – Arduino Uno sebagai pengirim (pin TX)
    – Arduino Nano sebagai penerima (pin RX)
  • Untuk melihat data yang dikirimkan oleh pengirim (Arduino Uno), saya menggunakan Serial Monitor yang terhubung ke Arduino Nano.

1. Program mengirim Data

Pada progam mengirim data, kita bagi atas dua bagian yaitu kirim data karakter dan kirim data string. Karakter artinya kita hanya dapat mengirim 1 angka/huruf/simbol saja seperti ‘1’,  ‘0’,  ‘A’, ‘H’, ‘L’ dan lain-lain. Sedangkat teks adalah kumpulan karakter seperti kata “Saya mau ambil sesuatu”.

a. Kirim Data Karakter

Sekarang kita akan mencoba mengirim sebuah karakter ‘H’. Ada pun perintah dasarnya ada dua yaitu:
  • Serial.write(0x48)
    Ini adalah perintah untuk menuliskan byte 0x48, nilai yang dikirimkan adalah 0100 1000. Jika byte dikonversikan ke ASCII maka karakternya adalah ‘H’.
    Untuk tabel ASCII Byte dapat merujuk ke wikipedia.
  • atau dapat juga menggunakan perintah Serial.print(‘H’)
 

void setup() {
Serial.begin(9600);

}

void loop() {
Serial.write(0x48);

//atau bisa gunakan command berikut:
//Serial.print('H');
delay(1000);
}

b. Kirim Data String

Sekarang untuk mengirim data dalam bentuk string, perintah yang digunakan adalah Serial.println(“data”). Adapun programnya adalah sebagai berikut:

void setup() {
Serial.begin(9600);

}

void loop() {
Serial.println("Selamat datang di Arduino32");
delay(1000);
}
 

2. Progam menerima Data

Pada progam menerima data kita akan bagi kedalam dua bagian yaitu terima karakter dan terima teks.
 
Karakter artinya kita hanya dapat menerima 1 karakter saja seperti ‘1’,  ‘0’,  ‘A’, ‘H’, ‘L’ dan lain-lain. Sedangkat teks adalah kumpulan karakter seperti kata “Saya mau ambil sesuatu”.
 

a. Terima Data Karakter

Adapun untuk menerima program karakter adalah dengan menggunakan perintah Serial.read(). 
Untuk dapat memunculkan data byte ke Serial monitor, maka kita gunakan perintah Serial.write(data dari serial;
 

byte data;

void setup() {
Serial.begin(9600);
}

void loop() {
if (Serial.available())
{
data = Serial.read();
Serial.write(data);
Serial.write(0x0A); //Newlinew
}
}
 

 

b. Terima Data String

Untuk menerima data dalam bentuk String, maka kita harus mengambil data perkarakter, lalu digabung sehingga membentuk teks/string. Adapun programnya adalah sebagai berikut:

char dataChar;
String dataTeks;

void setup() {
Serial.begin(9600);
}

void loop() {
if (Serial.available())
{
while (Serial.available())
{
dataChar = Serial.read();
dataTeks += dataChar;
}

if (dataChar == 'n')
{
Serial.print(dataTeks);
dataTeks = "";
}
}
}
Hasilnya adalah:
 
Sekian tutorial , semoga artikel bisa bermanfaat untuk teman-teman semua. Silahkan share ke teman-teman lain yang membutuhkan.
Terima kasih.