Belajar Pemrograman Dasar Arduino!

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. 

Bagaimana cara bergabungnya?

Silakan buka link ini https://kelasrobot.com/grup/

You May Also Like

About the Author: Ajang Rahmat

114 Comments

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

    }

  2. 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

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

  4. 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.

  5. 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

  6. 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?

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

  8. 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

  9. 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

  10. 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 ?

  11. 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.

  12. 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..

  13. 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

  14. 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

  15. 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

  16. 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,

  17. 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)

      1. 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.

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

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

  19. 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

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

  21. 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?

Leave a Reply to Bariq Dharmawan Cancel reply

Your email address will not be published. Required fields are marked *