Penjelasan Singkat
Komunikasi serial Arduino adalah Komunikasi antara Arduino Uno dan Komputer dapat dilakukan melalui port USB. Dalam hal ini, Arduino Uno tidak hanya bisa mengolah data dari pin I/O secara independ.
Tetapi dapat juga dikomunikasikan dengan komputer untuk ditampilkan hasil dari pengolahan datanya sehingga komunikasi yang dilakukan bersifat dua arah.
Pada Arduino IDE terdapat fasilitas untuk berkomunikasi dua arah melalui serial monitor yang dapat dimanfaatkan dalam berbagai keperluan.
Dengan menggunakan fasilitas ini, dapat dikirimkan data ke Arduino Uno dan sebaliknya dapat membaca kiriman dari arduino uno.
Tentu saja, hal ini memungkinkan dapat mengontrol Arduino Uno melalui komputer dan memantau sesuatu yang sedang terjadi di Arduino Uno.
Sebagai contoh, saat mengirimkan isyarat untuk menghidupkan lampu atau memantau suhu yang terdeteksi oleh sensor suhu di Serial Monitor.
Jenis command komukasi serial Arduino :
- Serial.begin() : untuk menentukan kecepatan pengiriman dan penerimaan data melalui port serial. Kecepatan yang umum digunakan adalah 9600 bit per detik (9600 bps). Namun, kecepatan hingga 115.200 didukung oleh Arduino Uno. Contoh yang sering digunakan yaitu Serial.begin(9600).
- Serial.end() : digunakan untuk menghentikan program akan perintah komunikasi serial.
- Serial.available () : berguna untuk menghasilkan jumlah byte di port serial yang belum terbaca. Jika port serial dalam keadaan kosong, maka fungsi ini dapat menghasilkan nilai nol.
- Serial.read() : berguna untuk membaca satu byte data yang terdapat di port serial. Setelah pemanggilan Serial.read(), jumlah data di port serial berkurang satu.
- Serial.print(data) : berfungsi untuk mengirimkan data ke port serial. Apabila argumen format disertakan, data yang dikirim akan menyesuaikan dengan format tersebut. Dalam hal ini, format yang digunakan bisa berupa.
- Serial.flush() : berfungsi sebagai untuk pengosongan data pembacaan yang ditaruh pada buffer.
- Serial.parseFloat() : berfungsi untuk bilangan titik mengambang atau real.
- Serial.println(data) : memiliki fungsi yang hampir sama dengan serial print, yang memberi efek perpindahan baris berikutnya.
- Serial.parseln() : untuk menghasilkan nilai bulat.
Contoh konversi data pada komunikasi serial arduino seperti dibawah ini :
- Serial.print(65); //hasil nilai tertampil 65
- Serial.print(65,DEC); //(format desimal atau basis 10) hasil nilai tertampil 65
- Serial.print(65, HEX); //(format hexadesimal atau basis 16) hasil nilai tertampil 41
- Serial.print(65, OCT); //(format oktal atau basis 8) hasil nilai tertampil 101
- Serial.print(65, BIN); //(format biner atau basis 2) hasil nilai tertampil 1000001
Tutorial pertama komunikasi serial Arduino
Bahan yang perlu dipersiapkan antara lain :
- Arduino Uno
- Komputer + Software IDE Arduino
Skema rangkaiannya yaitu hanya menghubungkan arduino dengan komputer menggunakan usb tipe printer.
Dan menggunakan software IDE sebagai sarana pemrogramannya, serta fitur serial monitor untuk melihat hasil dari koding pemrogramannya.
Skema rangkaian antara arduino dan laptop
Koding Pemrograman
void setup(){ Serial.begin(9600); } void loop(){ while(Serial.available() !=){ char data = Serial.read(); //kirim ke port serial Serial.print("Karakter :"); Serial.print(data); Serial.print(", ASCII :"); Serial.print(data,DEC); Serial.print(", Oktal :"); Serial.print(data, OCT); Serial.print(", Heksa :"); Serial.print(data, HEX); Serial.print(", Biner :"); Serial.println(data, BIN); //untuk baris pembacaan berikutnya delay(20); // waktu tunda untuk menyiapkan pembacaan berikutnya }}
Berikut hasil pembacaan seperti gambar dibawah ini, dengan mengetikan kata “nyebarilmu.com”.
Hasil dari serial monitor
Tutorial kedua komunikasi serial Arduino
Bahan yang perlu dipersiapkan antara lain :
- Arduino Uno
- LED (4 pcs)
- Resistor (4 pcs)
- Breadboard
- Kabel jumper
- Komputer + Software IDE Arduino
Skema rangkaian
Koding pemrogramannya
int lamp1 = 11; int lamp2 = 12; int lamp3 = 13; int databaca; void setup() { pinMode(lamp1, OUTPUT); pinMode(lamp2, OUTPUT); pinMode(lamp3, OUTPUT); Serial.begin(9600); } void loop() { if (Serial.available()>0) { int bacadata = Serial.read(); if (bacadata =='a') {databaca=1;} if (bacadata =='b') {databaca=2;} if (bacadata =='c') {databaca=3;} if(databaca==1) running: //LED akan berjalan pada mode running { digitalWrite(lamp1, HIGH); delay(250); digitalWrite(lamp1, LOW); delay(250); digitalWrite(lamp2, HIGH); delay(250); digitalWrite(lamp2, LOW); delay(250); digitalWrite(lamp3, HIGH); delay(250); digitalWrite(lamp3, LOW); delay(250); Serial.println("LED mode running"); loop(); goto running; } if(databaca==2) flipflop: // LED akan berjalan pada mode flip flop { digitalWrite(lamp1, LOW); digitalWrite(lamp2, LOW); digitalWrite(lamp3, LOW); delay(500); digitalWrite(lamp1, HIGH); digitalWrite(lamp2, HIGH); digitalWrite(lamp3, HIGH); delay(500); Serial.println("LED mode flip flop"); loop(); goto flipflop; } if(databaca==3) modeoff: // Semua LED akan off { digitalWrite(lamp1,LOW); digitalWrite(lamp2,LOW); digitalWrite(lamp3,LOW); delay(1000); Serial.println("LED mode off"); loop(); goto modeoff; } } }
Hasil pada serial monitor seperti gambar dibawah ini
Tampilan pada serial monitor
Terimakasih sudah berkunjung, dan semoga bermanfaat. Salam nyebarilmu.com!
>> CMIIW <<
Incoming search terms:
- nu vot (43)
- cara menggunakan serial (25)
- komunikasi serial arduino (23)
- program serial monitor arduino (5)
- fungsi serial begin (5)
- cara mengatasi komunikasi serial arduino dan nodemcu yang lambat (5)
- keyword sensor gy906 (4)
- fungsi serial println pada arduino (4)
- input 2 nilai serial monitor arduino (4)
- fungsi serial begin pada arduino (4)