DuinoLab Kit Tutorial

DuinoLab Starter Kit #6 : Push Button (INPUT_PULLUP)

Referensi

Kirchoff’s Law:

4 thoughts on “DuinoLab Starter Kit #6 : Push Button (INPUT_PULLUP)

  1. gan mau penjelasan tentang programnya doong, yg if itu apa else kenapa di kasih tanda&& ini trus kenapa juga di kasih tanda seru? hehe

    1. Halo Ivan, saya asumsi kamu sudah tahu percabangan (If) dan sedikit mengenai boolean ya. (bila belum silahkan baca sekilas di http://duinolab.com/2016/01/27/c-branching-percabangan/)

      1. “yg if itu apa”:
      if( digitalRead(PIN_BUTTON) == LOW && button_ready ) {
      Seperti yang dijelaskan di video, mengeset sebuah pin ke INPUT_PULLUP akan menyebabkan digitalRead(pin) menjadi HIGH selama pin tidak terhubung ke Ground, dan pada saat tombol ditekan, maka Ground akan terhubung menyebabkan digitalRead(pin) menjadi LOW.

      2. “kenapa di kasih tanda &&”:
      &&: simbol ini adalah logic AND, jadi kita hanya akan mengeksekusi line 16~24, HANYA bila tombol ditekan dan button_ready == true (menulis button_ready == true dan button_ready adalah hal yang sama)

      3. “kenapa juga di kasih tanda seru”:
      Tanda seru adalah logic NOT, dimana kondisi true akan diubah menjadi false, dan kondisi false akan diubah menjadi true.

      } else if( digitalRead(PIN_BUTTON) == HIGH && !button_ready ) {

      Jadi pada kode ini, bila digitalRead(pin) adalah HIGH (tombol tidak ditekan), dan kondisi button_ready == false (button_ready menjadi false ketika tombol ditekan), maka kita akan membuat button_ready menjadi true kembali. Hal ini kita lakukan agar ketika kita menekan tombol kode baris 16~24 hanya akan dieksekusi 1 KALI saja.

      Tanpa button_ready, maka ketika kita menekan tombolnya, maka LED akan secara konstan mati dan nyala selama loop() berjalan.

      Maaf bila penjelasan sangat panjang, bila ada yang masih kurang jelas silahkan dan tolong ditanyakan :)

  2. Mas guru…dari skech di atas terdapat delay(10) berfungsi untuk lama penekanan tombol,pertanyaan saya dimana saya harus menempatkan delay(3000) kalau saya ingin mematikan led hanya jika tombol di tekan selama 3detik?

    1. Halo Amin, sudah saya jawab melalui chat FB kemarin ya :)

      Sebagai referensi saja untuk pembaca, kamu tidak bisa menggunakan delay untuk menentukan lama penggunaan tombol. Namun hal ini dapat diraih dengan function millis(). Konsep contoh code untuk yang kamu inginkan bisa dilihat di: https://paste.ee/p/kYi3z yang masih perlu modifikasi tentunya 😉

Leave a Reply

Your email address will not be published. Required fields are marked *