Pada posting kali ini kita akan membahas tentang tata cara menggunakan arduino untuk mengedipkan lampu LED pada suatu rangkaian. Alat yang akan kita gunakan adalah :
1. 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:
A. 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.
B. 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).
·
;(titk koma)
Setiap
baris kode harus diakhiri dengan tanda titik koma (jika ada titik koma yang
hilang maka program tidak akan bisa dijalankan).
C. Variabel
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 (16 bit). Tidak mempunyai angka desimal dan
menyimpan nilai dari -32,768 dan 32,767.
·
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.
·
boolean (boolean)
Variabel
sederhana yang digunakan untuk menyimpan nilai TRUE (benar) atauFALSE (salah). Sangat berguna karena hanya menggunakan 1 bit
dari RAM.
·
float (float)
Digunakan
untuk angka desimal (floating point). Memakai 4 byte (32 bit) dari RAM dan
mempunyai rentang dari -3.4028235E+38 dan 3.4028235E+38.
·
char (character)
Menyimpan
1 karakter menggunakan kode ASCII (misalnya ‘A’ = 65). Hanya memakai 1 byte (8
bit) dari RAM.
D. Operator Matematika
Operator yang digunakan
untuk memanipulasi angka (bekerja seperti matematika yang sederhana).
·
Tanda =
Membuat
sesuatu menjadi sama dengan nilai yang lain (misalnya: x = 10 * 2, x sekarang
sama dengan 20).
·
Tanda %
Menghasilkan
sisa dari hasil pembagian suatu angka dengan angka yang lain (misalnya: 12 %
10, ini akan menghasilkan angka 2).
·
Tanda +
Penjumlahan
·
Tanda -
Pengurangan
·
Tanda *
Perkalian
·
Tanda /
Pembagian
E. Operator Pembanding
Digunakan untuk
membandingkan nilai logika.
·
Tanda ==
Sama
dengan (misalnya: 12 == 10 adalah FALSE (salah) atau 12 == 12 adalah TRUE
(benar))
·
Tanda!=
Tidak
sama dengan (misalnya: 12 != 10 adalah TRUE (benar) atau 12 != 12 adalah FALSE
(salah))
·
Tanda <
Lebih
kecil dari (misalnya: 12 < 10 adalah FALSE (salah) atau 12 < 12 adalah
FALSE (salah) atau 12 < 14 adalah TRUE (benar))
·
Tanda >
Lebih
besar dari (misalnya: 12 > 10 adalah TRUE (benar) atau 12 > 12 adalah
FALSE (salah) atau 12 > 14 adalah FALSE (salah))
F. 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):
·
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.
·
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–.
G.Digital
·
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 adalahINPUT atau OUTPUT.
·
digitalWrite(pin, value)
Ketika sebuah pin ditetapkan sebagai OUTPUT, pin tersebut dapat dijadikan HIGH(ditarik menjadi 5 volts) atau LOW (diturunkan menjadi ground).
·
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) atau LOW(diturunkan menjadi ground).
H. 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.
·
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).
·
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).
2. Kabel Data
Kabel data digunakan untuk mentransfer sketch atau program dari PC ke board arduino.
3. Computer atau PC
Computer atau PC digunakan untuk membuat sketch atau program menggunakan software arduino.
4. PCB (Print Circuit Board)
PCB digunakan untuk membuat suatu rangkaian komponen elektronika. Komponen ini lah yang akan di uji menggunakan pemrograman berbasis arduino.
Berikut ini adalah program yang telah saya uji untuk menyalakan 4 buah LED, kemudian LED tersebut akan berubah polanya ketika kita memutar potensio yang ada di PCB. Jika nilai potensio lebih dari 500, maka 4 lampu LED akan menyala dan mati secara bersamaan, kemudian jika nilai potensio kurang dari 500, maka 4 lampu LED akan menyala secara bergantian.
/*
Program ini dibuat oleh Rio Sutanto
*/
int ledPin1 = 13;
int ledPin2 = 12;
int ledPin3 = 11;
int ledPin4 = 10;
void setup()
{
pinMode(ledPin1,OUTPUT); //deklarasi led output
pinMode(ledPin2,OUTPUT);
pinMode(ledPin3,OUTPUT);
pinMode(ledPin4,OUTPUT);
Serial.begin(9600); //connect serial port
}
void loop()
{
int val = analogRead (A5);
Serial.println(val, DEC);
if(val >= 500)
{
digitalWrite(ledPin1, LOW); // LED menyala
digitalWrite(ledPin2, LOW); // LED menyala
digitalWrite(ledPin3, LOW); // LED menyala
digitalWrite(ledPin4, LOW); // LED menyala
delay(val);
digitalWrite(ledPin1, HIGH); // LED padam
digitalWrite(ledPin2, HIGH); // LED padam
digitalWrite(ledPin3, HIGH); // LED padam
digitalWrite(ledPin4, HIGH); // LED padam
delay(val);
}
else
{
digitalWrite(ledPin1, LOW); // LED menyala
digitalWrite(ledPin2, HIGH); // LED padam
digitalWrite(ledPin3, HIGH); // LED padam
digitalWrite(ledPin4, HIGH); // LED padam
delay(val);
digitalWrite(ledPin1, HIGH); // LED padam
digitalWrite(ledPin2, LOW); // LED menyala
digitalWrite(ledPin3, HIGH); // LED padam
digitalWrite(ledPin4, HIGH); // LED padam
delay(val);
digitalWrite(ledPin1, HIGH); // LED padam
digitalWrite(ledPin2, HIGH); // LED padam
digitalWrite(ledPin3, LOW); // LED menyala
digitalWrite(ledPin4, HIGH); // LED padam
delay(val);
digitalWrite(ledPin1, HIGH); // LED padam
digitalWrite(ledPin2, HIGH); // LED padam
digitalWrite(ledPin3, HIGH); // LED padam
digitalWrite(ledPin4, LOW); // LED menyala
delay(val);
}
}
Wew...
BalasHapusada artikel nya juga ...
mampir juga neh ke blog gue ghildzero.blogspot.com