02 Januari 2012

Tutorial Arduino – Push Buttons

PushButton-ResistorPullUpSchematic300

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 pull-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

Komponen yang diperlukan:

2 buah push button2 buah resistor 10K ohm1 buah resistor 330 ohm1 buah LEDKabel 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.

Skema rangkaian push button dengan pull-up resistor

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.

Skema rangkaian push button dengan pull-down resistor

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

Push buttor for Arduino - Pull-up Resistor

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.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/*
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
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);
}
}

Program di atas dapat berfungsi untuk 2 skenario kita tadi.

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.

2 Push buttons for Arduino - Pull-up Resistors

Kemudian rubah kode programnya menjadi seperti ini:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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.

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:

8
9
10
11
12
13
14
15
16
17
int value = 0;
void loop(){
if (digitalRead(inputPin1) == LOW) {
value--;
} else if (digitalRead(inputPin2) == LOW) {
value++; }
value = constrain(value, 0, 255);
analogWrite(ledPin, value);
delay(10);
}

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!

Print Friendly

View the original article here

Ikuti Blog ini

Langganan

Mau dapet Update-an Blog ini lewat e-mail? Masukkin aja alamat Email kamu disini:

Dikirim Oleh FeedBurner