Arduino digitalRead()

Pada percobaan membuat lampu flip-flop dengan Arduino, sebenarnya kita sudah belajar mengenai OUTPUT sinyal digital dan penggunaannya di Arduino.

Digital output HIGH atau bernilai 1 memberikan tegangan kerja pada pin digital Arduino Uno sebesar 5 Volt, dan sebaliknya output LOW atau 0 memberikan tegangan sebesar 0 Volt pada pin yang kita maksud.

Sehingga dengan memberikan logika HIGH dan LOW secara bergantian, kita dapat membuat lampu flip-flop sederhana. Dan fungsi delay() kita bisa memberi jeda untuk mengatur berapa lama led menyala.

INPUT DIGITAL

Kali ini kita akan lanjutkan membahas mengenai INPUT sinyal Digital. Input ini digunakan sebagai masukan sinyal ke mikrokontroller, sehingga selanjutnya dapat kita proses sinyal tersebut.

Sinyal input bisa berupa hasil bacaan dari sensor maupun masukan manual dari pengguna, misalkan melalui tombol.

Input digital hanya punya 2 nilai saja, YA atau TIdak, HIGH atau LOW, 1 atau 0.

Contoh penggunaanya yang paling umum pada tombol atau saklar, hidup atau mati. Contoh lain pada sensor cahaya digital, gelap atau terang. Contoh lain pada sensor sentuh/saklar sentuh, sensor hujan, IR sensor dan lain lain.

Rangkaian

Untuk lebih memahaminya kita coba saja di Arduinonya.

Dari contoh rangkaian flip-flop sebelumnya, kita modifikasi dengan menambahkan beberapa komponen.

  • 2 buah push button
  • 2 buah resistor 10K Ohm

Kemudian rangkai seperti gambar dibawah ini.

Hubungkan saklar 1 dengan pin digital 5, dan saklar 2 dengan pin digital 4.

Hubungkan pull-down resistor ke Ground dan ke masing-masing pin (kondisi default/tombol tidak ditekan),  Ini digunakan untuk memberi nilai LOW atau 0 ke pin 5 dan 4 pada saat tombol tidak ditekan

Dan hubungkan 5 volt pada pin saklar sebaliknya. Sehingga pada saat saklar ditekan, pin digital akan terhubung dengan 5 volt dan bernilai 1 atahu HIGH.

Jika pin kita lepaskan koneksi pin digital, LED akan menjadi tidak stabil, berubah-ubah antara nilai HIGH dengan LOW. Sehingga kita perlu memastikan pin dalam kondisi LOW dengan menghubungkan resistor pull-down ke Ground.

Kode

Logika pemrograman yang akan kita buat cukup sederhana saja.

Jika tombol 1 ditekan, maka LED Merah akan menyala, dan jika tombol 2 ditekan LED Hijau yang menyala.

Kode programnya sebagai berikut

Hanya ada 1 fungsi baru yang kita gunakan seperti pada source code diatas, yaitu digitalRead()

Namun sebelumnya, pada setup kita set dulu pin 4 dan 5 sebagai INPUT

Kemudian untuk membaca nilai pin digital kita menggunakan digitalRead()

Hasil bacaan pin 5 tersebut landsung dapat kita evaluasi nilainya.

Jika bacaan pin 5 bernilai HIGH, maka kita akan mengirimkan sinyal HIGH ke pin 8 dimana di pin tersebut terhubung dengan LED Merah.

Maka ketika pin 8 bernilai HIGH, pin 8 akan bertegangan 5 Volt dan LED Merah akan menyala.

Dan jika tidak bernilai HIGH (kondisi ELSE nya), maka LED Merah akan mati.

Begitu juga dengan tombol kedua, akan mengontrol nyala LED Hijau

Bacaan pin 4 jika bernilai HIGH, maka arduino akan mengirim sinyal HIGH ke pin 7 yang terhubung dengan LED Hijau.

Maka LED Hijau akan menyala.

Dan akan mati jika tombol tidak ditekan, pin 4 bernilai LOW.

Kesimpulan

Dengan fungsi digitalRead() kita dapat membaca nilai pin digital, HIGH atau LOW, 1 atau 0.

Secara default pin digital akan berfungsi sebagai input, namun untuk mendefinisikannya kita menggunakan perintah pinMode(pin, INPUT);

Pembacaan digital digunakan untuk membaca nilai tombol, atau sensor digital saja, untuk pembacaan sensor yang lebih akurat kita perlu membaca secara analog.

Sinyal analog dapat membaca nilai tidak 1 dan 0 saja, namun bisa sampai 1024 nilai, sehingga kebih akurat,

Pembahasan sinyal analog di Arduino akan kita bahas dikesempatan mendatang, pastikan terus update artikel-artikel dari ndoware,com

Terimakasih sudah berkunjung dan selamat belajar.

https://www.arduino.cc/en/Tutorial/DigitalReadSerial https://www.arduino.cc/reference/en/language/functions/digital-io/digitalread/

referensi

Febrianto

Penulis Senior Ndoware.com yang lagi suka ngulik Arduino dan IoT. Hoby bermain game baik itu di komputer, gadget maupun di dunia nyata :)

1 Respon

  1. 12 Desember 2018

    […] Mengenai digital INPUT bisa kita coba dengan menambahkan pushbutton, dan fungsi digitalRead() seperti pada percobaan ini. […]

Tinggalkan Balasan

This site uses Akismet to reduce spam. Learn how your comment data is processed.