15 Okt 2019

Push Button

Push Button

Sampai saat ini kebanyakan fokus latihan pada komponen output. Sekarang kita mencoba latihan menggunakan komponen input sederhana yang umum digunakan yaitu push button menggunakan fungsi digital input. Push button dirangkaikan dengan Arduino sehingga ketika push button ditekan akan menjadikan kondisi LOW.

Pada latihan ini, menggunakan parameter INPUT_PULLUP didalam fungsi pinMode(), sehingga tidak memerlukan resistor yang dihubungkan sebagai pull-up untuk menjaga inputan pada pin dalam kondisi HIGH ketika push button tidak ditekan.

Kebutuhan Komponen:

— 1 x Arduino UNO
— 2 x Push Button
— 1 x LED
— 1 x Resistor 330Ω

Komponen yang digunakan pada Shield:

2 x Push Button yang terhubung dengan D2 & D4.
1 x LED yang terhubung ke D13.



Rangkaian:


Upload sketch:

Buka software Arduino IDE apabila menggunakan PC/Laptop. Jika menggunakan Android dapat membuka aplikasi Bluino Loader yang sudah diinstal dari Google Playstore. Buka sketch Latihan 05 yang sudah diunduh dan disimpan pada folder Examples sebelumnya.

Untuk membuka sketch temukan file di: BluinoLoader > examples > Belajar_Arduino_Dasar > Latihan_05

Cara lain dapat juga upload sketch langsung melalui aplikasi ini ke Arduino melalui USB OTG atau Bluetooth dengan cara menekan ikon upload (tanda panah ke kanan) dibawah.
/* Bluino Starter Shield
   Latihan 05 Push Button

   Use pushbuttons for digital input.

   Version 1.0 9/2017 MK
*/

const int button1Pin = 2;  // pushbutton 1 pin
const int button2Pin = 4;  // pushbutton 2 pin
const int ledPin =  13;    // LED pin

int button1State, button2State;  // variables to hold the pushbutton states


void setup() {
  // Set up the pushbutton pins to be an input with the internal pull-up resistor enabled :
  pinMode(button1Pin, INPUT_PULLUP);
  pinMode(button2Pin, INPUT_PULLUP);
  pinMode(ledPin, OUTPUT); // Set up the LED pin to be an output
  
}

void loop() {
  button1State = digitalRead(button1Pin);
  button2State = digitalRead(button2Pin);

  // if button1 or button 2 are pressed (but not both)
  if (((button1State == LOW) && (button2State == HIGH)) || ((button1State == HIGH) && (button2State == LOW))) {
    digitalWrite(ledPin, HIGH);  // turn the LED on
  }
  else {
    digitalWrite(ledPin, LOW);  // turn the LED off
  }
}

Catatan kode:

pinMode(button2Pin, INPUT_PULLUP);
Semua pin pada Arduino dapat difungsikan sebagai input sebagaimana bisa difungsikan sebagai output. Sebelumnya harus dinyatakan terlebih dahulu pin mana yang akan diset sebagai input dengan menggunakan fungsi pinMode(). Pada fungsi pinMode() menggunakan parameter INPUT_PULLUP bertujuan untuk mengaktifkan internal pull-up resistor didalam IC mikrokontroller secara kode.
button1State = digitalRead(button1Pin);
Untuk membaca sebuah inputan digital menggunakan fungsi digitalRead(). Fungsi ini akan menghasilkan HIGH jika tegangan 5V terhubung dengan pin, atau LOW jika tegangan 0V terhubung dengan pin.
if (button1State == LOW)
Karena menghubungkan salah satu kaki push button ke GND, maka akan membaca LOW ketika push button ditekan. Disini menggunakan operator dua sama dengan ("==") untuk mendeteksi apakah push button ditekan.

Apa yang seharusnya kamu lihat:

Kamu akan melihat LED akan menyala ketika salah satu push button ditekan, dan akan mati ketika kedua push button ditekan. (Lihat pada sketch kenapa bisa terjadi seperti itu!). Jika tidak bekerja, pastikan sketch sudah masuk kedalam Arduino.



0 comments:

Posting Komentar