Top Banner

of 61

Arduino Program

Jan 05, 2016

Download

Documents

Arduino Program
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • Program Arduino

  • Arduino menggunakan pemrograman dengan bahasa C. Berikut ini adalah sedikit penjelasan yang ditujukan kepada anda yang hanya mempunyai sedikit pengalaman pemrograman dan membutuhkan penjelasan singkat mengenai karakter bahasa C dan software Arduino. Untuk penjelasan yang lebih mendalam, web Arduino.cc adalah sumber yang lengkap.

  • Program C Arduinominimal terdiri dari dua fungsi yaitu setup() dan loop(). Fungsi setup() dijalankan sekali setiap board arduino dihidupkan sedangkan fungsi loop() dijalankan terus menerus selama board arduino hidup.Semua bahasa perograman terdiri dariekspresi,statemen,blok statemenblok fungsi

  • Ekspresi adalah kombinasi operand dan operator contoh 2+3 , X > Y dst 2,3,X dan Y adalah operand sedangkan + dan > adalah operator .Statemen adalah instruksi lengkap dalam bahasa C diakhiri dgn tanda ;(titik koma) contoh : A= 2+3;Statemen dan ekspresi C arduino indentik dengan ANSI-C ,Struktur Program C Arduino minimal terdiri dari dua fungsi yaitu setup() dan loop().

  • //setup digunakan untuk inisialisasi variable, mode pin dll void setup(){ statement } void loop() { statement .... } //fungsi fungsi lainya jika ada fungsi_lainnya() { statement }

  • Contoh

    123456789101112void setup(){pinMode(8, OUTPUT); // pin 8 sbg output}void loop(){digitalWrite(8, HIGH); // LED ondelay(250);digitalWrite(8, LOW); // LED offdelay(1000);}

  • Struktur

    Setiap program Arduino (biasa disebut sketch) mempunyai dua buah fungsi yang harus ada.void setup( ) { } Semua kode didalam kurung kurawal akan dijalankan hanya satu kali ketika program Arduino dijalankan untuk pertama kalinya.void loop( ) { } Fungsi ini akan dijalankan setelah setup (fungsi void setup) selesai. Setelah dijalankan satu kali fungsi ini akan dijalankan lagi, dan lagi secara terus menerus sampai catu daya (power) dilepaskan.

  • Syntax

    Berikut ini adalah elemen bahasa C yang dibutuhkan untuk format penulisan.//(komentar satu baris) Kadang diperlukan untuk memberi catatan pada diri sendiri apa arti dari kode-kode yang dituliskan. Cukup menuliskan dua buah garis miring dan apapun yang kita ketikkan dibelakangnya akan diabaikan oleh program./* */(komentar banyak baris) Jika anda punya banyak catatan, maka hal itu dapat dituliskan pada beberapa baris sebagai komentar. Semua hal yang terletak di antara dua simbol tersebut akan diabaikan oleh program.{ }(kurung kurawal) Digunakan untuk mendefinisikan kapan blok program mulai dan berakhir (digunakan juga pada fungsi dan pengulangan).;(titik koma) Setiap baris kode harus diakhiri dengan tanda titik koma (jika ada titik koma yang hilang maka program tidak akan bisa dijalankan).

  • Sebuah program secara garis besar dapat didefinisikan sebagai instruksi untuk memindahkan angka dengan cara yang cerdas. Variabel inilah yang digunakan untuk memindahkannya.

    int (integer) Digunakan untuk menyimpan angka dalam 2 byte memori. Tidak mempunyai angka desimal dan menyimpan nilai dari -32.768 dan 32.767. (Unsigned int juga menghabiskan dua byte memori tetapi menyimpan angka dari 0 sampai 65.535)

    Variabel

  • boolean (boolean)

    Variabel sederhana yang digunakan untuk menyimpan nilai TRUE (benar) atau FALSE (salah). Sangat berguna karena hanya menggunakan 1 bit dari RAM (mengambil satu byte memori dan dapat bernilai benar atau salah)

  • float (float) Digunakan untuk angka desimal (floating point). Memakai 4 byte memori (32 bit) dari RAM dan mempunyai rentang dari -3.4028235E+38 dan 3.4028235E+38 (Tipe data float dan double adalah tipe data yang sama, dapat menggunakan jenis tipe data ini untuk menyimpan angka floating-point. Tipe data void hanya untuk deklarasi fungsi. Ini menunjukkan bahwa fungsi tersebut tidak mengembalikan nilai)

  • char (character) Menyimpan 1 karakter menggunakan kode ASCII (misalnya A = 65). Hanya memakai 1 byte (8 bit) dari RAM (mengambil satu byte nomor memori dan menyimpan dari -128 sampai 127. Angka-angka ini biasanya mewakili karakter yang dikodekan dalam ASCII)long (long) Digunakan ketika integer tidak mencukupi lagi. Memakai 4 byte (32 bit) dari memori (RAM) dan mempunyai rentang dari -2,147,483,648 dan 2,147,483,647. (Unsigned long juga perlu empat byte tetapi menyimpan rentang nilai dari 0 sampai 4,294,967,295)

  • Array menyimpan nilai yang memiliki tipe data yang sama: int values[2]; // Array dengan dua elemen int values[0] = 42; // Elemen pertama Array int values[1] = -42; // Elemen kedua Array int more_values[] = { 42, -42 }; int first = more_values[0]; // first == 42 Dari contoh di atas, nilai-nilai array dan more_values mengandung elemen yang sama. Ada dua cara yang berbeda untuk menginisialisasi array. Perhatikan bahwa indeks array dimulai dari 0, dan perlu diingat pula bahwa elemen array yang telah terinisialisasi mengandung nilai random.

  • Sebuah string adalah sebuah array nilai char. Arduino IDE mendukung penciptaan string dengan beberapa sintaksis gula-semua ini deklarasi membuat string dengan isi yang sama.

  • VARIABLE DAN KONSTANTA Variabel adalah memori penyimpanan data yang nilainya dapat diubah-ubah. variable disimpan di RAM Konstanta adalah memori penyimpanan data yang nilainya tidak dapat diubah setelah program di compile. Konstanta disimpan di memory program.

    VARIABLE SCOPE Variable dan konstanta global dapat diakses di seluruh bagian program. Variable dan konstanta lokal hanya dapat diakses didalam fungsi tempat dideklarasikannya.

  • Operator Matematika

    Operator yang digunakan untuk memanipulasi angka (bekerja seperti matematika yang sederhana).= Membuat sesuatu menjadi sama dengan nilai yang lain (misalnya: x = 10 * 2, x sekarang sama dengan 20).% Menghasilkan sisa dari hasil pembagian suatu angka dengan angka yang lain (misalnya: 12 % 10, ini akan menghasilkan angka 2).+ Penjumlahan- Pengurangan* Perkalian/ Pembagian

  • Operator Pembanding

    Digunakan untuk membandingkan nilai logika.== Sama dengan (misalnya: 12 == 10 adalah FALSE (salah) atau 12 == 12 adalah TRUE (benar))!= Tidak sama dengan (misalnya: 12 != 10 adalah TRUE (benar) atau 12 != 12 adalah FALSE (salah))< Lebih kecil dari (misalnya: 12 < 10 adalah FALSE (salah) atau 12 < 12 adalah FALSE (salah) atau 12 < 14 adalah TRUE (benar))> Lebih besar dari (misalnya: 12 > 10 adalah TRUE (benar) atau 12 > 12 adalah FALSE (salah) atau 12 > 14 adalah FALSE (salah))

  • Struktur Pengaturan

    Program sangat tergantung pada pengaturan apa yang akan dijalankan berikutnya, berikut ini adalah elemen dasar pengaturan (banyak lagi yang lain dan bisa dicari di internet).1. if..else, dengan format seperti berikut ini:if (kondisi) { }else if (kondisi) { }else { }Dengan struktur seperti diatas program akan menjalankan kode yang ada di dalam kurung kurawal jika kondisinya TRUE, dan jika tidak (FALSE) maka akan diperiksa apakah kondisi pada else if dan jika kondisinya FALSE maka kode pada else yang akan dijalankan.

  • 2. for, dengan format seperti berikut ini:for (int i = 0; i < #pengulangan; i++) { }Digunakan bila anda ingin melakukan pengulangan kode di dalam kurung kurawal beberapa kali, ganti #pengulangan dengan jumlah pengulangan yang diinginkan. Melakukan penghitungan ke atas dengan i++ atau ke bawah dengan i.

  • Digital

    1. pinMode(pin, mode)Digunakan untuk menetapkan mode dari suatu pin, pin adalah nomor pin yang akan digunakan dari 0-19 (pin analog 0-5 adalah 14-19). Mode yang bisa digunakan adalah INPUT atau OUTPUT.2. digitalWrite(pin, value)Ketika sebuah pin ditetapkan sebagai OUTPUT, pin tersebut dapat dijadikan HIGH (ditarik menjadi 5 volts) atau LOW (diturunkan menjadi ground).3. digitalRead(pin)Ketika sebuah pin ditetapkan sebagai INPUT maka anda dapat menggunakan kode ini untuk mendapatkan nilai pin tersebut apakah HIGH (ditarik menjadi 5 volts) atauLOW (diturunkan menjadi ground).

  • Analog

    Arduino adalah mesin digital tetapi mempunyai kemampuan untuk beroperasi di dalam alam analog (menggunakan trik). Berikut ini cara untuk menghadapi hal yang bukan digital.1. analogWrite(pin, value)Beberapa pin pada Arduino mendukung PWM (pulse width modulation) yaitu pin 3, 5, 6, 9, 10, 11. Ini dapat merubah pin hidup (on)atau mati (off) dengan sangat cepat sehingga membuatnya dapat berfungsi layaknya keluaran analog. Value (nilai) pada format kode tersebut adalah angka antara 0 ( 0% duty cycle ~ 0V) dan 255 (100% duty cycle ~ 5V).2. analogRead(pin)Ketika pin analog ditetapkan sebagai INPUT anda dapat membaca keluaran voltase-nya. Keluarannya berupa angka antara 0 (untuk 0 volts) dan 1024 (untuk 5 volts).

  • Type Data

  • Tipe data dari variabel penting karena untuk menentukan berapa banyak byte memori yg disediakan untuk variabel itu, dan jenis data yang dapat disimpan dalam variabel. CONTROL STATEMENT

    While Loopwhile (expression) //selama expresi bernilai true laksanakan perulangan blok statemen dibawahnya. { statement1; statement2; .. }

  • atau jika satement hanya 1 baris statement tdk perlu diberi kurung { }while(expression) statement;Do/While Loopdo //jalankan statement dibawah ( minimal 1 kali perulangan dilaksanakan) , { statement1; statement2; } while (expression); // jika ekspresi true , jalankan kembali perulangan.atau jika satement hanya 1 barisdo statement; while (expression);For Loopfor (expr1; expr2; expr3) //laksanakan perulangan sebanyak expr2 dimulai dari expr1. { statement1; statement2; }

  • atau jika satement hanya 1 barisfor(expr1; expr2; expr3) statement;If/Elseif (expression) //jika ekspresi bernilai true laksanakan blok statemen dibawahnya { statement1; statement2; }atau jika satement hanya 1 barisif(expression) statement;

  • SWITCH/CASEswitch (expression) { case const1: // jika expression = const1 eksekusi staement2 dibawahnya statement1; statement2;case const2: // jika expression = const2 eksekusi statemenibawahnya statement3; statement4; case constX:// jika espression=constX eksekusi statemen dibawahnya statement5; statement6;default: statement7; // jika ekspression tdk sama dgn const1,cons2, dan constX statement8; }

  • BREAK, CONTINUEbreak, continue statements digunakan untuk merubah alur eksekusi untuk statement pengulangan for, while, do/while, and switch .Break break statement digunakan untuk keluar dari pengulangan for, while, do/while, atau switch . break keluar dari blok pengulangan dimana dia berada saja.Continue continue akan menyebabkan program memulai iterasi berikutnya dari statemen pengulangan while, do/while, atau for loop. continue sama seperti break pengulangan akan berhenti pada point yg dituju (di skip), bedanya continue akan memulai loop lagi, dari atas, sedangkan break memaksa keluar dari loop / pengulangan .

  • Setup() {}loop() { int i; for(i; i
  • OPERATOR DAN EXPRESSI

    Operator Penugasan ( = ) Setelah variabel telah dideklarasikan, operasi dapat dilakukan pada variable menggunakan operator penugasan (=). Sebuah nilai yang diberikan untuk variabel dapat berupa sebuah konstanta, variabel, atau ekspresi. Sebuah ekspresi dalam bahasa C adalah kombinasi dari operan (pengidentifikasi) dan operator. operaor penugasan antara lain sebagai berikut:Variable = nilai , contoh nilai_max = 10;Operator Arithmetic : Perkalian * Pembagian / Modulo % Penjumlahan + Pengurangan atau Negasi

  • Operator Logika AND && OR ||

    Operator relasional sama dengan == tdk sama dengan != lebih kecil < lebih kecil atau sama dengan lebih besar atau sama dengan >=

    increment ++variable atau variable++ artinya variable=variable+1 ,misal ++X atau X++ artinya X = X+1perbedaaanya adalah untuk ++X , tambahkan dulu nilai X dgn 1 baru di proses baris kode tsb, sedangkan X++ , proses dulu baris code baru tambahkan nilai X dgn 1

    deccrement variable atau variable artinya variable=variable-1 ,

  • misal Y atau Y artinya Y = X-1perbedaaanya adalah untuk Y , kurangi dulu nilai Y dgn 1 baru di proses baris kode tsb, sedangkan Y , proses dulu baris code tsb baru kurangi nilai Y dgn 1

    Compound compound digunakan hanya untuk menyingkat baris expresi saja contoh nya sbba += 3; artinya a = a + 3 b -= 3; artinya b = b 3 c *= 3; artinya c = c * 3 d /= a; artinya d = d / a a |= 3; artinya a = a OR 3 b &= 3; artinya b = b AND 3 c ^= 3; artinya c = c ^ 3 PORTD &= 3; artinya PORTD = PORTD & 3

    kondisonal Expressi if(expression_A) expression_B; else expression_C;

  • baris kode diatas bisa digantikan oleh kondisional expressi:expression_A ? expression_B : expression_C;contoh : (A > 10) ? x = 5 : x =22; kondisional expresi diatas artinya sama dengan : IF(A>10) { x=5; } Else { x= 22 }

  • FUNGSIyang dimaksud fungsi adalah sebuah blok statement yg melaksanakan tugas tertentu dan bisa dipakai lebih dari 1 kali di dlm program. program bahasa C terdiri dari fungsi fungsi dan sebuah program c minimal terdiri dari 1 fungsi . fungsi setup() dijalankan pertama kali saat program dijalankan. fungsi terdiri dari dua bagian utama yaitu kepala fungsi dan blok fungsi berikut ini bentuk umum sebuah fungsi adalah :

    type name_fungsi (type paramameter) {statement}kepala fungsi terdiri dari type return value, nama fungsi , types dan nama parameter(jika ada) . Statement di block fungsi menyatakan apa yg fungsi harus lakukan. jika return value atau parameter tdk ada maka typennya ditulis void seperti dibawah ini void namefungsi (void) {statement}

  • Digital Input

    void pinMode (int pin, int mode) memerintahkan Arduino apakah pin akan diset sbg digital input atau output. Mode dapat berupa Input atau OUTPUT.

    int digitalRead (int pin) Membaca nilai dari pin digital. Nilai yg didapat dapat berupa 1 atau 0.

    void digitalWrite (int pin, int value) Menulis nilai ke pin digital. Nilai yg ditulis dapat berupa 1 atau 0.

  • Analog Input

    int analogRead (int pin) Membaca nilai dari pin analog. Nilai yg didapat adalah antara 0 dan 1023.

    void analogWrite (int pin, int value) Menulis nilai analog ke pin. nilai yg ditulis antara 0 dan 255.

  • Pengetahuan Dasar Komunikasi serial padaArduino

    Untuk mengirim data dari arduino ke PC dan menerima data dari PC kita bisa menggunakan berbagai cara salah satunya yg paling sederhana adalah komunikasi Serial yg terdapat pada setiap board Arduino.

    Perlu kita ketahuai pemrograman sketch arduino menggunakan gaya bahasa C tapi pada pembuatan librarynya menggunakan C++ yg menerapkan pemrograman Objek (Class).

  • Pemrograman code arduino (sketch) untuk komunikasi serial menjadi mudah karena fungsi fungsi sudah tersedia dlm class yg tersedia untuk komunikasi Serial . Instance dari class untuk komunikasi serial (objek) sudah dibuatkan namanya Serial .Untuk arduino yg mempunyai lebih dari 1 port serial misal arduino mega256 nama objek untuk komunikasi serialnya adalah Serial1, Serial2, Serial3.

    Penulisan objek dan fungsi pada library arduino adalah : namaobjek.namafungsicontoh : Serial.read() , artinya kita memanggil fungsi read() dari objek bernama Serial .

    Data yg dikirim ke serial port akan dikirim ke buffer pengirim (Tx buffer) begitupun data yg diterima adalah data yg diambil dari buffer penerima (RX buffer).

  • Data yang dikirm dan diterima arduino dalam bentuk ASCII. Misalnya program arduino mengirim huruf A maka akan dikirim sebenarnyaadalah 1 byte code ascii yaitu 65 . Jika kita mengirim angka 123 maka sebetulnya yg dikirm adalah 3 byte data ascii yaitu 49, 48, dan 50 . Selengkapnya anda bisa lihat tabel ASCII berikut :

  • Karena data yg diterima arduino juga dlm bentuk ASCII (char) maka kita tdk bisa langsung melakukan operasi matematika dari data ASCIIpada program sketch arduino.

    Data ASCII dari buffer serial harus dirubah dulu ke bentuk numerik/bilangan (int). misalkan kita menerima data 4 dan 3 makajika kita langsung jumlahkan 3 + 4 = 103 , karena sebenarnya kita menjumlahkan code ascii 3 = 51 dancode ascii 4 =52 (lihat tabel ASCII).

  • Untuk merubah data ascii ke data numerik dengan cara yg cukup sederhana yaitu : -untuk mendapatkan angka 0 dari ascii 0 dgn cara 0- 48=0 (atau bisa juga ditulis 0-0=0) -untuk mendapatkan angka 1 dari ascii 1 dgn cara 1- 48=1 (atau bisa juga ditulis 1-0=1) -dan seterusnya.jadi kalau mau menjumlahkan data ascii 3 dan 4 yg kita terima dari RX Bufer maka code program seharusnya adalah :int hasil = (3 0) + (4 0) atauint hasil = (3- 48) + (4-48) maka hasil berupa bilangan integer 7.

  • Fungsi fungsi yg tersedia untuk komunikasi serial Arduinoif (Serial): Untuk mengecek apakah Port sudah siapSerial.available() : Untuk mengecek apakah data sudah ada di buffer penerimaSerial.begin() : untuk mengeset kecepatan transmisi dataserial.end() : Untuk menon-aktifkan pin rx dan tx sbg fungsi serial dan kembali sbg pin I/OSerial.find() : mencari string dlm buffer dataSerial.findUntil(): mencari buffer data sampai data dgn panjang/terminator nya yg diberikan ditemukanSerial.flush(): menunggu data terkirim semuaSerial.parseFloat(): mengambil data float pertama dari data di buffer serial.serial.parseInt():mengambil data integer pertama dari data di buffer serial.Serial.peek(): mengambil data berikutnya di bufer penerimaSerial.print() : mengirim data ASCIISerial.println() : mengirimdata ASCII + CR,LF (kode enter)Serial.read(): membaca data yg diterimaSerial.readBytes(): membaca data byte yg diterimaSerial.readBytesUntil()Serial.setTimeout(): mengeset batas maksimum waktu tunggu(timeout) transmisi data.Serial.write() : mengirim data byte (numerik)Serial.serialEvent(): fungsi ini akan dipanggil jika data datang/diterima.berlaku spt interupsi serial.

  • Sebelum kita memulai latihan pemrograman serial arduino kita perlu tahu ttg menu serial Monitor yg tersedia spt tampak pada gambar dibawah ini:

  • Gambar 1. Menu Serial MonitorSerial Monitor digunakan untuk mentransfer data dari PC ke Arduino board dan menerima data dari arduino board.Selain dengan tool serial monitor yg terdapat pada IDE arduino anda juga bisa menggunakan tool serial lainya seperti hyperterminal, putty dll untuk mengirim dan menerima data pada PC Anda.

  • Langkah membuat program sketch komunikasi serial1. set baud rate misal 9600 dgn fungsi serial.begin(9600) dlm fungsi void setup(). Speed yg tersedia antara lain 300, 1200, 2400, 4800, 9600, 14400, 19200, 28800,38400, 57600, 115200 (liat dokumentasi tiap jenis arduino).2. untuk menerima data cek apakah ada data di Rx Buffer dgn fungsi serial.avalable() jika data tersedia return value = true jika data kosong return value = false.if( serial.available() > 0)3. mengambil data dari buffer penerima : serial.read() , return valuenya adalah 1 byte data pertama yg ada di RX Buffer .misal byte pertama RX buffer berisi char 2maka char data = serial.read(); //data = 2 > karakterbyte data = serial.read(); // data = 50 > numerik

  • 4. Untuk mengirim data bisa menggunakanserial.print(dataygdikirim) : mengirim data asciiserial.println(dataygdikirim) , ditambahkan kode enter (CR dan LF)serial.write(dataygdikirim) : mengirim data byteContoh serial.print(A) akan mengirim huruf Aserial.print(65) akan mengirim 2 byte berisi code Ascii 6 dan 5 (aktual yg dikirim 54 dan 53)serial.write(65) akan mengirim 1 byte 65 (aktual yg dikirim numerik 65)serial.write(data) adalah pengganti syntaxSerial.print(data, BYTE) versi sebelumnya. Parameter data pada serial.write adalah angka 1 byte ( 0-255)

  • contoh program sketch sederhana menerima data kemudian data dikirim kembali

    12345678910111213141516void setup(){Serial.begin(9600);}void loop(){if ( Serial.available()){char datachar = Serial.read();}delay(1000)serial.print(datachar)// data yg diterima dikirim kembali.}

  • Contoh-Mengirim data string/text apa kabar -Mengirim data bilangan/angka : 123

  • 123456789101112131415161718int angkaint = 123;float angkafloat 123.5;char datachar = 123;void setup(){Serial.begin(9600); // set baudrate = 9600}void loop(){Serial.print("apa kabar"); // kirim string/textSerial.println(angkaint); // kirim angka type integer 123Serial.println(angkafloat); // kirim angka type float 123.5Serial.println(datachar); // kirim code ascii 123 yaitu tanda kurung buka {Serial.println(angkaint,HEX); // kirim angka dlm bentuk heksa , akan dikirim 7BHSerial.println(angkaint,BIN); // kirim angka dlm bentuk biner , 0111 1011}

  • -Menerima data bilangan ASCII misal data yg datang misal 435* Cara Pertama karakter ditampung di array dan dirubah menjadi string dgn menambahkan null 0 diakhir array( karena string adalah sebuah array type char yg diakhiri dgn null). kemudian array tsb /data string di konversi ke int dgn fungsi atoi.

  • 123456789101112131415161718192021char arraychar[4];int i=1;void setup(){Serial.begin(9600);}void loop(){if ( Serial.available()){char datachar = Serial.read();if(i>4 && isdigit(datachar)) //jika datachar adalah ASCII 0-9{ arraychar[i++]=datachar; }else arraychar[i]=0; // akhir dari sebauh string adalah null (0) int angka = atoi(arraychar);}}

  • Cara ke 2 : Loopnumerik = numerik * 10 + datachar;

    karena datachar adalah kode ascii maka kita rubah ke int dgn cara datachar-48 atau sama juga dgn datachar-'0'

    jadi rumusnya numerik = numerik * 10 + (datachar-'0');

  • Contoh Proses loop saat penerimaan data 435 , spt tabel dibawah , jika data berupa /n maka loop selesai:

  • 12345678910111213141516171819202122void setup(){Serial.begin(9600);}void loop(){int numerik = 0;if (Serial.available()){ char datachar = Serial.read(); while (datachar != '\n'){if(isdigit(datachar)){numerik = numerik * 10 + (datachar - '0');}datachar = Serial.read();} int angkaditerima = numerik;}

  • -Mengirim data berurutan A,123,B,456

    12345678910111213141516int bil1 = 123;int bil2 = 456;void setup(){Serial.begin(9600); // set baudrate = 9600}void loop(){Serial.print("A");Serial.print(",");Serial.print(123,DEC);Serial.print(",");Serial.println(345,DEC);delay(1000); //delay looping 1 detik}

  • Menerima data berurutan : 123,456,789 /nPada contoh ini kita akan menggunakan serial.parseint() untuk mengambil data berurutan yg dibatasi koma dan diakhiri /n

    12345678910111213141516171819202122void setup(){Serial.begin(9600);}void loop(){while (Serial.available() > 0){int data1 = Serial.parseInt(); // ambil data ke-1int data2 = Serial.parseInt(); // ambil data ke-2:int data3 = Serial.parseInt(); // ambil data ke-3: if (Serial.read() == '\n'){int jumlah = data1 +data2 + data3;}}}

  • Menambahkan port serial pada pin I/OJika arduino yg kita miliki hanya punya 1 port serial kita bisa merubah pin I/O yg manapun menjadi Port serial tambahan .dengan bantuan class SoftwareSerial. Tambahkan file header SoftwareSerial.h pada sketch anda dan buat 1 buah objek SoftwareSerial untuk penambahan 1 port, pada contoh dibawah ini kita buat 1 objek sofwareSerial dgn nama serialkedua.

  • 123456789101112131415161718192021#include SoftwareSerial Serialkedua(10, 11); // pin 10 untuk RX, pin 11 untuk TX void setup(){Serial.begin(96600);Serialkedua.begin(9600);}void loop(){if (Serial.available())serial.println("test dari port1");if (Serialkedua.available())Serialkedua.println("test dari port2");}

  • menggunakan 3 buah port : Serial, port1 dan port2

    123456789101112131415161718192021222324252627282930#include SoftwareSerial port1(10,11); // software serial port1: TX = pin 10, RX = pin 11SoftwareSerial port2(8,9); // software serial port2: TX = pin 8, RX = pin 9void setup(){Serial.begin(9600);port1.begin(9600);port2.begin(9600);}void loop(){port1.listen();while (port1.available() > 0){char inByte = port1.read(); //baca port1 dan kirim ke serialSerial.write(inByte);}port2.listen();while (port2.available() > 0){char inByte = port2.read(); //baca data port2 dan kirimke serialSerial.write(inByte);}}