Arduino Part 3. Tombol ON - OFF LED
1. Arduino
Uno
2. Saklar
on off ( micro switch Push button )
3. Resistor
330 ohm
4. Resistor
3,3 Kohm (atau minimal 1 Kohm)
5. Lampu
LED
6. Project
board
7. Kabel
Setelah alat dan bahan sudah dipersiapkan sekarang saatnya kita mulai merakit. Pasanglah saklar, resistor dan LED pada Project board lalu saklar kita hubungkan dengan pin 7 pada Arduino Uno dan lampu LED dihubungkan ke pin 12. Pastikan jalur Ground (GND) pada LED sudah terhubung dan jalur positif 5 volt sudah terhubung ke saklar.
Untuk jelasnya bisa dilihat pada gambar di bawah ini :
//oleh Hendry Kurniawan
const int LED = 12;
const int SAKLAR = 7;
boolean ledMenyala = false;
int keadaansebelumnya = LOW;
{
pinMode(LED, OUTPUT);
pinMode(SAKLAR, INPUT);
}
{
int keadaansekarang = digitalRead (SAKLAR);
if ((keadaansekarang == HIGH) and (keadaansekarang != keadaansebelumnya))
{
// Membalik keadaan led menyala
ledMenyala = not ledMenyala;
if(ledMenyala)
digitalWrite(LED, HIGH);
else
digitalWrite(LED, LOW);
delay(30); //tunda sesaat
}
// perbaharui keadaan sebelumnya
keadaansebelumnya = keadaansekarang;
}
//oleh Hendry
Kurniawan
Sketch diatas merupakan sekedar catatan saja yang memberikan judul program. Catatan selalu dimulai dengan dua buah garis miring //. Catatan atau keterangan program ini tidak akan di eksekusi dalam menjalankan program.
const int LED =
12;
const int SAKLAR = 7;
Sketch
diatas adalah membuat variable kontanta Integer (bilangan bulat) yang diberi
nama LED dan SAKLAR. Untuk variable LED sama saja dengan 12. Angka 12 ini
merupakan nomor pin di Arduino uno yang nanti terhubung ke kutub positif
(anoda) LED melalui resistor 330 ohm. Resistor ini berfungsi untuk membatasi
arus menuju LED supaya lampu LED tidak cepat putus.
Untuk variable SAKLAR sama saja dengan angka 7. Angka 7 ini merupakan nomor pin Arduino yang nanti akan terhubung dengan micro switch (saklar). Kondisi saklar saat tidak di tekan selalu LOW. Kondisi ini karena pin 7 terhubung ke ground melalui resistor 3,3 Kohm. Dan pada saat saklar ditekan maka pin 7 akan berubah menjadi HIGH (5 Volt). Resistor 3,3 Kohm ini befungsi agar rangkaian tidak konslet (short) antara +5v dengan GND saat switch di tekan.
Jadi microswitch ini digunakan untuk menghidupkan LED menjadi ON dan OFF. Tekan saklar sekali nanti lampu LED ON dan kalua saklar ditekan sekali lagi maka LED akan OFF. Sehingga 1 buah saklar bisa menghidupkan dan sekaligus mematikan lampu LED.
boolean ledMenyala = false;
Variable yang kita gunakan namanya “ledMenyala” dan konstatanya yang digunakan adalah berbentuk
Boolean. Dalam konstanta Boolean hanya dikenal false (salah) dan true (benar).
Kondisi awal variable ledMenyala dibuat false.
int keadaansebelumnya = LOW;
Variable ini bernama “keadaansebelumnya”. Konstantanya bilangan
bulat (integer). Pada kondisi awal kita beri kondisinya LOW.
void setup()
{
pinMode(LED, OUTPUT);
pinMode(SAKLAR, INPUT);
}
Pada
sketch voidsetup maka semua program di dalam void setup dijalankan hanya sekali
saja (tidak berulang-ulang). Sehingga void setup ini cocok untuk
menginisialisasi suatu pin sebagai output atau input. Pada sketch di atas kita
kondisikan LED (pin 12) kita buat sebagai OUTPUT dan SAKLAR (Pin 7) kita buat
sebagai INPUT.
void loop()
{
int keadaansekarang = digitalRead (SAKLAR);
Void
loop merupakan program utama, karena dalam void loop ini akan dijalankan
berulang-ulang.
Pada
sketch terdapat variable integer yang diberi “keadaansekarang”. Isi memori pada
variabel “keadaan sekarang” sama dengan nilai pembacaan pada saklar dengan
menggunakan perintah “digitalRead”. Jadi pada saat saklar tidak ditekan maka
kondisinya “LOW” dan pada saat saklar di
tekan maka akan berubah menjadi “HIGH”. Kondisi LOW dan HIGH pada saklar akan
disimpan pada variabel “keadaansekarang”.
if ((keadaansekarang == HIGH) and (keadaansekarang != keadaansebelumnya))
Pada
sketch ini menggunakan if dan and.
Jadi
perintah if ini dimaksudkan untuk melakukan perubahan keadaan LED (menyala atau
mati) tidak hanya tergantung dari saklar di tekan (keadaansekarang =HIGH) melainkan
juga harus memperhatikan keadaan nilai “keadaansebelumnya”. Dalam hal ini,
perubahan LED hanya akan dilakukan jika saklar ditekan (HIGH) dan isi “keadaansekarang”
tidak sama dengan isi “keadaansebelumnya”
// Membalik keadaan led menyala
ledMenyala = not ledMenyala;
Pada
sketch diatas adalah untuk melakukan perubahan keadaan LED. Dalam hal ini,
operator not akan membalik keadaan di “ledMenyala”. Kalau awalnya bernilai
false, isi “ledMenyala” akan berubah menjadi true. Sebaliknya, kalua awalnya
bernilai true, isi “ledMenyala” berubah menjadi false. Keadaan inilah yang
menjadikan tombol tekan sebagai tombol on-off.
//Atur LED berdasarkan nilai ledMenyala
if(ledMenyala)
digitalWrite(LED, HIGH);
else
digitalWrite(LED,
LOW);
delay(30);
//tunda sesaat
}
Pada
sketch diatas gunanya untuk membuat LED menyala dan mati berdasarkan perintah “digitalWrite”.
Jadi jika “ledMenyala” = true maka LED menjadi HIGH dan jika tidak maka LED
akan LOW.
// perbaharui keadaan sebelumnya
keadaansebelumnya =
keadaansekarang;
Setelah
lampu LED hidup atau mati maka kondisi terakhir LED (“keadaansekarang”) harus
disimpan ke dalam variabel “keadaansebelumnya”.
Sehingga
variabel “keadaansebelumnya”akan selalu berubah sesuai kondisi terakhir.
Setelah
itu program akan looping (mengulang) dari awal lagi yaitu pada void loop.
Untuk hasil program ini bisa dilihat pada video di bawah ini :
Setelah anda sukses maka sebaiknya lanjutkan pada materi berikutnya yaitu Arduino Part 4 "Komunikasi serial antara Arduino dengan Komputer". Selamat membaca
Posting Komentar untuk "Arduino Part 3. Tombol ON - OFF LED"