Skip to content Skip to sidebar Skip to footer

Cara Konversi Tipe Data Pada Serial Monitor Arduino

A. Latar Belakang

Cara Konversi Tipe Data Pada Serial Monitor Arduino – Pemahanan tipe data sangat dibutuhkan ketika kita menggunakan komunikasi Serial monitor pada Arduino.
Cara Konversi Tipe Data Pada Serial Monitor Arduino
Misalnya kita mengirimkan angka 1 dari serial monitor ke Arduino menggunakan komunikasi serial, namun nilai yang di hasilkan atau yang ditampilkan di serial monitor  adalah 49.

Mengapa demikian? Karena yang ditampilkan adalah angka desimal bukan karakter ASCII. Perhatikan pada tabel di bawah ini, colom Dec nomor 49, ia akan merujuk kepada Chr (karakter) untuk menampilkan angka 1.

Cara Konversi Tipe Data Pada Serial Monitor Arduino
Untuk lebih banyak tentang ASCII silahkan merujuk ke wikipedia.

Data yang dikirim menggunakan komunikasi serial akan dibaca oleh microcontroller dari buffer serial. Apa itu buffer? 

Buffer adalah antrian data. Jadi ketika data dikirimkan pada komunikasi serial, data dalam antrian yang akan ditangani sesuai urutan penerimaannya.  Umumnya pembacaan serial pada Arduino menggunakan perintah berikut:

if (Serial.available() > 0){ // Cek apakah ada data yang tersedia pada komunikasi serial, jika ada akan masuk kedalam perintah selanjutnya
data = Serial.read(); // Baca data
Serial.println(data); // Tampilkan data
}

Bagaimana agar kita dapat menampilkan data yang sesuai dengan keinginan kita, baik itu dalam Desimal, Hexadesimal, Octadesimal, Karakter, bahkan String? Format yang bisa anda gunakan adalah sebagai berikut:
1. Serial.write(data);               // Menampilkan karakter ASCII
2. Serial.println(data, BIN);    // Menampilkan angka Biner
3. Serial.println(data, DEC);   // Menampilkan angka Desimal
4. Serial.println(data, HEX);   // Menampilkan angka Hexadesimal
5. Serial.println(data, OCT);   // Menampilkan angka Octadesimal
6. Serial.readString(data);       // Menampilkan String

B. Program Konversi Data Arduino

Silahkan anda mencoba program berikut:

byte data;
void setup(void) {
Serial.begin(9600);
}
void loop(void) {
if (Serial.available() > 0) {
data = Serial.read();
Serial.print("Karakter : ");
Serial.write(data); // menampilkan karakter ASCII
Serial.println();
Serial.print("Biner : ");
Serial.println(data, BIN); // Menampilkan angka Biner
Serial.print("Desimal : ");
Serial.println(data, DEC); // Menampilkan angka Desimal
Serial.print("Hexadesimal : ");
Serial.println(data, HEX); // Menampilkan angka Hexadesimal
Serial.print("Octadesimal : ");
Serial.println(data, OCT); // Menampilkan angka Octadesimal
Serial.println();
delay(100);
}
}

Misalnya anda mengetikkan angka 1, kemudian upload program ke Arduino, lihat pada serial monitor, maka akan muncul data berikut:
Cara Konversi Tipe Data Pada Serial Monitor Arduino

Jika anda mengirimkan satu kata, misalnya “Tes”, maka program di atas akan membagi atas 3 karakter yaitu T, e, dan s. Gambar di bawah adalah contoh jika kita memasukkan kata Tes.
Cara Konversi Tipe Data Pada Serial Monitor Arduino

Bagaimana caranya agar kita bisa mengirim kata? Contohnya kata “Tes”. Jawabannya adalah kita menggunakan Serial.readString();. Silahkan anda mencoba dengan program berikut:
String data;
void setup(void) {
Serial.begin(9600);
}
void loop(void) {
if (Serial.available() > 0) {
data = Serial.readString();
Serial.println(data);
delay(10);
}
}

Jika anda mencoba mengirimkan kata, maka yang akan muncul adalah kata yang sesuai dengan apa yang kita kirimkan, contohnya kirim kata “Tes”, maka akan muncul kata “Tes”:
Cara Konversi Tipe Data Pada Serial Monitor Arduino

Anda juga dapat mengirimkan kalimat, misalnya “Andi pergi ke sekolah bersama Ibu”. Hasilnya:
Cara Konversi Tipe Data Pada Serial Monitor Arduino

Semoga bermanfaat.

4 comments for "Cara Konversi Tipe Data Pada Serial Monitor Arduino"

  1. thankyou, post ini sangat membantu saya cara mengkonversi setiap tipe data ke tipe data lain pada arduino

    ReplyDelete
  2. Numpang tanya, jika serial monitor mengirim 103, Arduino membaca 103 bilangan desimal, seperti apakah sketsanya?

    ReplyDelete
    Replies
    1. Jika ingin menerima dan menampilkan hanya bilangan desimal, bisa pakai "Serial.parseInt(data dari serial);"

      Coba program berikut:

      int data;

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

      void loop(void) {
      if (Serial.available() > 0) {
      data = Serial.parseInt();
      Serial.println(data); // menampilkan karakter ASCII
      delay(100);
      }
      }

      Delete