Input Digital Arduino

posted in: Belajar Arduino | 0

Pin digital pada Arduino bersifat bidirectional, berarti sebuah pin dapat menjadi pin input sekaligus pin output pada saat yang tidak bersamaan (bergantian). Output digital sudah dibahas di artikel sebelah. Lalu bagaimana dengan input digital?

Konsep kerja input digital sendiri berkebalikan dari output digital. Input digital digunakan untuk mendeteksi perubahan logika biner pada pin tertentu. Adanya input digital memungkinkan mikrokontroler untuk dapat menerjemahkan 0V menjadi logika LOW dan 5V menjadi logika HIGH.

Perlu kamu ketahui...

Banyak modul-modul sensor yang beredar di pasaran, seperti push button, sensor jarak (ultasonik), dan sensor suhu dan kelembapan (DHT 11), memiliki output berupa sinyal digital, sehingga kita harus menggunakan input digital pada Arduino agar dapat membaca dan mengolah data berupa sinyal digital dari sensor-sensor tersebut.

Membaca sinyal digital pada Arduino dapat menggunakan sintaks digitalRead(pin);
Berikut contoh sederhana membaca state dari sebuah push button, lalu menampilkan kondisi state push button tersebut pada teminal.

Selain Arduino, kamu akan membutuhkan sebuah push button dan resistor (misal 330 ohm) pada tutorial kali ini (syukur-syukur kalau ada breadboard). Rangkailah push button dan resistor tersebut sesuai dengan skema berikut:

digitalread button_sch

Lalu upload program berikut ke Arduino kamu:

// pin digital nomor 2 telah terpasang sebuah pushbutton. Beri nama pushbutton ini ‘tombol’ 
int tombol = 2;

void setup() {
  // mulai komunikasi serial dengan baud rate 9600 bits per second
  Serial.begin(9600);
  // jangan lupa deklarasikan tombol sebagai input
  pinMode(tombol, INPUT);
}

void loop() {
  // baca state tombol
  int keadaanTombol = digitalRead(tombol);
  // print state tombol melalui serial
  Serial.println(buttonState);
  delay(100);        // delay 100 milisekon
}

Setelah program berhasil diupload, buka jendela serial monitor dengan mengeklik ikon kaca pembesar yang ada di sebelah kanan atas jendela sketch.

serial pushbutton input

Cobalah tekan push button beberapa kali sembari mengamati jendela serial monitormu. Angka 0 dan 1 yang muncul merupakan state digital push button yang terbaca pada pin input digital Arduino yang digunakan. Angka 1 akan muncul ketika push button ditekan, sedangkan angka 0 akan muncul ketika push button dalam keadaan tidak ditekan.

Kok bisa gitu ya? Begini...
Bosan dengan angka 0 dan 1? Mari kita ganti sedikit kode program di atas menjadi:

// pin digital nomor 2 telah terpasang sebuah pushbutton. Beri nama pushbutton ini ‘tombol’ 
int tombol = 2;

void setup() {
  // mulai komunikasi serial dengan baud rate 9600 bits per second
  Serial.begin(9600);
  // jangan lupa deklarasikan tombol sebagai input
  pinMode(tombol, INPUT);
}

void loop() {
  // baca state tombol
  int keadaanTombol = digitalRead(tombol);
  // print state tombol melalui serial
  
  if (keadaanTombol == 1) {
    Serial.println("Tombol ditekan");
  } else {
    Serial.println("Tombol tidak ditekan");
  }
  
  delay(100);  // delay 100 milisekon
}

Hasilnya:

input digital tombol

Selamat mencoba dan berkreasi! 😎

Leave a Reply