Banding String Serial Arduino
String Arduino Compare Cara Membandingkan String Dari Komunikasi Serial – String bahasa sederhananya adalah kalimat. Membandingkan string pada pemrograman Arduino tidak semudah membandingkan angka seperti Int dan Float.
Cara Membandingkan String Arduino |
Dalam melakukan perbandingan String atau String Arduino Compare, ada beberapa metode yang digunakan, tergantung darimana String yang ingin kita bandingkan.
A. Operator Perbandingan String
Untuk dapat membandingkan suatu nilai, kita butuh operatur perbandingan. Begitu juga dengan String. Operator perbandingan String antara lain:
- “==” dibaca “sama dengan”
- “!=” dibaca “tidak sama dengan”
- “>” dibaca “lebih besar dari”
- “<” dibaca “lebih kecil dari”
- “>=” dibaca “lebih besar sama dengan”
- “<=” dibaca “lebih kecil sama dengan”
- “equals()” sama dengan operator “==”
if (stringSatu == stringKedua) {
if (stringSatu.equals(stringKedua)) {
B. Progam Membandingkan String Arduino Dasar
Berikut merupakan kode untuk contoh string yang telah ditetapkan. Kita akan membandingkan dua nilai String.
Kita buat stringSatu = “tes” dan stringKedua = “tes”. Jika kedua string benar dan sama, maka arduino akan mengirimkan pemberitahuan ke serial monitor dengan kata “kata sama”.
Berikut adalah programnya:
String stringSatu = "tes";
String stringKedua = "tes";
void setup() {
Serial.begin(9600);
}
void loop() {
if (stringSatu == stringKedua)
{
Serial.println("kata sama");
}
else Serial.println("kata tidak sama");
delay(5000);
}
Silahkan anda buka serial monitor arduino, maka hasil pernyataan akan tampil. Sekarang silahkan ubah kata “tes” dari salah satu string menjadi kata yang lain. kemudian upload kembali programnya.
Lihat kembali pada serial monitor Arduino, anda akan melihat hasil pernyataannya.
C. Progam Membandingkan String Arduino Dari Komunikasi Serial
Penanganan string pada data dari serial berbeda dengan data yang telah ditetapkan. Untuk membaca data string dari serial dan membandingkannya, ada dua metode yaitu :
- Baca String dari serial hingga data ‘n’, kemudian data dipotong lalu dibandingkan.
- Baca String dari serial hingga data ‘n’, kemudian data diubah langsung menjadi char array, lalu dibandingkan
Sekarang kita akan membuat Projek Arduino Sederhana, menghidupkan LED melalui Serial Komunikasi String.
Contoh projek yang akan digunakan adalah, menghidupkan 3 LED dengan warna berbeda dengan perintah String.
- String “Merah On” untuk menghidupkan lampu merah, “Merah Off” untuk mematikannya.
- String “Hijau On” untuk menghidupkan lampu hijau, “Hijau Off” untuk mematikannya.
- String “Biru On” untuk menghidupkan lampu biru, “Biru Off” untuk mematikannya.
Rangkaian Pengujian LED melalui Serial Arduino |
1. Membaca Data String Hingga Berisi Data ‘n’ Kemudian Data Dipotong
Sekarang kita akan belajar bagaimana cara membandingkan nilai String yang dikirimkan melalui serial.
/* www.chippiko.com
Program Membandingkan String Dari Serial
Untuk menghidupkan LED
*/
int ledMerah = 13;
int ledHijau = 12;
int ledBiru = 11;
String read_string = " ";
void setup() {
Serial.begin(9600);
pinMode(ledMerah, OUTPUT);
pinMode(ledHijau, OUTPUT);
pinMode(ledBiru, OUTPUT);
}
void loop() {
while (Serial.available() > 0) {
read_string = Serial.readStringUntil('n');
read_string.trim();
delay(100);
if (read_string == "Merah On") {
digitalWrite(ledMerah, HIGH);
}
if (read_string == "Merah Off") {
digitalWrite(ledMerah, LOW);
}
if (read_string == "Hijau On") {
digitalWrite(ledHijau, HIGH);
}
if (read_string == "Hijau Off") {
digitalWrite(ledHijau, LOW);
}
if (read_string == "Biru On") {
digitalWrite(ledBiru, HIGH);
}
if (read_string == "Biru Off") {
digitalWrite(ledBiru, LOW);
}
}
}
2. Merubah Data String Menjadi Char Array
Sekarang, dengan projek yang sama, kita akan merubah terlebih dahulu string yang diterima menjadi Char Array. Ini sebenarnya cara yang lebih baik.
Perhatikan program berikut:
/* www.chippiko.com
Program Membandingkan String Dari Serial
Untuk menghidupkan LED
*/
int ledMerah = 13;
int ledHijau = 12;
int ledBiru = 11;
char bufferString[32];
void setup() {
Serial.begin(9600);
pinMode(ledMerah, OUTPUT);
pinMode(ledHijau, OUTPUT);
pinMode(ledBiru, OUTPUT);
}
void loop() {
while (Serial.available() > 0) {
Serial.readBytesUntil('n', bufferString, 32);
if (strcmp(bufferString, "Merah On") == 0) {
Serial.println(bufferString);
digitalWrite(ledMerah, HIGH);
}
if (strcmp(bufferString, "Merah Off") == 0) {
Serial.println(bufferString);
digitalWrite(ledMerah, LOW);
}
if (strcmp(bufferString, "Hijau On") == 0) {
digitalWrite(ledHijau, HIGH);
}
if (strcmp(bufferString, "Hijau Off") == 0) {
digitalWrite(ledHijau, LOW);
}
if (strcmp(bufferString, "Biru On") == 0) {
digitalWrite(ledBiru, HIGH);
}
if (strcmp(bufferString, "Biru Off") == 0) {
digitalWrite(ledBiru, LOW);
}
memset(bufferString, 0, sizeof(bufferString));
}
}
Saya berharap artikel String Arduino Compare dapat membantu anda.
Sermoga bermanfaat.
Sumber :