Senin, 26 Januari 2015

ARDUINO dan Push Buttom


deskripsi
setelah posting sebelumnya tentang belajar pemograman arduino ,kali ini untuk posting selanjutnya saya akan membuat arduino untuk dapat menerima input  ,langkah awal kerja sangat sederhana dimana tombol( pust buttom) ditambahkan komponen resistor, yang bisa berfungsi sebagai pull-up dan pull-down tergantung penepatannya,fungsi resistor disini agar arduino dapat mengetahui kondisi ketika tombol di tekan atau tidak berdasarkan arus yang dilewatinya(high atau low)

ada dua kondisi untuk mengunakan tombol (pust buttom )yang kita bahas berikut :
  1. ketika tombol di tekan pin arduino menjadi low dan menjadi high ketika tombol di lepas
  2. tombol ditekan pin arduino menjadi high dan menjadi low ketika tombol di lepas
komponen
  1. 2 buah push button
  2. 2 buah resistor 10K ohm
  3. 1 buah resistor 330 ohm
  4. 1 buah LED
  5. Kabel jumper
untuk kondisi 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 :
kondisi 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 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.
 
 /*
  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 30 Aug 2011
 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 kondisi 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


sedang untuk kode rubah seperti berikut:

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:

 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);
}

  • 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 yang lebih besar.

oke terima kasih selamat mencoba

             http://arduino.cc