• MUHILHAM • Electronics Hobbyist and Maker
  • Shop
  • Sitemap
  • Portfolio
  • Jasa Custom Project





  • Home Arduino Arduino Tutorial Elektronika Arduino Tutorial : Digital Input Output Arduino [LED dan Push Button]

    Arduino Tutorial : Digital Input Output Arduino [LED dan Push Button]

    MUHAMMAD ILHAM Penulis MUHAMMAD ILHAM


    Pada tutorial arduino kali ini kita akan belajar tentang cara kerja pin arduino pada mode input, input pullup dan output. Pada tutorial arduino ini kita menggunakan Arduino Uno, arduino uno memiliki sebanyak 14 pin digital input-output yaitu pada pin 0 sd 13.

    Jadi setiap kita akan akan menggunakan pin digital arduino sebagai input maupun sebagai output, terlebih dahulu kita harus mengatur mode pin tersebut. Mode pin ini diatur pada void setup() dengan menggunakan sintaks pinMode(pin, mode). Berikut kita bahas setiap mode input output pada arduino.

    Mode Input High Impedance
    Sintaks : pinMode(pin, INPUT);
    Mode input high impedance ini merupakan mode bawaan atau default pin arduino. Pada mode ini seolah-olah terdapat resistor 100 Mega ohm dipasang seri terhadap pin. Ini berarti pada kondisi ini pin membutuh arus yang sedikit untuk merubah kondisi logika, mode ini baik digunakan untuk membaca sensor sentuh kapasitif atau membaca LED sebagai photodioda.

    Mode Input Pullup
    Sintaks : pinMode(pin, INPUT_PULLUP);
    Pada mode ini terdapat internal resistor sebesar 20K pada chip atmega arduino yang diatur melalui program. Resistor pull-up ini diakses dengan mengatur pinMode() sebagai INPUT_PULLUP. Ini berarti berbanding terbalik dengan mode input high impedance, logika HIGH berarti kondisi off dan logika LOW berarti on.

    Jadi saat menggunakan pin sebagai input pull-up, ujung lain dari perangkat komponen sensor atau sebagai contoh pada tombol harus terhubung dengan ground. Contoh digunakan tombol push button, jika tombol tidak ditekan atau kondisi terbuka maka arduino akan membaca kondisi HIGH, dan kondisi LOW saat tombol ditekan. Gambar berikut menunjukkan ilustrasi input pull-up.



    Mode Output
    Sintaks : pinMode(pin, OUTPUT);
    Pada saat pin di set pada mode output, pin akan dalam keadaan low impedance. Ini artinya pin dapat memberikan keluaran arus yang cukup ke rangkaian lain. Pin atmega dapat menjadi source (menghasilkan arus positif) atau sink (menghasilkan arus negatif) sebesar 40 mA (milliamper) ke rangkaian lain.

    Jika arus beban dari rangkaian lain melebihi arus pin atmega, berakibat bisa merusak pin, bahkan dapat merusak ic atmega tersebut. Maka dari itu untuk mengatasinya disarankan memasang resistor 470 ohm atau 1K ohm pada pin output ke rangkaian lain.

    Reference arduino.cc/reference


    Setelah kita bahas beberapa mode input dan output pada arduino, selanjutnya kita akan membuat sebuah program, yaitu membuat replika seperti spaceship interface atau panel kontrol pesawat luar angkasa dengan led dan tombol push button.

    Komponen yang dibutuhkan
    • 1x Board Arduino
    • 1x Papan Breadboard
    • 1x LED Hijau
    • 2x LED Merah
    • 1x Pushbutton
    • 3x Resistor 330 ohm
    • 1x Resistor 10 K ohm
    Rangkaian Spaceship Interface


    Penjelasan rangkaian:
    Mode input tombol yang digunakan pada rangkaian di atas adalah input high impedance, maka dari itu digunakan sebuah resistor pull-down pada tombol dan pada kaki lain tombol dihubungkan dengan 5V. 

    Kenapa harus ada resistor 10k yang dihubungkan dengan ground. Karena jika tidak di pasang resistor, maka pembacaan pada pin digital tersebut akan floating atau mengambang, kondisi nya kadang akan berlogika high lalu berubah ke low begitu seterusnya dan saat tombol ditekan, program tidak akan berfungsi dengan benar.

    Sketch Program Spaceship Interface
    int tombol;
    const int pin_led_hijau = 2;
    const int pin_led_merah1 = 3;
    const int pin_led_merah2 = 4;
    const int pin_tombol = 5;
    
    void setup() {
      pinMode(pin_led_hijau, OUTPUT);
      pinMode(pin_led_merah1, OUTPUT);
      pinMode(pin_led_merah2, OUTPUT);
      pinMode(pin_tombol, INPUT);
    }
    
    void loop() {
      tombol = digitalRead(pin_tombol);
    
      if (tombol == 1) {
        // Tombol di tekan
        digitalWrite(pin_led_hijau, LOW);
        digitalWrite(pin_led_merah1, LOW);
        digitalWrite(pin_led_merah2, HIGH);
        delay(250);
        digitalWrite(pin_led_merah1, HIGH);
        digitalWrite(pin_led_merah2, LOW);
        delay(250);
      } else {
        // Tombol tidak di tekan
        digitalWrite(pin_led_hijau, HIGH);
        digitalWrite(pin_led_merah1, LOW);
        digitalWrite(pin_led_merah2, LOW);
      }
    }
    

    Penjelasan program :
    • Pada baris no 1 sd 5 merupakan inisialisasi variabel global dan menentukan nomor pin yang akan digunakan.
    • Variabel int tombol digunakan untuk menyimpan kondisi tombol.
    • Pada void setup() terdapat sintaks pinMode() untuk mengatur mode pin yang akan digunakan sebagai input atau output.
    • Fungsi void loop() merupakan perulangan yang dilakukan terus menerus, tombol = digitalRead(pin_tombol) berfungsi untuk membaca kondisi tombol yang dihubungkan dengan pin tersebut dan disimpan pada variabel tombol dengan nilai 0 untuk kondisi tidak ditekan 1 untuk kondisi ditekan.
    • Pada baris ke 17 if (tombol == 1) artinya, jika tombol ditekan maka jalankan program yang ada di dalamnya.
    • Sintaks digitalWrite(pin_led_hijau, LOW) berarti memberi logika LOW (GND) pada pin tersebut dan  membuat led hijau mati.
    • Pada baris ke 26 else artinya, selain dari nilai kondisi diatas yaitu kondisi variabel tombol, jalankan program didalamya.
    • Sintaks digitalWrite(pin_led_hijau, HIGH) berarti memberi logika HIGH(5V) pada pin tersebut dan  membuat led hijau menyala.

    #Kreatifitas
    Buatlah program dengan mode INPUT_PULLUP dengan merubah rangkaian terlebih dahulu. Bagian rangkaian yang diubah adalah pada bagian tombol, dengan melepas resistor 10K dan pada kaki sebelah nya ubah 5V ke GND!
    Lalu modifikasi sketch program spaceship interface dimana ketika tombol tidak ditekan LED hijau akan menyala-mati dengan interval 200mS!
    Setelah itu dapatkan kesimpulan dari percobaan yang kamu lakukan!

    Jika masih ada yang kurang jelas silahkan tanyakan pada kolom komentar ya 😉

    Arduino
    Arduino Tutorial
    Elektronika

    Related Posts

    MUHAMMAD ILHAM

    MUHAMMAD ILHAM

    “ Ikat ilmu dengan menulisnya ”
    ― Ali bin Abi Thalib ―

  • Next Post
    Previous Post

    1 comment

    1. AnonymousMarch 8, 2021 at 7:02 PM

      gan, kalo gini kasusnya gimana:
      ditekan pushbutton sekali (1) lampu menyala delay 1 detik
      ditekan sekali lagi (2) lampu menyala delay 0.5 detik
      ditekan sekali lagi (3) lampu berhenti menyala.
      terus mengulang 1-2-3-1..
      membuat code untuk kasus seperti ini gimana ya? terima kasih

      ReplyDelete
      Replies
        Reply
    Add comment
    Load more...


    EmoticonEmoticon

    Popular Posts

    • Cara Memperbaiki Kipas Angin Mati Total [Tidak Berputar Sama Sekali]
    • Membuat Mobil Remote Control dengan Arduino [RC Car Control with Bluetooth]
    • Download Cadsoft Eagle Professional 7.2.0 Full
    • Membuat Gerbang Otomatis [Arduino Controlled Gate Barrier with Ultrasonic Sensor HC-SR04]
    • Membuat Running LED Dengan IC 4017 dan Timer NE555

    Categories

    Elektronika Arduino Tips dan Trik Robotic Tutorial IoT Software Arduino Tutorial PCB STM32

    Recent Posts

     
    Copyright © MUHILHAM • Electronics Hobbyist and Maker. All Rights Reserved.