Pengenalan Serial Monitor dan Input I/O

Pada tutorial kali ini kita akan berkenalan dengan feature Serial Monitor, yang akan cukup sering digunakan nanti, terutama untuk debugging. Sesuai nama nya, Serial Monitor adalah sebuah feature yang dimiliki oleh software Arduino IDE untuk memonitor atau memantau data yang tersedia atau dikeluarkan oleh microcontroller via komunikasi serial. Dengan Serial Monitor kita bisa mengetahui apa yang dituliskan di port serial dan ditampilkan pada jendela Serial Monitor.

Komunikasi serial pada board UNO dilakukan pada port serial yang terletak pada pin 0 dan pin 1, atau melalui USB. Board UNO, Nano, ProMini, Lilypad memiliki hanya 1 buah serial yang terletak pada pin 0 dan 1 dan digunakan juga sebagai komunikasi melalui USB

Untuk mencoba Serial Monitor kali ini, wiring rangkaian yang digunakan hanya board Uno yang terkoneksi ke komputer via USB, tanpa komponen atau modul apapun.

Bukalah file ESSENTIALS_Serial_Monitor_1.ino (download di link ini) dan upload ke board Uno. Setelah di upload, tidak akan tampak apa-apa pada board karena pada saat ini kita tidak mengontrol hardware apapun.

Untuk memunculkan jendela Serial Monitor, klik icon yang berada di pojok kanan atas jendela Arduino IDE. Pastikan juga board Arduino sudah terkoneksi ke komputer melalui kabel USB.

Pada jendela Serial Monitor, akan tampak data seperti gambar di bawah ini

Pastikan sudah menggunakan baud rate 115200 di bagian pojok kanan bawah jendela serial monitor agar sama dengan kecepatan baud rate yang kita tentukan dalam sketch

Mari kita bahas sketch ESSENTIALS_Serial_Monitor_1.ino

/*   TUTORIAL SERIAL MONITOR 1   ecadio.com*/int x = 1;   void setup() {  Serial.begin(115200);//memulai inisiasi komunikasi serial dengan baud rate 115200 bps  Serial.println("Mencoba Serial Monitor");}void loop() {  Serial.print("Ini loop ke : ");  Serial.println(x);  x++;  delay(2000);}

Pada bagian sebelum setup(), ada baris perintah yang menyimpan variabel memori x dengan nilai 1. Variabel ini akan kita gunakan dalam perintah dalam loop nanti

int x = 1;

Pada pemrograman Arduino, kita tidak bisa menyimpan data variabel tanpa mendeklarasikan jenis tipe data variabel tersebut. Oleh karena itu kita menulis int di depan variabel x untuk mendeklarasikan bahwa variabel x berjenis integer

Pada bagian setup(), untuk bisa menggunakan komunikasi serial seperti menampilkan data pada serial Monitor, gunakan perintah Serial.begin(115200); untuk memerintahkan untuk memulai komunikasi serial dengan baudrate 115200

Syntax dari Serial.begin() adalah

Serial.begin(baud_rate);

Dimana baud rate adalah nilai kecepatan baud rate serial yang akan kita gunakan. Nilai yang bisa digunakan adalah ada cukup banyak pilihan, yang bisa dilihat pada jendela Serial Monitor di bagian pojok kanan bawah, namun nilai yang biasa digunakan adalah 9600 untuk kecepatan transfer data yang agak lambat dan 115200 untuk kecepatan cukup tinggi.

Perintah selanjutnya adalah Serial.println(). Serial.println() kita gunakan untuk menuliskan data yang akan muncul di jendela Serial Monitor.

Serial.println("Mencoba Serial Monitor");

Pada baris perintah diatas, kita akan memunculkan tulisan “Mencoba Serial Monitor” pada jendela Serial Monitor. Tulisan tersebut hanya akan muncul sekali saat board dinyalakan, karena perintah ditulis di bagian setup().

Baris perintah berikutnya adalah di bagian loop().

Serial.print("Ini loop ke : ");Serial.println(x);

Baris perintah tersebut menulis tulisan “Ini loop ke : “ yang dilanjutkan dengan menulis nilai variabel x. Saat awal di eksekusi, nilai x adalah 1, karena kita telah menyimpan integer 1 sebelum nya.

Apa perbedaan Serial.print() dengan Serial.println()? Perbedaan nya adalah setelah perintah Serial.print(), tulisan selanjutnya setelah Serial.print() akan ditampiilkan pada posisi langsung sebelah data terakhir. Sedangkan pada Serial.println(), data akan ditampilkan pada baris baru setelah data pada Serial.println() di tampilkan.

x++;

Baris perintah tersebut menambahkan nilai x dengan 1, sehingga nilai x akan menjadi 2. Nilai 2 ini akan ditampilkan pada loop berikutnya, yang kemudian akan ketemu baris x++ lagi, yang akan ditambahkan 1 lagi, demikian seterus nya

delay(2000);

Perintah delay 2 detik tersebut dimaksudkan agar data yang tampil di Serial Monitor tidak tampil terlalu cepat, tapi ada jeda setiap 2 detik



TUTORIAL SERIAL MONITOR 2

Sama seperti tutorial sebelum nya, untuk mencoba Serial Monitor kali ini, wiring rangkaian yang digunakan hanya board Uno yang terkoneksi ke komputer via USB, tanpa komponen atau modul apapun. Pada kesempatan kali kini kita akan mencoba menggunakan Serial Monitor untuk menampilkan nilai yang diperoleh pada pin I/O.

Bukalah file ESSENTIALS_Serial_Monitor_2.ino (bisa di download di link ini) dan upload ke board Uno. Setelah di upload, tidak akan tampak apa-apa pada board secara hardware karena pada saat ini kita tidak menambahkan hardware apapun.

Untuk memunculkan jendela Serial Monitor, kembali klik icon yang berada di pojok kanan atas jendela Arduino IDE. Pastikan juga board Arduino sudah terkoneksi ke komputer melalui kabel USB.

Pada jendela Serial Monitor, akan tampak data seperti gambar di bawah ini

Pastikan sudah menggunakan baud rate 115200 di bagian pojok kanan bawah jendela serial monitor agar sama dengan kecepatan baud rate yang kita tentukan dalam sketch

Mari kita bahas sketch ESSENTIALS_Serial_Monitor_2.ino

/*
   TUTORIAL SERIAL MONITOR ARDUINO 
   MENAMPILKAN NILAI DARI SEBUAH PIN
   ecadio.com
*/

   
void setup() {
  Serial.begin(115200);//memulai inisiasi komunikasi serial dengan baud rate 115200 bps
  Serial.println("Mencoba Serial Monitor 2");
  pinMode(A5,INPUT); //set pin Analog 5 atau A5 menjadi input
}

void loop() {
  int nilai = analogRead(A5);
  Serial.print("Nilai dari A5 :");
  Serial.println(nilai);
  delay(1000);
}

Pada bagian setup(), untuk bisa menggunakan komunikasi serial seperti menampilkan data pada serial Monitor, gunakan perintah

Serial.begin(115200);

Syntax dari Serial.begin() adalah

Serial.begin(baud_rate);

Dimana baud rate adalah nilai kecepatan baud rate serial yang akan kita gunakan. Nilai yang bisa digunakan adalah ada cukup banyak pilihan, yang bisa dilihat pada jendela Serial Monitor di bagian pojok kanan bawah, namun nilai yang biasa digunakan adalah 9600 untuk kecepatan transfer data yang agak lambat dan 115200 untuk kecepatan cukup tinggi.

Perintah selanjutnya adalah Serial.println(). Serial.println() kita gunakan untuk menuliskan data yang akan muncul di jendela Serial Monitor.

Serial.println("Mencoba Serial Monitor 2");

Pada baris perintah diatas, kita akan memunculkan tulisan Mencoba Serial Monitor 2 pada jendela Serial Monitor. Tulisan tersebut hanya akan muncul sekali saat board dinyalakan, karena perintah ditulis di bagian setup().

Selanjutnya terdapat baris perintah untuk memberi intruksi ke mikrokontroller bahwa kita akan mengambil nilai dari sebuah pin, atau memberlakukan sebuah pin sebagai INPUT.

pinMode(A5,INPUT); //set pin Analog 5 atau A5 menjadi input

Berbeda dengan tutorial led sebelum nya, dimana kita memperlakukan pin-pin yang terhubung dengan led-led sebagai OUTPUT (karena kita akan memberikan tegangan 5V saat HIGH atau 0V saat LOW), pada pin kali ini kita memerintahkan sebagai INPUT, karena kita akan mengambil atau menangkap nilai tegangan yang ada di pin tersebut. Di contoh ini kita akan mengambil nilai tegangan dari pin analog 5 (A5), yang walaupun pada pin tersebut tidak terhubung ke alat apapun namun akan terdapat tegangan yang berubah-ubah saking sensitif nya mikrokontroller, sehingga bisa kita ambil untuk di tampilkan.

Pin analog bisa memberikan nilai antara 0 sampai 1023, tergantung tegangan yang di terima oleh pin tersebut. Sedangkan pada pin digital hanya akan memberikan nilai 0 (LOW) atau 1 (HIGH), tergantung tegangan yang diterima pin digital tersebut. Jika pin digital menerima tegangan diatas 3V maka akan dianggap 1 atau HIGH. Begitupun dengan jika menerima tegangan dibawah 3V akan dianggap 0 atau LOW. Pada board UNO terdapat 14 pin (pin 0 s/d pin 13) digital dan 5 buah pin analog (A0 s/d A5).

Pada tutorial ini pin yang kita gunakan adalah pin A5 yang merupakan pin analog sehingga nilai yang akan muncul antara 0 sampai 1023.

Baris perintah berikutnya adalah di bagian loop().

int nilai = analogRead(A5);

Pada baris tersebut kita memerintahkan untuk menangkap nilai dari A5 dengan perintah analogRead() dan menyimpan nya di variabel “nilai” yang memiliki jenis data integers (int)

Nilai yang tertangkap tersebut dan telah disimpan ke variabel “nilai”, kemudian akan ditampilkan pada baris berikut nya :

  Serial.print("Nilai dari A5 :");
  Serial.println(nilai);

Apa perbedaan Serial.print() dengan Serial.println()? Perbedaan nya adalah setelah perintah Serial.print(), tulisan selanjutnya setelah Serial.print() akan ditampiilkan pada posisi langsung sebelah data terakhir. Sedangkan pada Serial.println(), data akan ditampilkan pada baris baru setelah data pada Serial.println() di tampilkan.

Featured Products

Board UNO ATmega328 Robotdyn (Arduino Compatible)

Board UNO ATmega328 Robotdyn (Arduino Compatible)

Board UNO buatan Robotdyn ini adalah development board ATmega328 versi SMD  yang dibentuk denga..

Rp. 125.000,-

Board UNO R3 ATmega328 DIP (Arduino Compatible)

Board UNO R3 ATmega328 DIP (Arduino Compatible)

Board UNO R3 adalah papan pengembang (Development Board) untuk rangkaian mikrokontroler berbasis pla..

Rp. 145.000,-

Board Mega 2560 - Arduino Compatible

Board Mega 2560 - Arduino Compatible

Development board Mega 2560 hadir untuk memenuhi kebutuhan anda akan jumlah I/O dan jumlah serial ya..

Rp. 235.000,-

Board Nano 3.0 ATmega328 (Arduino Compatible)

Board Nano 3.0 ATmega328 (Arduino Compatible)

Development board Nano ini adalah salah satu versi dari development board Arduino Compatible yang me..

Rp. 130.000,-

Board Pro Mini ATmega328 5V (Arduino Compatible)

Board Pro Mini ATmega328 5V (Arduino Compatible)

Development board Pro Mini ini adalah salah satu versi dari development board Arduino Compatible yan..

Rp. 120.000,-

Board Pro Micro ATmega32U4 (Arduino Compatible)

Board Pro Micro ATmega32U4 (Arduino Compatible)

Development Board Pro Micro adalah development board Arduino compatible yang berbentuk kecil seperti..

Rp. 150.000,-

Development Board Arduino Compatible Mega 2560

Development Board Arduino Compatible Mega 2560

Development board Mega 2560 hadir untuk memenuhi kebutuhan anda akan jumlah I/O dan jumlah serial ya..

Rp. 285.000,-