Belajar Pemrograman Dasar Arduino!

By | Maret 25, 2019

Yang yang baru pertama kali belajar arduino silahkan masuk dulu ke KELAS 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.

dibawah ini video demo, bagi yang baru belajar dan bingung mau belajar bikin apa dulu:


Masih semangat belajar? Atau kamu malah sudah antusias berlebihan 😀 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 😉

Yang mau diskusi lebih lanjut di Grup WhatsApp Kelas Robot. Silahkan buka

Bagaimana cara bergabungnya?

  1. Mengisi formulir anggota KLIK DISINI  *wajib
  2. Masuk OTOMATIS dengan KLIK LINK dibawah ini:

JOIN KELAS ROBOT GRUP

114 thoughts on “Belajar Pemrograman Dasar Arduino!

  1. eko

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

    Reply
  2. Doni pramana

    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);
    }

    }

    Reply
  3. Ajang Rahmat

    Maksudnya button bukan, kalo tekan sekali servonya mati, tekan yang kedua kali servonya hidup?

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

    Reply
  4. Izan Ict

    kalau sketch arduino uno + rfid r522 + keypad 3×4 + 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

    Reply
  5. Budiman Tanudjaja

    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 ……

    Reply
  6. Ajang Rahmat

    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.

    Reply
  7. Ajang Rahmat

    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

    Reply
  8. afif udin

    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 , ?

    Reply
  9. Agung Ami

    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?

    Reply
  10. Ajang Rahmat

    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…

    Reply
  11. Ida Bagus Ketut Adiyoga

    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?

    Reply
  12. Ajang Rahmat

    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

    Reply
  13. Suhari hadi Susilo

    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.

    Reply
  14. its.my.zux

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

    Reply
  15. Ajang Rahmat

    Bisa menggunakan Modul/sensor SIM800l / SIM900, untuk koding saya bahas dalam postingan aja ya… Mohon ditunggu ya, hehe

    Reply
  16. ardua

    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

    Reply
  17. PARGAL Pargsl

    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 ?

    Reply
  18. Unknown

    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

    Reply
  19. gunawanagung237.blogspot.com

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

    Reply
  20. Adhiwiratama Nararya

    Gan kalo komunikasi serial lewat RS232 kemudian pake TTL Converter, untuk menampilkan hasil melalui LCD 16X2 kebetulan ini RFID dengan Rs232 setelah saya coba buat kodingnya id tag yang muncul itu nilainya selalu bergeser ke kanan tampilannya setiap pembacaan tag, saya coba ubah beberapa listing hasil tetap sama. Mohon bantuannya agar id tag yang muncul di LCD tidak bergeser dan hanya berubah setiap tag berbeda terbaca.

    Reply
  21. Unknown

    banyak manfaatnya gan.. tmks.. sy pemula,, dan ingin belajar lbh ttng arduino..,
    ad coding utk pengaturan modul relay kah ? inginya utk kontrol listrik drmh pke sms..

    Reply
  22. suroto izur

    Min bagaimana membuat kontrol listrik 8 relay dengan berbasis bluethoot hc-06 dan bagaimana cara koneksinya ke androidnya?

    Reply
  23. Alfi Anto

    Mas untuk pemograman membaca kecepatan laju air menggunakan water flow sensor di tampilkan di LCD dan parameter kecepatan air nya di
    simpan SD card, tolong sering2 mas,#basic arus kuat mas

    Reply
  24. Alfi Anto

    Mas untuk pemograman membaca kecepatan laju air menggunakan water flow sensor di tampilkan di LCD dan parameter kecepatan air nya di
    simpan SD card, tolong sering2 mas,#basic arus kuat mas

    Reply
  25. eno slankers

    maf min sya mau bikin pakan ikan otomatis cuman sya blm paham tentang kode score nya untuk koneksi dr arduino uno ke keyped trus menampilkan ke luaran LCD

    Reply
  26. Unknown

    gan mau nanya nih. fungsi dari " dump_byte_array(key.keyByte, MFRC522::MF_KEY_SIZE); " maksudnya apa ya gan.? tolong ya infonya gan thanks.

    Reply
  27. Unknown

    Gan saya msih blum ngerti,, saya udah coba tpi tidak menyala semuanya LED nya,, knpa gan?? Terima kasih gan

    Reply
  28. andi purnama giri

    Mantap gan mudah dimengerti pembahasanany,,, makasih banyak yaa,,, pokonya aku tongkrongin terus dah

    Reply
  29. ibnu

    bang minta masukin grup diskusinya..
    no hp 085727444123
    terima kasih

    Reply
  30. Alwi RizkyBS

    Gan grup whatsappnya penuh, apakah ada grup whatsapp lain? Kalo boleh tolong masukan no saya 083821327504

    Reply
  31. Wafiq Amali

    gan mau tanya untuk sensor tertentu bisa di pakek complement filter apa kagak,,? saya pakek sensor DHT 11 bang,, seklian masukin group WA bang,, 081213656149

    Reply
  32. Call Vin

    Admin bisa gak kalau void Setup(){
    Dimasukin fungsi if-else?
    Terimakasih

    Reply
  33. Oxllynx 1412

    Tolong masukan saya ke grup gan
    081991364572

    Reply
  34. Jaswan Anggara

    saya lgi buat steeper motor di kontrol dengan bluetoth hp sekrng sudah bs jalan, dan saya ingin pasang limit swith di kanan dan kiri, program nya atau pin yg di pake di arduino pin berapa ya,

    Reply
  35. Lukman Nurfazri

    Mas butuh solusi nih, kalau menjalankan salah satu pin hanya satu kali,
    kodenya gmna ya? cth utuk pin 3 PWM.
    Sedangkan pin 2 4 5 terus menyala (HIGH)

    Reply
      1. Lukman Nurfazri

        Jadi mksud sya gini mas,
        Misalkan pada pin 2 LED “HIGH”
        pin 3 LED nyala bila Tombol ditekan dan mati bila tombol di lepas.
        Pin 4 LED “HIGH”
        Pin 5 LED “HIGH”

        Program Sketchnya gmna ya mas?

        Sketch yg sdh di bikin
        Pin 2 LED “HIGH”
        Pin 3 LED “HIGH”
        Pin 4 LED “HIGH”
        Pin 5 LED “HIGH”

        Mohon pencerahannya mas
        Terimakasih sebelum dan sesudahnya.

        Reply
        1. khajis mumin

          void setup() {
          pinMode(3, OUTPUT) ;
          pinMode(6,INPUT);
          digitalWrite(3,LOW);
          }
          void loop() {
          if(digitalRead(6) == 1){
          digitalWrite(3,HIGH);
          }
          else {digitalWrite(3,LOW);}
          }

          Reply
  36. Tohiron Azwar Saputra

    halo agan2 saya numpang tanya, saya pengen bikin program yg prinsipnya pake gerbang logika. misal digital in pin 12 dan 13, digital out pin 8. if pin 12 dan 13 high do 8 high. itu gmn ya codingnya trims….

    Reply
  37. Asep

    sya mau nanya mas…
    bagai mana cara membuat robotik wall folower dari mega 2560…….??

    Reply
  38. sunaniskandar36@gmail.com

    Gan kalo sensor yang bisa men Grim dan menerima data (untuk memantau sensor2 lain yang sudah dipasang) agar bisa tau atau bisa di kontrol dari jauh, pakai sensor apa ya

    Reply
  39. tinuzz xxx

    Mas jika pake lcd tft, misalnya di lcd saya ketik 16, lalu di thermocouple baca 16°c biar perintah led mati gimana contoh programnya?

    Reply
  40. Tanaya Paradipta

    mas saya kesulitan dalam memprogram
    saya punya sensor ultrasonik 1, ultrasonik 2, servo, dan shaft
    ultrasonik 1 saya taruh di kanan sedangkan ultrasonik 2 saya taruh di kiri
    apabila ultrasonik 1 mendeteksi jarak kurang dari 10cm maka servo bekerja menggerakkan shaft ke arah kiri
    apabila ultrasonik 2 mendeteksi jarak kurang dari 10cm maka servo bekerja menggerakkan shaft ke arah kanan
    tolong bantu mas gimana programnya?

    Reply

Tinggalkan Balasan ke MHMMDGVRN _ Batalkan balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

This site uses Akismet to reduce spam. Learn how your comment data is processed.