Skip to main content

Dasar Pemrograman Arduino - Mr. Ido

Hai guys!!!
Kali ini Latihan Arduino bakal ngebahas tentang dasar pemrograman Arduino. Seperti pada postingan yang lalu (Apa Itu Arduino?) sudah sedikit dijelaskan sedikit tentang Arduino. Karena Arduino merupakan suatu platform mikrokontroller, maka harus diprogram untuk bisa diaplikasikan. Dalam pemrogramannya, terdapat fungsi-fungsi untuk menjalankan suatu program tersebut.

Nah sebelum masuk ke fungsi-fungsi tersebut, harus tau terlebih dahulu struktur dasar dari pemrograman Arduino. Struktur dasarnya bisa dikatakan sangat sederhana, karena hanya terdiri dari dua instruksi, yaitu setup() dan loop(). 
void setup(){

}

void loop(){

}
setup() digunakan untuk persiapan sebelum melakukan eksekusi program atau biasa digunakan untuk inisialisi variabel-variabel yang akan digunakan, dan hanya berjalan satu kali saja, sedangkan loop() digunakan untuk program utama yang akan dijalankan, dan berjalan secara terus-menerus (looping) hingga Arduino mati atau reset. Nah struktur tersebut bisa diilustrasikan seperti gambar berikut.


Di dalam setup() dan loop()  inilah fungsi-fungsi akan dituliskan. Nah beberapa fungsi yang umumnya digunakan adalah sebagai berikut.

pinMode()

pinMode() digunakan untuk menginisialisasi pin sebagai input atau output. Fungsi ini digunakan pada setup(). Syntax untuk fungsi ini adalah sebagai berikut
pinMode(pin, mode); 
  • pin merupakan nomor dari pin yang digunakan pada Arduino
  • mode merupakan mode yang digunakan, yaitu INPUT atau OUTPUT.
Contoh:
void setup(){
pinMode(13, OUTPUT);   //pin D13 diinisialisasikan sebagai output
}

digitalWrite()

digitalWrite() digunakan untuk memberikan output berupa nilai digital HIGH (digital 1) atau LOW (digital 0) pada pin yang digunakan. Jika output yang diberikan berupa HIGH, maka besar nilai outputnya adalah 5V atau 3.3V untuk board 3.3V, sedangkan jika berupa LOW, maka besar nilai outputnya adalah 0V / GND. Fungsi ini bisa diletakkan di setup() maupun loop(). Syntax untuk fungsi ini adalah sebagai berikut
digitalWrite(pin, value);
  • pin merupakan nomor dari pin yang digunakan pada Arduino
  • value merupakan nilai output berupa HIGH atau LOW
Contoh:
void loop(){
digitalWrite(13, HIGH);  //output D13 bernilai HIGH
}

digitalRead()

digitalRead() digunakan untuk membaca input yang masuk ke dalam pin digital Arduino. Input yang masuk berupa nilai digital HIGH atau LOW. Syntax untuk fungsi ini adalah sebagai berikut
digitalRead(pin);
Contoh:
void loop(){
digitalRead(13);  //input pada D13 akan terbaca 1 atau 0
}


analogRead()

analogRead() digunakan untuk membaca input nilai analog yang dibaca oleh pin analog Arduino. Berbeda dengan digitalRead(), nilai yang terbaca adalah nilai integer  0 hingga 1023 yang mempresentasikan 0V hingga 5V. Syntax untuk fungsi ini adalah sebagai berikut
analogRead(pin);
Contoh:
void loop(){
analogRead(A0);  //input pada A0 akan membaca nilai 0 hingga 1023
}

analogWrite()

analogWrite() digunakan untuk memberikan output berupa nilai analog. Output ini berupa gelombang PWM (Pulse Width Modulation). Pada Arduino, pin yang dapat digunakan untuk mengeluarkan gelombang PWM adalah yang memiliki simbol (~).

Syntax untuk fungsi ini adalah sebagai berikut
analogWrite(pin, value);
  • pin merupakan nomor dari pin yang digunakan pada Arduino
  • value merupakan nilai PWM yang bernilai 0 hingga 255
Contoh:
void loop(){
analogWrite(11, 150);  //D11 sebagai PWM dengan nilai sebesar 150
}

delay()

delay() digunakan untuk memberikan jeda pada program dalam satuan ms (mili second). Syntax fungsi ini adalah sebagai berikut
delay(time);
1000ms = 1s

Contoh:
void loop(){
 digitalWrite(13, HIGH);  //output D13 bernilai HIGH
 delay(1000);             //jeda selama 1 detik
 digitalWrite(13, LOW);   //output D13 bernilai LOW
 delay(1000);             //jeda selama 1 detik
}

delayMicroseconds()

delayMicroseconds() digunakan sama seperti delay(), namun dalam satuan mikro second. Syntaxnya adalah sebagai berikut
delayMicroseconds(time in us);
Contoh:
void loop(){
 digitalWrite(13, HIGH);  //output D13 bernilai HIGH
 delayMicroseconds(50);   //jeda selama 50us
 digitalWrite(13, LOW);   //output D13 bernilai LOW
 delayMicroseconds(50);   //jeda selama 50us
}


Nah mungkin itu dulu pada postingan ini. Semoga bisa bermanfaat.
Tengkyu


Comments

Popular posts from this blog

Komponen dan Simbol Elektronika - Mr. Ido

Hai guys!!! Pada postingan awal kita udah ngebahas tentang Arduino. Sebelum memulai pakai Arduinonya, ada baiknya kita kenal dulu komponen-komponen dan simbol-simbol dari elektronika, sehingga ntar gak bingung waktu nyoba merangkai rangkaian elektronikanya. Nah di postingan ini bakal dijelaskan komponen-komponen elektronika secara umum. Resistor Resistor merupakan komponen pasif yang fungsinya sebagai penghambat arus listrik yang mengalir pada suatu rangkaian elektronika. Nah resistor ini paling sering dipakai dalam rangkaian elektronika. Bisanya resistor disimbolkan dengan huruf "R". Resistor memiliki nilai resistansi (hambatan) dalam satuan Ohm (Ω). Beberapa jenis resistor diantaranya: Fix Resistor, Resistor Variabel, Termistor (NTC, PTC), LDR (Light Dependent Resistor). Kapasitor Kapasitor merupakan komponen pasif yang memiliki fungsi untuk menyimpan muatan listrik sementara. Di dalamnya terdapat 2 buah konduktor yang terpisah dengan jarak tertentu o

LED Berkedip (Blink) dengan Waktu Delay Diatur Potensiometer - Mr. Ido

Hai guys!!! Pada tutorial ini Latihan Arduino bakal membagikan tutorial masih dengan LED. Di tutorial sebelumnya ( LED Berkedip (Blink) menggunakan Arduino - Mr. Ido ), kita telah membagikan cara untuk membuat LED berkedip. Kali ini kita bakal upgrade sedikit dengan cara memberikan waktu berkedip LED yang diatur dengan Potensiometer. Pada pin analog Arduino kita manfaatkan perubahan nilai yang masuk ke pin analog tersebut dengan merubah nilai resistansi dari potensiometer. Tegangan yang dapat dibaca pada pin analog ini adalah 0 - 5V dengan nilai analog yang memiliki rentang 0 - 1023 dalam bilangan integer. Dari nilai analog tersebut bisa digunakan untuk mengatur lamanya delay LED berkedip. Untuk merubahnya dalam satuan waktu, bisa digunakan perbandingan antara  delay  waktu maksimum yang diinginkan dengan 1023, yang dapat ditulis dalam persamaan berikut Keterangan: Delay waktu merupakan delay yang akan dipakai untuk delay berkedip Waktu maksimum merupakan waktu delay ma

PWM pada Arduino

Hai guys!!! Pada postingan Dasar Pemrograman Arduino  telah dijelaskan beberapa pemrograman dasar yang dapat digunakan untuk mengontrol arduino. Disitu dijelaskan bagaimana menggunakan input dan output dari arduino. Input dan output dari arduino terdiri dari digital dan analog. Nah kali ini kita fokus pada output analog dari Arduino. Biasanya untuk menghidupkan LED kita gunakan  digitalWrite() . Dengan menggunakan digitalWrite() , maka output berupa   HIGH dan LOW  dan LED akan hidup dan mati saja. Andai ingin menghidupkan LED, tetapi hidupnya hanya setengah, maka tidak bisa menggunakan digitalWrite() . Oleh karena itu kita butuh output analog. Output analog biasa dikenal sebagai PWM ( Pulse Width Modulation ). PWM akan memanipulasi output digital menjadi analog. Output ini berupa sinyal kotak dan memiliki nilai HIGH dan LOW secara bergantian dengan waktu tertentu. Persentase sinyal HIGH dengan LOW dalam satu waktu disebut duty cycle . Duty cycle  ini memiliki nilai 0 - 100 %. N