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
-
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
a. Kirim Data Karakter
- 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
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println("Selamat datang di Arduino32");
delay(1000);
}
2. Progam menerima Data
a. Terima Data Karakter
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
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 = "";
}
}
}