4. Pembelajaran Dasar Komunikasi Serial dan Asas String
Materi:
Pembelajaran Dasar Komunikasi Serial dan Asas String ini menjelaskan cara berkomunikasi antara Arduino dan komputer. Berbagai contoh diberikan untuk memudahkan dalam memahaminya. Selain itu, bab ini mengupas dua jenis string yang dapat digunakan di Arduino.
4.1 Pemanfaatan Komunikasi Serial
Manfaat paling dasar adanya komunikasi serial adalah memungkinkan terjadinya pertukaran informasi antara papan Arduino dan komputer.Hal ini memungkinkan Anda memantau status proyek-proyek yang sedang Anda uji langsung di komputer. Sebagai contoh, Anda bisa menguji sensor gas atau sensor jarak tanpa harus menggunakan LCD display terlebih dahulu. Dengan demikian, fokus Anda cukup pada sensor-sensor tersebut,tanpa perlu bersusah payah merangkai LCD display dan memprogramnya.
Hal yang menarik, komunikasi dapat dilakukan secara dua arah. Artinya, baik komputer maupun papan Arduino dapat saling mengirim maupun menerima informasi.
4.2 Berkomunikasi dengan Papan Arduino
Contoh yang memberikan gambaran mengenai komunikasi antara papan Arduino dan komputer diperlihatkan di sketch berikut:
Sketch:bacakar
// ——————————————–
// Contoh komunikasi antara Arduino dan komputer
// Arduino akan membaca data dari port
// dan akan mengirim balik ke port supaya
// bisa dibaca oleh komputer
//
// Rangkaian tidak diperlukan
// ——————————————–
void setup()
{
1// Atur kecepatan penerimaan dan pengiriman data
Serial.begin(9600);
}
void loop()
while (Serial.available()!= 0)
char data=Serial.read();
Serial.print(data);
delay(20); // Tunda sebentar untuk menyiapkan
// pembacaan data berikutnya
Sketch bacakar digunakan untuk membaca semua karakter yang dikirimkan ke port serial (oleh komputer). Untuk memulai komunikasi,Serial,begin() perlu dipanggil terlebih dahulu,Pada contoh di depan,
serial,begin(9600):
yang terdapat di setup(),ditujukan untuk mengawalikomunikasi.Argumen 9600 menentukan kecepatan data baik untuk keperluan pengiriman maupun penerimaan.
jika diperlukan,komunikasi dapat dibuka dan ditutup dalam waktu yang singkat,Untuk keperluan menutup komunikasi serial,pernyataan berikut perlu dipanggil: Serial.end();
Arduino memantau data yang berada di port serial secara terus-menerus berkat perintah:
while (serial.available()!=0)
{
…
}
Dalam hal ini, Serial.available () akan menghasilkan nol sekiranya tidak ada data di port serial. Kalau port tersebut mengandung karakter, satu karakter akan dibaca melalui:
char data=Serial.read();
Pernyataan di atas mendeklarasikan variabel data sebagai variabel bertipe char (untuk menampung satu karakter).Variabel ini akan menampung karakter yang dibaca dari port serial.
Pernyataan
Serial.print(data);
digunakan untuk mengirim isi variabel data ke port serial dan implikasinya akan membuat isi data tersebut ditampilkan di penampil informasi port serial di komputer.
Nah,sekarang,persoalannya adalah “Bagaimana menguji sketch bacastring?”.Untuk keperluan ini, ikutilah langkah-langkah berikut.
Klik pada menu Tools di Arduino IDE dan kemudian klik pada Serial Monitor (lihat Gambar 4.1). Sebagai alternatif,Ctrl+Shift+M boleh digunakan. Sebagai hasil langkah ini, akan muncul jendela seperti terlihat di Gambar 4.2.
2. Cobalah untuk mengetikkan string seperti terlihat di Gambar 4.3.
3. Klik pada untuk mengirim string ke port serial. Hasilnya, setelah diproses oleh papan Arduino,akan muncul hasil di jendela seperti terlihat di Gambar 4.4.
Gambar 4.4 Hasil dari papan Arduino
4. Ujilah kembali dengan memasukkan string seperti terlihat di Gambar 4.5 dan kemudian klik kembali pada .Hasil seperti terlihat di Gambar 4.6 akan diperoleh.
Perhatikan bahwa hasil antara string pertama dan kedua tidak dipisahkan oleh baris baru (newline). Hal ini disebabkan memang tidak ada perintah untuk membuat baris baru setelah menampilkan semua karakter yang dibaca dari port serial.
Untuk membuat baris baru, Serial.println() diperlukan.Contoh ditunjukkan di sketch berikut:
Sketch:bacakar2
// ——————————————–
// Contoh penggunaan Serial.println()
// ——————————————–
void setup()
{
// Atur kecepatan penerimaan dan pengiriman data
Serial.begin (9600);
}
void loop()
while (Serial.available() != 0)
{
char data = Serial.read();
Serial.print(data);
Serial.print(“: Nilai ASCII: “);
Serial.println(data, DEC);
delay(20); // Tunda sebentar untuk menyiapkan
//pembacaan data berikutnya
}
}
Sketch bacakar2 sesungguhnya adalah pengembangan dari bacakar, dengan tambahan berupa dua pernyataan berikut setelah Serial.print (data);:
Serial.print(“: Nilai ASCII: “);
Serial.println(data, DEC);
Pernyataan pertama digunakan untuk menampilkan string “: Nilai ASCII: ” tanpa newline.Pernyataan kedua digunakan untuk menampilkan isi variabel data dalam bentuk desimal (yang menyatakan nilai ASCII dari karakter bersangkutan) dan diakhiri dengan newline atau baris baru (untuk berpindah baris).
Potongan In pada print1n() sebenarnya berasal dari newline. Dengan perkataan lain, print1n () digunakan untuk menampilkan data dan akan menambahinya dengan newline.
Argumen kedua pada print1n() bersifat opsional. Jika diberikan, isinya bisa berupa:
oDEC-untuk menampilkan data dalam bentuk desimal (nilai ASCII)
HEX-untuk menampilkan data dalam bentuk heksadesimal
OCT-untuk menampilkan data dalam bentuk oktal
BIN-untuk menampilkan data dalam bentuk biner
Gambar 4.7 memperlihatkan contoh string untuk melakukan pengujian sketch bacakar2:
Gambar 4.7 Pengujian untuk sketch bacakar2
Sekarang ujilah dengan mengklik pada . Hasil yang diperoleh seperti yang terlihat di Gambar 4.9.
Perhatikan bahwa ada tambahan carriage return (ASCII = 13).
4.3 Membaca Data Bertipe Int
Untuk kepentingan membaca data bilangan bulat, objek Serial melengkapi fungsi anggo bernama parseInt (). Nilai baliknya berupa bilangan pertama yang dijumpai di port serial. Contoh dap dilihat di sketch berikut:
Sketch:bacaint
// ——————————————–
// Contoh untuk membaca data bilangan bulat
// ——————————————–
void setup()
{
// Atur kecepatan penerimaan dan pengiriman data Serial.begin(9600);
}
void loop()
{
while (Serial.available() != 0)
// Baca data bilangan bulat
int bilangan = Serial.parseInt();
// Tampilkan bilangan ke komputer
Serial.print(“Bilangan -> “);
Serial.println(bilangan);
delay(20); // Tunda sebentar untuk menyiapkan
// pembacaan data berikutnya
}
}
Pada sketch di depan, pernyataan
int bilangan = Serial.parseInt();
digunakan untuk mendeklarasikan variabel bilangan sebagai variabel bertipe int dan memberikanG ebuah bilangan bulat yang berada di port serial ke variabel tersebut.
Pernyataan
Serial.print(“Bilangan -> “);
Serial.println(bilangan);
Digunakan untuk menampilkan string “Bilangan -> ” dan isi variabel bilangan.
Gambar 4.10 dan 4.11 memperlihatkan contoh string yang digunakan untuk menguji sketch bacaint.
4.4 Membaca Bilangan Pecahan
ntuk kepentingan membaca data bilangan bulat,objek serial melengkapi fungsi anggota bernama arseInt(). Nilai baliknya berupa bilangan pertama yang dijumpai di port serial. Contoh dapat dilihat dI ketch berikut:
Sketch:bacafloat
// ——————————————–
// Contoh untuk membaca data bilangan pecahan
// ——————————————–
void setup()
{
// Atur kecepatan penerimaan dan pengiriman data Serial.begin(9600);
}
void loop()
{
while (Serial.available() != 0)
// Baca data bilangan pecahan
float bilangan = Serial.parsefloat();
// Tampilkan bilangan ke komputer
Serial.print(“Bilangan -> “);
Serial.println(bilangan);
delay(20); // Tunda sebentar untuk menyiapkan
// pembacaan data berikutnya
}
}
Pada sketch di depan, pernyataan
float bilangan = Serial.parsefloat();
digunakan untuk mendeklarasikan variabel bilangan sebagai variabel bertipe float dan memberikanG ebuah bilangan bulat yang berada di port serial ke variabel tersebut.
Pernyataan
Serial.print(“Bilangan -> “);
Serial.println(bilangan);
Digunakan untuk menampilkan string “Bilangan -> ” dan isi variabel bilangan.
ambar 4.10 dan 4.11 memperlihatkan contoh string yang digunakan untuk menguji sketch bacafloat.
Gambar 4.12 String untuk menguji pembacaan bilangan pecahan
4.5 Mematikan atau Menghidupkan LED melalui Keyboard
Dengan memanfaatkan komunikasi serial, dimungkinkan untuk mengendalikan LED melalui keyboan Sebagai contoh,angka 1 digunakan untuk menyalakan LED dan angka O dipakai untuk mematikan LED.
Untuk mempraktikkan hal ini, siapkan rangkaian seperti terlihat di Gambar 4.14. Contoh penyusunan rangkaian diperlihatkan di Gambar 4.15.
Gambar 4.14 Rangkaian untuk mematikan/menghidupkan LED melalui keyboard
Gambar 4.15 Contoh penyusunan rangkaian untuk menghidupkan/mematikan LED
Sketch:aturled1
// ——————————————–
// Contoh untuk mengendalikan LED melalui
// perintah dari komputer
//
// Versi 2 – Solusi dengan string berakhiran NULL
// Perintah berupa string
// ON, on, On oN : LED dihidupkan
// Off, OFF, dst: LED dimatikan
// ——————————————–
const int PIN_12=12;
void setup()
{
// Atur kecepatan penerimaan dan pengiriman data Serial.begin(9600);
// Atur PIN 12 sebagai keluaran
pinMode(PIN 12,OUTPUT);
}
void loop()
{
while (Serial.available()!=0)
{
//Baca data bilangan pecahan
int bilangan=Serial.parseInt();
// Buang sisanya kalau ada
Serial.flush();
// Atur LED
if (bilangan==1)
{
digitalWrite(PIN 12,HIGH);
Serial,printin(“LED dihidupkan”);
}
Else
if (bilangan== 0)
{
digitalWrite(PIN 12,LOW);
Serial,printin(“LED dimatikan”);
}
delay (20); // Tunda sebentar untuk menyiapkan
// pembacaan data berikutnya
}
}
Pada sketch di atas,pernyataan
int bilangan-Serial,parseint():
disunskan untuk mendeklarasikan variabel bilangan sebagal variabel bertipe int dan memberikan sebuah bilangan bulat yang berada di port serial ke variabel tersebut,
Pernyataan1
Serial.flush():
digunakan untuk membuang semua data tersisa di port serial. Adapun pernyataan berikut dipakai untuk mengendalikan LED:
if (bilangan ==1)
{
digitalWrite(PIN 12, HIGH);
Serial.println(“LED dihidupkan”);
}
else
if (bilangan ==0)
{
digitalWrite(PIN_12,LOW);
Serial.println(“LED dimatikan”);
}
Kode di atas akan membuat LED dihidupkan sekiranya bilangan bernilai 1 dan mematikan LED kalau bilangan bernilai 0. Pernyataan di atas juga mengirim informasi ke port serial berupa “LED” dihidupkan” atau “LED” dimatikan”. Untuk bilangan selain 0 atau 1 akan diabaikan.
Gambar 4.16 menunjukkan contoh pemasukan angka 1.Gambar 4.17 memperlihatkan hasil setelah tombol diklik untuk mengirimkan bilangan 1. Gambar 4.18 menunjukkan contoh pemasukan angka 0.
Gambar 4.19 memperlihatkan hasil setelah tombol diklik untuk mengirimkan bilangan 0.
Bagaimana halnya kalau perintah yang dikehendaki adalah suatu string ? Pembahasan mengenai hal ini dapat di lihat di Subbab 4.8.
4.6 Membaca Potensiometer
Potensiometer biasa digunakan untuk mengatur hambatan secara variabel. Bentuknya terlihat di gambar 4. 20. Nah, nilal yang bersifat variabel inilah yang akan dicoba dipantau dengan mengunakan komputer.
Gambar 4.20 Potensiometer
untuk kepentingan ini buatlah rangkaian seperti terihat di Gambar 4 21.Contoh penyusunan rangkaian diperlihatkan di Gambar 4.22.
Sketch yang digunakan untuk memantau potensiometer seperti berikut:
Sketch:potensio
// ——————————————–
// Contoh untuk memonitor nilai tegangan
// yang diatur oleh potensiometer
// ——————————————–
const int PIN_A0= 0;
int nilaiSebelum = 0;
void setup()
{
// Atur kecepatan penerimaan dan pengiriman data Serial.begin(9600);
// Atur PIN 12 sebagai keluaran
pinMode(PIN 12,OUTPUT);
}
void loop()
{
int nilaiSekarang = analogRead(PIN A0);
if (abs(nilaiSebelum- nilaiSekarang)> 2)
{
Serial.println(nilaiSekarang);
nilaiSebelum= nilaiSekarang;
}
delay(20);
}
Pada sketch di atas,kode
const int PIN_A0=0;
digunakan untuk mendefinisikan PIN_A0 sebagai pin analog 0.Pin inilah yang digunakan untuk membaca nil yang diatur oleh potensiometer,mengingat pin tengah potensiometer dihubungkan ke pin ini. Adapu pembacaan nilai pin analog 0 dilakukan melalui:
int nilaiSekarang = analogRead(PIN_A0);
Fungsi analogRead() bertindak sebagai pembaca nilai di pin analog 0. Nilai baliknya disimpan di nilaiSekarang.
Pernyataan if digunakan untuk mengatur agar nilai di pin A0 dikirim ke port serial hanya jika selisih nilai yang sama atau hanya berbeda 1 atau 2. antara nilaiSekarang dan nilaiSebelum lebih dari dua. Hal ini untuk menghindari pengiriman nilai yang sam atau hanya berbeda 1 atau 2.
Hasil sketch potensio dapat dilihat di Gambar 4.23.
Gambar 4.23 Hasil pengujian sketch potensio
4.7 Ulasan String
String yang dapat digunakan di sketch dapat dibedakan menjadi dua jenis: 1) string berakhiran karakter NULL dan 2) objek string. Masing-masing akan dibahas.
String Berakhiran Karakter NULL
Kadang kala diperlukan untuk menyimpan string dalam suatu variabel. Untuk keperluan ini, Anda bisa menggunakan array dengan elemen bertipe char. Dalam hal ini,string harus diakhiri dengan karakter NULL. Itulah sebabnya, string semacam ini dinamakan string berakhiran NULL (karakter dengan nilai ASCII sama dengan 0).
Jika array dimaksudkan untuk menampung n karakter, jumlah elemen array harus berupa n+1.Contoh:
char teks[25];
Deklarasi di atas akan membuat teks mampu menampung 24 karakter.
Sejumlah fungsi disediakan untuk melakukan pemanipulasian terhadap string berakhiran NULL. Beberapa fungsi dicantumkan di Tabel 4.1.
Tabel 4.1 Fungsi-fungsi untuk memanipulasi string berakhiran NULL
Fungsi
Keterangan
strcpy(target,sumber);
Fungsi ini berguna untuk menyalin string sumber ke target
strcat(target,sumber);
Fungsi ini berguna untuk menambahkan string sumber ke
akhir string target
strlen(string);
Fungsi ini berguna untuk memperoleh jumlah karakter di
string
strcmp(target,sumber);
Fungsi ini berguna untuk membandingkan dua string. Nilaibalik berupa:
-1 kalau target <sumber
0 kalau target=sumber
-1 kalau target> sumber
Pengertian kurang dari, sama dengan, atau lebih darididasarkan pada nilai ASCII setiap karakter pada posisi yangsama. Berdasarkan tabel ASCII, A< B dan A<a
strchr(string, karakter);
Fungsi ini berguna untuk memperoleh posisi pertama suatu
karakter di string. Nilai balik berupa pointer yang menunjuk
lokasi karakter yang dicari di string. Kalau karakter yang
dicari tidak ditemukan, nilai balik berupa NULL.
strstr(str_1,str_2);
Fungsi ini berguna untuk memperoleh posisi pertama suatustring (str_2) di suatu string (str_2). Nilai balik berupa pointer yang menunjuk lokasi string yang dicari di string str_1.Kalau string yang dicari tidak ditemukan, nilai balikberupa NULL.
strlwr(str);
Fungsi ini berguna untuk mengonversi setiap huruf kaptal
di str menjadi huruf kecil.
strupr(str);
Fungsi ini berguna untuk mengonversi setiap huruf ke
str menjadi huruf kapital.
Untuk kepentingan pemanipulasian karakter yang digunakan dalam pengolahan string, sejumlah fungsi juga tersedia. Tabel 4.2 memperlihatkan sejumlah fungsi yang terkait dengan karakter.
Tabel 4.2 Fungsi-fungsi untuk memeriksa karakter
Fungsi
Keterangan
isalnum(karakter)
Fungsi ini memberikan nilai balik berupa true kalau karakter
berupa angka atau huruf atau false kalau tidak.
isalpha(karakter)
Fungsi ini memberikan nilai balik berupa true kalau karakter
berupa huruf atau false kalau tidak.
isdigit(karakter)
Fungsi ini memberikan nilai balik berupa true kalau karakter
berupa angka atau false kalau tidak.
islower(karakter)
Fungsi ini memberikan nilai balik berupa true kalau karakter
berupa huruf kecil atau false kalau tidak.
isupper(karakter)
Fungsi ini memberikan nilai balik berupa true kalau karakter
berupa huruf kapital atau false kalau tidak.
isspace(karakter)
Fungsi ini memberikan nilai balik berupa true kalau karakter
berupa spasi-putih (spasi, newline, carriage return, tab) atau
false kalau tidak.
isxdigit(karakter)
Fungsi ini memberikan nilai balik berupa true kalau karakter
berupa karakter heksadesimal atau false kalau tidak.
toupper(karakter)
Fungsi ini memberikan nilai balik berupa huruf kapital kalau
argumen berupa huruf kecil atau karakter yang sama dengan
argumen kalau argumen tidak berupa huruf kecil.
tolower(karakter)
Fungsi ini memberikan nilai balik berupa huruf kecil kalau argumen
berupa huruf kapital atau karakter yang sama dengan argumen
kalau argumen tidak berupa huruf kapital.
Sketch:aturled2
// ——————————————–
// Contoh untuk mengendalikan LED melalui
// perintah dari komputer
//
// Versi 2 – Solusi dengan string berakhiran NULL
// Perintah berupa string
// ON, on, On oN : LED dihidupkan
// Off, OFF, dst: LED dimatikan
// ——————————————–
const int PIN_12=12;
void setup()
{
// Atur kecepatan penerimaan dan pengiriman data Serial.begin(9600);
Pernyataan pertama digunakan untuk menciptakan array bertipe char dengan jumlah elemen 20 dan dibe nilai awal berupa string kosong. Mengingat array ini digunakan untuk menampung string berakhiran Nu array hanya mampu menampung 19 karakter. Gambar 4.24 menunjukkan keadaan array perintah setel pernyataan berikut dijalankan:
char perintah[20]=””;
Gambar 4.25 menunjukkan keadaan setelah dua pernyataan berikut dijalankan:
char tmp[2];
tmp[1)=0;
Pada contoh terakhir ini,tmp hanya berisi satu karakter, mengingat elemen kedua disi dengan O (karakter NULL).
Gambar 4.24 Array untuk string berakhiran NULL
Gambar 4.25 Array dengan dua elemen, dan mengandung satu karakter saja
Pembacaan data di port serial dilakukan selama data tersedia. Hal ini ditangani oleh:
while (Serial.available()!=0)
{
…
}
Pembacaan sebuah karakter dilakukan melalui:
char kar=Serial.read();
Dengan perintah di atas, kar akan menampung satu karakter yang dibaca dari port serial.
Pernyataan berikut digunakan untuk menaruh isi kar ke elemen pertama di array tmp:
tmp(0]-kar:
Dengan cara seperti itu, tmp berisi string yang berisi karakter yang sesuai dengan isi kar.String di inilah yang kemudian ditambahkan di akhir string perintah sekiranya berupa huruf melalui:
if (isalpha(kar))
strcat(perintah,tmp);
Pernyataan di atas menjalankan strcat() kalau isi kar berupa huruf.Sebagai contoh,jika peri berupa string kosong dan tmp berisi string “O” (karena kar berisi huruf O), strcat() akan men perintah berisi “O”,Seandainya perintah berisi string “O” dan tmp berisi string “n” (karena karbe hurufn),strcat() akan membuat perintah berisi “On”.
Pernyataan
if (strlen(perintah) == 0) return;
membuat semua pernyataan yang berada di bawah return akan diabaikan.
Pernyataan
strupr(perintah);
digunakan untuk mengonversi semua huruf kecil di perintah diubah menjadi huruf kapital.Sebagaiconm “On” akan diubah menjadi “ON”.
Pernyataan berikut digunakan untuk menghidupkan atau mematikan LED:
if (strcmp(perintah, “ON”) == 0)
{
digitalWrite(PIN_12, HIGH);
Serial.println(“LED dihidupkan”);
}
else
if (strcmp(perintah, “OFF”) ==0)
{
digitalWrite(PIN 12, LOW);
Serial.print1n(“LED dimatikan”);
Perlu diketahui,ungkapan strcmp(perintah,”ON”)==0 menghasilkan true kalau isi perintah adalah “ON”,Jika ungkapan tersebut bernilai true,LED akan dihidupkan dan informasi bahwa “LED” dihidupkan” dikirimkan ke port port serial.
Objek Berkelas String
String juga bisa diperoleh dengan membentuk objek berkelas String.Untuk membentuk objek,gun perintah semacam berikut:
string namA0bjek;
Untuk mendeklarasikan objek dan sekaligus memberikan nilai awal, bentuk berikut bisa digunakan:
String namA0bjek = ekspresi_string;
String namA0bjek(ekspresi_string);
Di objek string, konkatenasi (semacam strcat() di string berakhiran NULL) dapat dilakukan deng menggunakan operator+.Contoh:
String resistor = “R = ” + “22K”;
akan membuat resistor berisi“R=22K”.
Untuk melakukan operasi string,sejumlah fungsi anggota disediakan. Tabel 4.3 mencantumkan sejumlah fungsi anggota yang dimiliki oleh objek string.
Tabel 4.3 Fungsi-fungsi anggota untuk objek String
Fungsi Anggota
Keterangan
charAt(n)
Menghasilkan karakter distring pada posisi ke-n.
compareTo(string2)
Menghasilkan nilai balik berupa:
Nilai negatif kalau string <string2
Nol kalau string dan string2 sama
Nilai positif kalau string>string2
concat(string1,string2)
string baru.
Meggngan string1 dan string2 dan hasilnya berupa
endsWith(string2)
Keterangan
Nilai balik fungsi berupa true kalau string berakhiran
dengan string2. Untuk keadaan sebaliknya, nilai balik
berupa false.
equals(string2)
Identik dengan penggunaan operator=
equalslgnoreCase(string2)
Mirip dengan=tetapi huruf kecil dan huruf kapital tidak
dibedakan.
getBytes(penyangga,panjang)
Menyalin karakter-karakter dalam string ke dalam
penyangga. Dalam hal ini,panjang menyatakan panjang
penyangga. Nilai balik tidak ada.
indexOf(nilai)
indexOf(nilai,dari)
Digunakan untuk memperoleh indeks ditemukannya nilai
(bisa berupa sebuah karakter atau string) di dalam string.
Jika dari disebutkan, pencarian dimulai dari posisi dari.
lastlndexOf(nilai)
lastlndexOf(nilai,dari)
Serupa dengan indexOf(), tetapi pencarian dimulai dari
akhir string menuju ke awal string.
length()
Menghasilkan panjang string (jumlah karakter di string)
replace(substring1,
substring2)
Menghasilkan string baru dengan substring1 yang terda-
pat di string akan diganti dengan substring2.
setCharAt(n,kar)
Mengubah karakter pada indeks n dengan kar.
startsWith(string2)
Menghasilkan nilai true kalau string berawalan dengan
string2.
substring(dari)
substring(dari,sampai)
Menghasilkan string baru yang merupakan bagian dari
string dimulai indeks dari hingga indeks sampai. Kalau
argumen kedua tidak disebutkan, substring dimulai pada
posisi dari hingga akhir string.
toCharArray(penyangga,n)
Menyalin karakter-karakter di string ke penyangga yang
mempunyai jumlah n byte. Tidak ada nilai balik.
toLowerCase()
Setiap huruf kapital di string akan diganti dengan huruf
kecil.
toUpperCase()
Setiap huruf kecil di string akan diganti dengan huruf
kapital.
trim()
Setiap spasi-putih yang berada di awal dan di akhir string
akan dihapus.Termasuk spasi-putih adalah carriage return
dan linefeed.
Sketch:aturled3
// ——————————————–
// Contoh untuk mengendalikan LED melalui
// perintah dari komputer
//
// Versi 2 – Perintah berupa string
// ON, on, On oN : LED dihidupkan
// Off, OFF, dst: LED dimatikan
// ——————————————–
const int PIN_12=12;
void setup()
{
// Atur kecepatan penerimaan dan pengiriman data Serial.begin(9600);
// Atur PIN 12 sebagai keluaran
pinMode(PIN 12,OUTPUT);
}
void loop()
{
// Deklarasikan string
char perintah[20] = “”; // Awal kosong
char tmp[2];
tmp[1] = 0; // pengakhir string
while (Serial.available() != 0)
{
// Baca satu karakter
char kar = Serial.read();
// Susun String
perintah = perintah + kar;
delay(20); // Tunda sebentar untuk
// menyiapkan pembacaan berikutnya
}
// Kalau string kosong, perintah-perintah berikutnya // diabaikan saja
if (perintah.length()==0)
return;
// Buang karakter spasi di awal dan akhir string
// termasuk Carriage return
perintah.trim();
// Konversi huruf kecil ke kapital
perintah.toUpperCase();
// Seleksi string
if (perintah ==”ON”)
{
digitalWrite(PIN_12, HIGH);
Serial.println(“LED dihidupkan”);
}
else
if (perintah==”OFF”)
{
digitalWrite(PIN 12,LOW);
Serial.println(“LED dimatikan”);
}
}
Sketch telah dilengkapi komentar-komentar.Oleh karena itu,Anda bisa memahami setiap pernyataan melalui komentar.