Belajar Pemrograman Dasar Arduino!

Seperti yang saya bilang pada postingan sebelumnya, bahasa pemrograman Arduino mirip bahasa C yang digunakan pada AVR. Akan tetapi lebih sederhana, dan lebih mudah untuk dipelajari. Ada yang bilang juga bahwa bahasa pemrograman Arduino adalah bahasa processing.

Bagi saya bahasa pemrograman yang digunakan pada Arduino adalah bahasa pemrograman Arduino ;) hehe


Nah pada kelas ini saya ingin mengajak kamu untuk belajar Bahasa Pemrograman Dasarnya. Penting sekali, supaya saat dipembahasan selanjutnya saya kasih kamu contoh program. Kamu sudah bisa memahami dan tidak bingung, karena kamu sudah tahu dasarnya. Ok!

Baiklah kita akan mulai dari:

void setup() {
// semua kode yang disini akan dibaca sekali oleh Arduino
}

void loop() {
//semua kode yang ada disini akan dibaca berulang kali (terus menerus) oleh Arduino
}

Semua kode program yang ada dalam void setup akan dibaca sekali oleh Arduino. Biasanya isinya berupa kode perintah untuk menentukan fungsi pada sebuah pin. Contoh kodenya seperti:

pinMode(13, OUTPUT);               // menentukan pin 13 sebagai OUTPUT
pinMode(3, INPUT);                   // menentukan pin 3 sebagai INPUT

Adapun untuk komunikasi antara Arduino dengan komputer, menggunakan:

Serial.begin(9600);                      // untuk komunikasi Arduino dengan komputer

Semua kode program yang ada di void loop akan dibaca setelah void setup dan akan dibaca terus menerus oleh Arduino. Isinya berupa kode-kode perintah kepada pin INPUT dan OUTPUT pada Arduino. Contoh kodenya seperti:

digitalWrite(13, HIGH);              //untuk memberikan 5V (nyala)  kepada pin 13.
digitalWrite(13, LOW);              //untuk memberikan 0V (mati) kepada pin 13.
analogWrite(3, 225);                //untuk memberikan nilai 225 (setara dengan 5V) kepada pin 3.

Adapun untuk menampilkan nilai pada sebuah sensor di Serial Monitor, bisa menggunaka:

Serial.print(namasensor); //menampilkan nilai sensor yang disimpan di variabel nama sensor

Untuk menampilkan teks, bis menggunakan:

Serial.print("Selamat Datang"); //menampilkan teks Selamat Datang pada Serial Monitor

Dan untuk membuka Serial Monitor sendiri pada Arduino, bisa dengan memilih menu Tools kemudian pilih Serial Monitor. Atau dengan menekan kombinasi CTRL+SHIFT+M di keyboard. Atau bisa juga dengan meng-klik ikon Kaca Pembesar di Arduino, seperti gambar dibawah ini:


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

 MARI BAHAS LEBIH DETAIL LAGI!
 
CATATAN PADA PROGRAM
Kamu bisa membuat catatan pada program dan tidak akan dibaca oleh Arduino, dengan cara mengetikan // kemudian mengetikan catatannya, seperti:

void loop() {

  // catatan pada baris ini tidak akan dibaca oleh program
}

Tapi pemakaian tanda // hanya berfungsi untuk catatan satu baris saja, jika kamu ingin membuat catatan yang panjang yaitu berupa paragraf. Maka pertama kamu ketikan /* lalu ketikan catatan kamu, dan jika sudah selesai tutup dengan kode */ . Contohnya seperti:

void loop() {

  /* apapun yang kamu mau ketikan disini tidak
     akan dibaca oleh program
     sepanjang apapun kamu mengetiknya
   */


}

KURUNG KURAWAL {}
Digunakan untuk menentukan awal dan akhir dari program. Karena seperti bahasa pemrograman pada umumnya, Arduino membaca mulai dari atas hingga kebawah.

void loop()
{
....program
....program
....program
}

TITIK KOMA ;
Setiap baris kode pada Arduino harus diakhiri dengan tanda ;

void setup(){
pinMode(13, OUTPUT);
}

void loop(){
digitalWrite(13, HIGH);
}

VARIABLES
Variabel adalah kode program yang digunakan untuk menyimpan suatu nilai pada sebuah nama. Yang biasa digunakan diantaranya adalah Integer, Long, Boolean, Float, Character.

int (integer)
Variabel yang paling sering digunakan dan dapat menyimpan data sebesar 2 bytes (16 bits).

long (long)
Biasa digunakan jika nilai datanya lebih besar dari integer. Menggunakan 4 bytes (32 bits).

boolean (boolean)
Variabel yang hanya menyimpan nila TRUE dan FALSE saja. Hanya menggunakan 1 bit saja ;)

float(float)
Digunakan untuk floating point pada nilai decimal. Memory yang digunakan 4 bytes (32 bits).

char(character)
Menyimpan character berdasarkan ASCII kode (contoh: 'A'=65). Menggunakan 1 byte (8 bits).

OPERATOR MATEMATIKA
Digunakan untuk memanipulasi nilai dengan perhitungan matematika sederhana seperti: penjumlahan, pengurangan, sama dengan, dan sebagainya.

=      (sama dengan) (contoh  x=10*2 (x sekarang jadi 20))
%    (persentase) (contoh 12%10 (hasilnya yaitu 2))
+      (penambahan)
-       (pengurangan)
*       (perkalian)
/        (pembagian)

OPERATOR PERBANDINGAN
Digunakan untuk melakukan perbandingan secara logika.

== (sama dengan) contoh: 15 == 10 FALSE atau 15 == 15 TRUE
!=  (tidak sama dengan) contoh: 15 != 10 TRUE atau 15 != 15 FALSE
<   (lebih kecil dari) contoh: 15 < 10 FALSE  atau 12 < 14 TRUE
>   (lebih besar dari) contoh: 15 > 19 TRUE atau 15 > 10 FALSE

STRUKTUR PENGENDALI
Program yang digunakan untuk menentukan sebuah kondisi, dan jika kondisinya sudah terpenuhi maka akan melaksanakan perintah yang sudah ditentukan. Dan saat tidak memenuhi kondisinya juga ada perintah yang dilaksanakan oleh Arduino.


if(kondisi A)
{
  Kode Perintah A
}
else if(kondisi B)
{
  Kode Perintah B
}
else
{
  Kode Perintah C
}

Pertama Arduino akan lihat Kondisi A. Jika terpenuhi, maka akan melaksanakan Kode Perintah A.
Tapi jika TIDAK, Arduino akan lihat Kondisi B. Jika terpenuhi, maka akan melaksanakan Kode Perintah B.
Tapi jika TIDAK juga, maka Arduino akan melaksanakan Kode Perintah C.

for(int i = 0; i < #repeats; i++)
{
  Kode Perintah
}

Kode diatas digunakan saat kita ingin mengulangi kode atau nilai dalam beberapa kali. Penjelasan detailnya nanti akan dibahas ketika mencoba membuat projek, biar lebih mudah dipahami, OK. ;)

KODE DIGITAL
Digunakan untuk pemrograman yang menggunakan Pin Digital pada Arduino.

pinMode( pin, mode);

Kode diatas digunakan untuk seting mode pin. Pin adalah nomer pin yang akan digunakan, kalo kamu pake Arduino Uno, pin Digitalnya dari 0-13. dan mode sendiri bisa berupa INPUT atau OUTPUT.

Contoh:

pinMode(13, OUTPUT);    // artinya pin 13 digunakan sebagai OUTPUT
pinMode(7, INPUT);         // artinya pin 7 digunakan sebagai INPUT

Dan seperti yang sudah saya bilang untuk kode pinMode itu ada didalam void setup.

digitalRead(pin);

Kode diatas digunakan pin INPUT, untuk membaca nilai sensor yang ada pada pin. Dan nilainya hanya terbatas pada 1 (TRUE), atau 0 (FALSE).

Contoh:
digitalRead(13);     // artinya kode akan membaca nilai sensor pada pin 13

Kode digitalRead kita masukan dalam void loop.

digitalWrite(pin, nilai);

Kode diatas digunakan untuk pin OUTPUT yang sudah kita seting apakah akan diberikan HIGH (+5V), atau LOW (Ground).

Contoh:

digitalWrite(13, HIGH);    // artinya pin 13 kita diberi tegangan +5V
digitalWrite(13, LOW);    // artinya pin 13 kita diberi tegangan 0 / Ground

Dan untuk kode digitalWrite tentu saja kita masukan dalam void loop.

analogWrite(pin, nilai);

Meskipun Arduino adalah perangkat digital, tapi kita masih bisa menggunakan fungsi Analognya pada pin Digital Arduino. Tapi hanya beberap pin saja, yang biasa kita sebut PWM (Pulse With Modulation). Pada Arduino Uno memiliki 6 pin PWM, yaitu: 3,5,6,9, 10, dan 11.

Dengan begini nilai yang dihasilkan menjadi bervariasi dari 0-225, itu setara dengan 0-5V.

Contoh:

analogWrite(3, 150);    // artinya pin 3 diberikan nilai sebesar 150

Dan untuk kode analogWrite juga kita masukan dalam void loop.

KODE ANALOG 
Kode analog ini digunakan ketika ingin menggunakan pin Analog pada Arduino. Untuk Arduino Uno pin Analog dari A0-A5. Dan karena ini pin Analog maka hanya bisa kita gunakan sebagai INPUT saja. Dan juga tidak perlu menulis pinMode pada void setup.

analogRead(pin);

Kode diatas digunakan untuk membaca nilai pada sensor Analog. Yaitu antara 0-1024.

Contoh:

analogRead(A0);     // artinya kode akan membaca nilai sensor pada pin AO.

CATATAN: Kode dalam Arduino adalah Case Sensitive. Maksudnya penggunaan huruf kecil atau huruf besar sangat berpengaruh.

Masih semangat belajar? Atau kamu malah sudah antusias berlebihan :D Kalau sangat semangat, kamu bisa buka lanjutan kelas dibawah ini...
  1. Program Arduino: Menyalakan LED dan BLINK!
  2. Program Arduino: BLINK 3 LED Sekaligus!
  3. Program Arduino: Digital Read Push Button!
  4. Program Arduino: Analog Input Potensiometer!
  5. Program Arduino: Sensor Cahaya LDR!
  6. Program Arduino: Melody Dalam Speaker!
  7. Program Arduino: Sensor Suhu LM35!
Selamat Belajar dan Fun ;)

Langganan Artikel terbaru FREE via EMAIL

50 Responses to "Belajar Pemrograman Dasar Arduino!"

  1. terima kasih gan atas postingnya.sangat membantu saya yang baru belajar. semoga rezekinya di lancarkan sealalu..

    BalasHapus
    Balasan
    1. Sama-sama gan, dengan senang hati... Amien gan Amien...

      Hapus
  2. Gan, punya koding arduino ke servo gak? kalo teken 1 dia mati dan 2 dia idup? makasih gan

    BalasHapus
    Balasan
    1. Maksudnya button bukan, kalo tekan sekali servonya mati, tekan yang kedua kali servonya hidup?

      Itu bisa menggunakan counter sob, saya coba buat tutorialnya ya...

      Hapus
  3. min bisa berikan contoh program yang mengunakan 2 sensor ping!!!

    BalasHapus
    Balasan
    1. untuk basic dari sensor ping (ultrasonic) sudah ada di postingan yang ini :

      http://www.kelasrobot.com/2016/06/program-arduino-sederhana-sensor-ultrasonic-tanpa-library.html

      Nantinya tinggal di Double aja programnya, dengan menggunakan pin yang berbeda untuk sensor yang ke-2. Tapi untuk trigger pastikan menggunakan pin PWM ya...

      Hapus
  4. sekedar shering hasil belajar di atas sob ,, hehehehe

    -----------------------------------------
    // sensor ldr dan 2 button

    int button1=2; //membuat variabel button1 untuk pin 2
    int button2=3;
    int LED=13; //membuat variabel LED untuk pin 13
    int LED2=12;
    int button1A=0;
    int button2B=0;
    int LDR=A2; // membuat variabel sensorLDR untuk pin A2
    int sensorNilai=0;

    void setup(){
    pinMode(button1,INPUT);
    pinMode(button2,INPUT);
    pinMode(LED, OUTPUT);
    pinMode(LED2, OUTPUT);

    Serial.begin(9600);


    }
    void loop(){

    sensorNilai=analogRead(LDR);

    button1A=digitalRead(button1);
    button2B=digitalRead(button2);

    if(sensorNilai<500){
    digitalWrite(LED,HIGH);
    delay(50);
    digitalWrite(LED,LOW);
    delay(50);
    digitalWrite(LED2,HIGH);
    delay(50);
    digitalWrite(LED2, LOW);
    delay(50);



    }
    else if(button1A== HIGH){
    digitalWrite(LED,HIGH);
    delay(button2B);
    digitalWrite(LED2, LOW);

    }

    else if(button2B==HIGH){
    digitalWrite(LED, LOW );
    digitalWrite(LED2, HIGH);
    }



    }

    BalasHapus
    Balasan
    1. Mantap sob! Kreatif, lanjutkan ...

      Hapus
    2. kak ini programnya berfungsi unk apa?

      Hapus
  5. min ada code source robot avoider ultrasonic pake motor shield l293d buat beginer....???

    BalasHapus
    Balasan
    1. Mengenai robot, secepatnya saya buat postingannya ya...

      Hapus
  6. kalau sketch arduino uno + rfid r522 + keypad 3x4 + relay, bisa nga' gan?

    alur kerjax begini :

    Jika RFID sesuai dengan masternya, maka lanjut input password, jika password benar lanjut buka relay (solenoid).



    kalau bisa untuk penggunaaan Multi password gan>>? mohon bantuannya

    BalasHapus
    Balasan
    1. Bisa gan... Silahkan hubungi saya aja 0812 8793 1296 atau BBM 59651AEB

      Hapus
  7. Salam kenal buat admin. Saya benar2 buta masalah program arduino. Cuma saya lg mau bikin project quatcopter mengunakan arduino Uno CH340 sbb :
    A4 input SCL dr GY 521
    A5 input SDA dr GY 521
    D2 Input Aile dr reciever
    D4 input Elev dr reciever
    D5 input Thro dr reciever
    D6 input Rudd dr reciever
    D7 input mode dr receiver
    D3 out ESC Front
    D9 out ESC Back
    D10 out ESC R
    D12 out ESC L

    Nah utk programnya kira2 seperti apa ya ?

    Terima kasih banyak ......

    BalasHapus
    Balasan
    1. WOW masih buta tapi sudah rencana membuat project quadcopter ya, hehe

      mungkin saran saya pelajari dulu dasarnya aja, tapi kalo memang berminat utk membuat project yg kesulitan sperti quadcopter silahkan hubungi saya aja langsung:

      WA: 0812 8793 1296
      BBM: 59651AEB

      Hapus
    2. ok...
      tapi apa saya boleh bertanya...kalau buat program led patwal bagai mana....
      trimakasih....

      Hapus
  8. saya masih kurang mengerti dengan fungsi INPUT dan OUTPUT

    BalasHapus
    Balasan
    1. INPUT disini biasanya digunakan utk module/komponen seperti sensor yg membaca data di lingkungan sekitar...

      Kalo OUTPUT sendiri itu utk komponen yg mengeluarkan, seperti led mengeluarkan cahaya, speaker mengeluarkan suara, dan sebagainya.

      Hapus
  9. terimakasih suhu, sangat membantu saya yg baru akan mulai

    BalasHapus
  10. Min saya tidak tahu sama sekali tentang arduino , tapi saya kepingin buat mesin cnc mini dari steppernya dvd bekas , apa admin bisa kasih saran atau apa gitu , ?

    BalasHapus
    Balasan
    1. CNC mini plotter dari bekas DVD ROM ya... Bisa mempelajari Motor Driver Shield, itu untuk drivernya, plotter itu membutuhkan 2 stepper yang memanfaatin mekanik bekas dvd romnya, satu lagi pake mini servo...

      Hapus
  11. Bro, ijin kopas ya, karena saya baru belajar Arduino, penjelasan tentang basicnya mudah dipahami. Nice tutorial.

    BalasHapus
    Balasan
    1. silahkan di copas aja, hehe
      asal jangan copas ke blog aja ya,hehe

      Hapus
  12. Maaf Ganggu,, boleh nanyak program gak?
    rangkaian.a gini ,,output.a pakek 1led dan input.a pakek 1 push button,, cara kerjanya kalo button ditekan sekali maka led.a nyala, dan jika di tekan lagi maka led.a mati ,nah jika ditekan lagi maka led.a nyala lagi dan seterus.a ,, ada yang bisa bantu gak?

    BalasHapus
    Balasan
    1. one button multi fungsi ya? secepatnya saya posting yaa...

      Hapus
  13. saya ingin menggerakan servo dan motor dc kedua-duanya itu barengan terus komunikasinya makek bluetooth biar satu source code doanh.. minta tolong bisa ajari saya gimana codingan arduinonya mas?

    BalasHapus
    Balasan
    1. kendalikan servo dan motor DC, menggunakan bluetooth, sistem Android berarti ya? Nanti akan saya post untuk tutorialnya...

      Tapi jika butuh cepat2, bisa hubungi saya langsung aja via WA:081287931296 atau BBM:59651AEB

      Hapus
  14. kira kira kak, arduino bisa memakai 3 perangkat output sekaligus gak? dengan input sensor suara....

    BalasHapus
    Balasan
    1. Arduino Uno memiliki 14 pin I/O dan 6 pin Analog Input, jadi pasti bisa broo...

      Hapus
  15. Mas kalau coding sms menggunakan modem gimana ya ?
    mohon pencerahannya mas ..

    BalasHapus
    Balasan
    1. Bisa menggunakan Modul/sensor SIM800l / SIM900, untuk koding saya bahas dalam postingan aja ya... Mohon ditunggu ya, hehe

      Hapus
  16. Kak maaf mau tanya, ada software khusus ga kak untuk penulisan code-nya ?mkasih kak

    BalasHapus
    Balasan
    1. Softwarenya Arduino IDE kak, FREE Ko ;)

      Hapus
  17. min kalau pngn hitung delay pengiriman paket dari arduino A dengan arduino B gmna ya min? kalau menggunakan millis() apakah bisa? soalnya setiap arduino menyalanya tidak bersamaan.

    BalasHapus
    Balasan
    1. kalu perhitungannya ingin sama, harus ada hubungan antara Arduino A dgn Arduino B terlebih dahulu...

      Hapus
  18. Walau ga ngerti tapi saya sedang dengan arduino ini. Mau belajar dah terlalu tua... Thanks brooh! Hehehe...

    BalasHapus
    Balasan
    1. gak ada patokan umur ko broo untuk belajarmah, hehe sip sama2 brooh...

      Hapus
  19. Kang Mau tanya, bagaimana membuat program logic AND dan OR di Arduino? Misal ada kasus utk AND dulu: Jika input 1 High dan input 2 High dan input 3 High, maka Output 1 akan High.
    Untuk OR: Jika input 1 High atau input 2 High atau input 3 High, maka Output 1 akan High.
    Terimakasih sebelumnya Kang

    BalasHapus
    Balasan
    1. untuk AND tinggal pake & kalo untuk OR tinggal pake else if aja kang

      Hapus
  20. Min bisa tolong share code program kalibrasi gas sensor mq 136?biar dapet nilai ppm yang valid
    Thanks

    BalasHapus
    Balasan
    1. dipostingan selanjutnya ya gan ane post...

      Hapus
  21. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
  22. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
  23. Saya mau nanya, seandainya kita mau mengaktifkan relay atau servo, pada jam tertentu yang pastinya saya juga mengunakan RTCds1302 sebagai input pada arduino, nah cara pemanggilan programnya gimana ya bro ?

    BalasHapus
    Balasan
    1. bisa ko gan,,, lengkapnya ane posting aja yaa,

      Hapus
  24. Kk cara mrogram motor dc + sensor suara ,, yg klo ad 1 tepukan motor dc putar cw ,, klo tepuk 2 kali ccw,, itu gmn ya kk,
    Swn

    BalasHapus
  25. mantaapp.. thx . sukses buat pak bos

    BalasHapus
  26. mas minta bantuan.... saya dapat tugas membuat perancangan program naik turun panjang rantai jangkar secara otomatis dengan arduino menggunakan sensor limit switch... bagaimana programnya

    BalasHapus