Cara Konversi Tipe Data Pada Serial Monitor Arduino – Pemahanan tipe data sangat dibutuhkan ketika kita menggunakan komunikasi Serial monitor pada 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 , colom Dec nomor 49, ia akan merujuk kepada Chr (karakter) untuk menampilkan angka 1.
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
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:
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.
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”:
Anda juga dapat mengirimkan kalimat, misalnya “Andi pergi ke sekolah bersama Ibu”. Hasilnya:
Semoga artikel ini bermanfaat. Sumber : Chippiko.com