Post Top Ad

Post Top Ad

Input

Input

Sebelumnya  kita  telah  belajar  tentang  bagaimana  mengendalikan LED.  Untuk  mengendalikan LED  kita  menjadi  pin  pada  Arduino sebagai  OUTPUT.  Pada  bagian  ini  kita  akan  membahas tentang bagaimana  menjadikan  pin  Arduino  sebagai  INPUT  dan  sebagai aplikasinya,  kita  akan menggunakan  komponen  pushbotton  dan potensiometer  sebagai input untuk mengendalikan LED. Bagian ini akan menjadi dasar agar Anda memahami bagaimana membuat Arduino bisa membaca sensor untuk mendeteksi kondisi lingkungan sekitar.

Pushbutton

Pertama kita akan bermain dengan tombol  pushbutton  (tactile) atau tombol  push  on.  Ketika  tombol ini  ditekan,  maka  jalur  akan  tertutup (ON), ketika dilepas jalur akan kembali terbuka (OFF). Tombol banyak digunakan  untuk  peralatan  seperti  remote,  keypad,  keyboard,  atau tombol untuk pengaturan TV, ld atau sejenisnya.
Pushbutton dan simbolnya
Pushbutton dan simbolnya
Gambar  3.1  merupakan  bentuk  fisik  pushbutton  dan  salah  satu simbol pushbotton jenis NO (Normally Open) dalam rangkaian elektronik. Berdasarkan  simbol  tersebut,  Normally  Open  berarti ondisi  normal (sebelum  ditekan),  maka  terminal  dalam  kondisi  tidak  tersambung (open, terbuka). Tapi  ketika  ditekan,  maka  masing -masing  terminal akan terhubung.

Selain  jenis  NO,  ada  juga  pushbutton  jenis  NC  (Normally  Close), artinya  ketika  kondisi normal  (sebelum  ditekan),  kaki  terminal  dalam keadaan  terturup  /  tersambung  (Close),  tapi ketika  ditekan,  kaki terminalnya  terbuka  (tidak  tersambung).  Dalam  ebook  ini,  kita  akan
menggunakan jenis pushbutton NO.


Satu Tombol dan Satu LED

Percobaan  kali  ini  adalah  untuk  mengendalikan  hidup/matinyanya  LED  dengan  tombol pushbutton.  Jika  tombol  ditekan,  LED  akan menyala, jika dilepas, LED kembali padam.

Untuk melakukan percobaan ini, siapkan sebuah pushbutton, sebuah LED, dan sebuah resistor. Siapkan juga beberapa kabel jumper untuk merangkai komponen-komponen tersebut.

Rangkaian
Silakan buat rangkaian seperti Rangkaian 3.1 berikut:
Rangkaian Pushbutton dan LED
Rangkaian Pushbutton dan LED

1.  Siapkan  LED  dan  pushbutton  pada  project  board.  Karena karena pushbutton memiliki 4 buah kaki yang masing-masing terpisah, maka silakan tancapkan  pushbutton  di tengah-tengah lajur project board sehingga kaki-kainya tidak tersambung.
2.  Salah  satu  kaki  pushbutton  dihubungkan  ke  GDN  di  project board,  sedangkan  kaki  pasangannya  disambungkan  ke  pin  2 pada  board  Arduino.  Bagaimana  cara  mengetahui  pasangan kaki-kaki  pada  pushbutton?  Anda  bisa  mengeceknya  dengan AVO meter.
  Setting  AVO  meter  untuk  menghitung  resistansi, kemudian  cek  masing-masing  pin pushbutton  dengan probe. Jika tombol ditekan jarum AVO meter bergerak menyimpang, berarti kaki-kaki tersebut sepasang.
3.  Untuk LED, sambungkan kaki negatif (pin yang lebih pendek) ke GND dengan resistor
4.  Kaki positif (kaki yang lebih panjang) disambungkan ke pin 8 pada board Arduino dengan jumper.


Program


Sketch Mengendalikan LED dengan pushbutton

// Free Ebook Arduino
// www.elangsakti.com
// coder elangsakti
// pin 2 sebagai input dan pin 8 sebagai output
const int pinButton = 2;
const int pinLED = 8;
void setup() {
pinMode(pinButton, INPUT);
pinMode(pinLED, OUTPUT);
// aktifkan pull-up resistor
digitalWrite(pinButton, HIGH);
}
void loop() {
if(digitalRead(pinButton) == LOW){
digitalWrite(pinLED, HIGH);
}else{
digitalWrite(pinLED, LOW);
}
}

Pertama  kali  dijalankan,  maka  awalnya  LED  akan  padam.  ketika kita menekan tombol pushbutton, maka LED akan menyala. LED akan kembali padam ketika tekanan tombol dilepas. Pada Sketch 3.1 di atas ada beberapa baris kode baru:

pinMode(pinButton, INPUT);
pinMode(pinLED, OUTPUT);

// aktifkan pull-up resistor
digitalWrite(pinButton, HIGH);


Baris 6 berfungsi untuk mengeset  pinButton  sebagai INPUT. Jika sebuah  pin  diset  sebagai INPUT, maka  mikrokontroller  akan mengambil  data  dari  pin  tersebut.  Jika  sebuah  pin  diset sebagai OUTPUT,  maka  mikrokontroller  akan  menuliskan  data  pada  pin tersebut.  dalam  hal ini, mikrokontroller  akan  mengambil  data  yang dari pushbutton.

Perhatikan  baris  ke-14.  Nilai  pinButton  awalnya  diset  HIGH. Kenapa  diset  HIGH?  Kenapa bisa diset  nilai  pinnya  menjadi  HIGH, padahal pin tersebut tidak terhubung dengan +5V?

Begini, pemilihan settingan awal dengan HIGH atau LOW untuk pinButton  tergantung pada rangkaian yang akan digunakan. Rangkaian 3.1  menghubungkan  pinButton  (pin  8)  ke  GND, artinya,  ketika pushbutton  ditekan  maka  pinButton  (pin  8)  akan  menjadi  0  (LOW). Padahal defaultnya, setiap pin bernilai LOW. Jika pin awalnya bernilai LOW,  kemudian  ditekan  tetap bernilai  LOW,  lalu  apa  gunanya pushbutton?

Padahal, fungsi utama dari saklar (dalam hal ini adalah  pushbutton) adalah  mengubah  nilai  yang awalnya  LOW  menjadi  HIGH,  atau sebaliknya.  Nah,  karena  ketika  pushbutton  ditekan  akan bernilai  LOW (ke  GND),  maka  awalnya  harus  kita  set  menjadi  HIGH.  Sehingga logika  untuk pushbutton  tersebut  adalah:  ketika  tidak  ditekan  HIGH, ketika ditekan LOW.

Kondisi  tersebut  yang  akan  digunaka  untuk  mendeteksi  apakah pushbutton tersebut ditekan atau tidak. Silakan perhatikan baris ke-18.

if(digitalRead(pinButton) == LOW){
digitalWrite(pinLED, HIGH);
}else{
digitalWrite(pinLED, LOW);
}

Pada  baris  18,  fungsi  digitalRead()  untuk  membaca  logika  pada pinButton. Jika pinButton ditekan (LOW), maka hidupkan LED dengan perintah  digitalWrite(pinLED,HIGH). Ketika pinButton bernilai HIGH, matikan LED. Sederhana bukan?

Untuk  pertanyaan  yang  kedua,  kenapa  pin  INPUT  bisa  diset HIGH?

Ketika  kita  menjadi  pin  INPUT  sebagai  HIGH,  maka  secara internal Arduino akan menghubungkan pin tersebut pada resistor  pullup  bernilai  20k  ohm.  Apa  itu  pull-up  resistor? Jika  ada  pull-up,  apakah juga ada pull-down resistor?
Skema Pull-up resistor
Skema Pull-up resistor

Begini,  dalam  elektronika  digital,  jika  sebuah  pin  diset  sebagai INPUT, kemudian pin tersebut belum tersambung ke VCC atau GND, maka  logika  pada  pin  tersebut  masih  mengambang (floating).  Oleh sebab  itu,  pin  tersebut  harus  ditentukan  apakah  akan  diberi  resistor pull-up (sehingga  bernilai  HIGH)  atau  diberi  pull-down  (sehingga bernilai LOW).

Jika pin tersebut diset HIGH, dalam  internal  mikrokontroller pin tersebut  akan  disambungkan  ke VCC  dengan  pengaman  sebuah resistor yang diistilahkan sebagai resistor  pull-up. Begitu juga jika pin tersebut  diset  LOW,  maka  pin  tersebut  akan  dihubungkan  ke  GND dengan pengaman resistor kemudian diistilahkan dengan resistor pulldown.  Gambar  3.2  adalah  rangkaian  dasar  pull-up  resistor  untuk rangkain di atas tanpa LED.

Semoga penjelasan tentang  pull-up resistor  bisa dipahami. Jika ada yang kurang jelas, mari kita diskusikan di website.