• Tidak ada hasil yang ditemukan

Tutorial Arduino - Push Buttons

Dalam dokumen FamosaStudioArduinoStarterKitManual-V1.0 (Halaman 36-44)

Ide Dasar

Tutorial Arduino terakhir yang kita posting adalah tutorial menggunakan buzzer, yang bisa dilihat di sini. Tutorial tersebut menjelaskan bagaimana membuat 'musik' dengan Arduino. Posting-posting tutorial sebelumnya lebih mengutamakan dalam menghasilkan keluaran (output), jadi posting kali ini akan membuat Arduino untuk menerima masukan (input). Arduino akan 'mendengarkan', 'melihat' dan 'merasakan'.

Kita akan mulai dengan tombol (push buttons) yang sederhana. Koneksi untuk penggunaan tombol juga sangat mudah. Ada tambahan komponen yaitu resistor, yang bisa berfungsi sebagai up atau

pull-down, tergantung penempatannya. Kenapa diperlukan resistor? Karena Arduino berbeda dengan kita

yang tahu kapan tombol ditekan atau tidak. Arduino 'merasakan' bahwa tombol ditekan atau tidak dari arus yang melewatinya, apakah HIGH atau LOW.

Ada dua skenario penggunaan tombol yang akan kita bahas. Pertama, ketika tombol ditekan pin Arduino akan menjadi LOW dan menjadi HIGH kalau dilepas. Skenario yang kedua adalah ketika tombol ditekan, pin Arduino akan menjadi HIGH dan LOW kalau tombol dilepas.

Rangkaian

 2 buah push button

 2 buah resistor 10K ohm

 1 buah resistor 330 ohm

 1 buah LED

 Kabel jumper

Untuk skenario pertama, berarti pin Arduino akan dihubungkan dengan GND (ground) melalui tombol. Ketika tombol ditekan, pin akan menjadi LOW, tetapi pada saat dilepas maka kondisi pin akan mengambang (float) (hal ini kadang bisa menimbulkan kesalahan). Nah di sini fungsi resistor akan menjadi hal yang penting. Resistor akan dipasangkan antara pin Arduino dan +5V, sehingga ketika tombol dilepas maka pin akan terhubung dengan +5V melalui resistor dan pin menjadi HIGH. Ini yang dinamakan resistor menjadi pull-up, karena resistor menarik pin ke atas pada +5V. Oh ya, kita memakai resistor dengan nilai 10K ohm. Perhatikan pada skematik berikut.

Pada skenario kedua, pin Arduino akan dihubungkan dengan dengan +5V melalui tombol. Ketika tombol ditekan, pin akan menjadi HIGH dan agar pada saat dilepas pin menjadi LOW kita gunakan resistor 10K ohm. Resistor seperti ini dinamakan pull-down, karena resistor menarik pin ke bawah pada GND (ground). Perhatikan juga skematik berikut.

Berikut ini adalah gambar simulasi penempatan komponen pada breadboard dan board Arduino. Gambar simulasi ini menggunakan software Fritzing yang bisa didapat di sini.

Push button for Arduino - Pull-down Resistor Kode Pemrograman

Di bawah ini adalah kode pemrograman yang digunakan untuk push button. Tidak perlu mengetiknya karena sudah tersedia pada software Arduino. Klik menu File > Examples > 2.Digital > Button.

/* Button

Turns on and off a light emitting diode(LED) connected to digital pin 13, when pressing a pushbutton attached to pin 2.

The circuit:

* LED attached from pin 13 to ground * pushbutton attached to pin 2 from +5V

* 10K resistor attached to pin 2 from ground

* Note: on most Arduinos there is already an LED on the board attached to pin 13.

created 2005

by DojoDave <http://www.0j0.org> modified 28 Oct 2010

by Tom Igoe

This example code is in the public domain. http://www.arduino.cc/en/Tutorial/Button */

// constants won't change. They're used here to // set pin numbers:

const int buttonPin = 2; // the number of the pushbutton pin const int ledPin = 13; // the number of the LED pin

// variables will change:

int buttonState = 0; // variable for reading the pushbutton status void setup() {

// initialize the LED pin as an output: pinMode(ledPin, OUTPUT);

// initialize the pushbutton pin as an input: pinMode(buttonPin, INPUT);

}

void loop(){

// read the state of the pushbutton value: buttonState = digitalRead(buttonPin); // check if the pushbutton is pressed. // if it is, the buttonState is HIGH: if (buttonState == HIGH) {

// turn LED on:

digitalWrite(ledPin, HIGH); }

else {

// turn LED off:

digitalWrite(ledPin, LOW); }

}

Membuat Perubahan

Mungkin ada yang merasa kalau contoh di atas terlalu gampang. Ok, kita akan melakukan beberapa perubahan:

1 tombol untuk On dan 1 lagi tombol untuk Off

Kita akan membuat perubahan sehingga On dan Off dari LED ditentukan dari 1 buah tombol, 1 menghidupkan dan 1 lagi untuk mematikan.

Ok, kita pilih rangkaian push button dengan pull-up resistor. Tambahkan rangkaian untuk tombol kedua dengan kondisi yang sama pada breadboard anda. Bedanya tombol kedua ini menggunaan pin 3 dari Arduino. Bagaimana, bisa kan? Hasilnya kurang lebih seperti ini.

Kemudian rubah kode programnya menjadi seperti ini:

const int buttonPin1 = 2; // the number of the pushbutton pin const int buttonPin2 = 3; // the number of the pushbutton pin const int ledPin = 13; // the number of the LED pin

// variables will change:

int buttonState = 0; // variable for reading the pushbutton status void setup() {

// initialize the LED pin as an output: pinMode(ledPin, OUTPUT);

// initialize the pushbutton pin as an input: pinMode(buttonPin1, INPUT);

pinMode(buttonPin2, INPUT); }

void loop(){

// read the state of the pushbutton value: if (digitalRead(buttonPin1) == LOW) { digitalWrite(ledPin, LOW); //turn LED off } else if (digitalRead(buttonPin2) == LOW) { digitalWrite(ledPin, HIGH); //turn LED on }

}

Upload programnya dan mulailah mencoba tombol On dan tombol Off-nya. Seru kan! Nah coba sekarang gunakan rangkaian push button dengan pull-down resistor. Tambahkan tombol kedua dan sesuaikan programnya, kemudian upload dan lihat hasilnya.

Fading naik dan turun

Kita akan gunakan tombol untuk mengatur sinyal analog dan melakukan pengaturan LED agar memudar (fading) naik atau turun sesuai tombol yang ditekan. Rubah kabel jumper untuk LED yang tadinya di pin 13 menjadi pin 9. Rubah juga di kode program: const int ledPin = 13; --> const int ledPin = 9; Kemudian rubah kode program pada bagian loop() menjadi:

[cc lang="c" escaped="true" first_line="8"]int value = 0; void loop(){

if (digitalRead(inputPin1) == LOW) { value--;

} else if (digitalRead(inputPin2) == LOW) { value++; }

analogWrite(ledPin, value); delay(10);

}[/cc]

Merubah kecepatan fading

Jika anda ingin agar LED memudar (fading) lebih cepat atau lebih lambat, hanya perlu merubah kode 1 baris saja:

delay(10); --> delay(nilai baru);

Agar memudar lebih cepat, ganti nilai baru dengan angka yang lebih kecil, untuk memudar lebih lambat, ganti nilai baru dengan angka yan glebih besar.

Baiklah, itu tadi tutorial Arduino mengenai push button atau tombol. Semoga bermanfaat dan selamat mencoba!

Dalam dokumen FamosaStudioArduinoStarterKitManual-V1.0 (Halaman 36-44)

Dokumen terkait