Tutorial #3: Digital Input dengan Push Button

Dalam tutorial kali ini anda akan pelajari asas menggunakan fungsi algorythm Digital Input dengan Arduino dengan menggunakan butang Push-Button untuk menyalakan LED.

Sebelum meneruskan dengan tutorial ini, kami syorkan anda baca artikel berikut dahulu untuk memahami dengan lebih jelas mengenai Digital Input  dan algorythm-algorythm yang berkaitan.

2 Jenis Digital Input

Terdapat 2 jenis algorythm INPUT yang boleh digunakan pada Arduino untuk membaca kondisi butang. Apa yang penting, adalah cara sambungan wiring dan Value yang dikeluarkan oleh setiap jenis INPUT:

  • INPUT
    +Memberi Value HIGH apabila butang ditekan
    +Memberi Value LOW apabila butang dilepas
    +Sambungan PERLU menggunakan Resistor 10k yang disambung pada ground. Lihat rajah berikut:
    arduino_leonardo_pushbutton2_bb
  • INPUT_PULLUP
    +Memberi Value LOW apabila butang ditekan
    +Memberi Value HIGH apabila butang dilepas
    +Sambungan TIDAK perlu tambahan Resistor dan boleh terus disambung pada ground seperti berikut:
    inputpullupbutton

Untuk tutorial ini, kami akan fokuskan penggunaan INPUT_PULLUP sahaja kerana sambungannya lebih mudah.

Dalam tutorial ini, komponen-komponen berikut perlu disediakan:

  1. Arduino Uno (atau yang lain) (1 unit)
  2. Traffic Light Module atau LED bersama Resistor 220 ohm (1 unit)
  3. Jumper cable module yang disediakan (1 unit)
  4. Push Button (1 unit)
  5. Breadboard (1 unit)

LANGKAH #1: SAMBUNGAN LITAR

Sambungkan litar anda seperti gambarajah berikut:

Digital Input 1

LANGKAH #2: SAMBUNGKAN ARDUINO PADA USB KOMPUTER

sambung-arduino

LANGKAH #3: CODING/SKETCH 

Copy sketch di bawah dan pastekan dalam Arduino IDE anda.

//Tutorial #3 : Digital Input
//Code disediakan oleh MatGyver.my

void setup() {
// masukkan code setup di sini, Void Setup berjalan sekali sahaja
  pinMode(2, OUTPUT); //LED HIJAU
  //declare pin 2 sebagai digital output
  pinMode(5, INPUT_PULLUP); //PUSH BUTTON
  //declare pin 5 sebagai digital input PULLUP

  //Coding di bawah memastikan semua LED dalam keadaan OFF
  //ketika Start-Up
  digitalWrite(2,LOW);
}

void loop() {
// masukkan code utama di sini, untuk program yang berulang

  //Baca kondisi butang di pin 5
  //Jika keadaan butang diTEKAN, ia memberi value LOW (dengan INPUT_PULLUP)
  if (digitalRead(5) == LOW){
  //Jika Pin 5 LOW(ditekan) , Nyalakan LED Hijau di Pin 2
  digitalWrite(2,HIGH);//Green LED
  }

  //Baca kondisi butang di pin 5
  //Jika keadaan butang diLEPAS, ia memberi value HIGH (dengan INPUT_PULLUP)
  if (digitalRead(5) == HIGH){
  //Jika Pin 5 HIGH(diLEPAS) , OFF-kan LED Hijau di Pin 2
  digitalWrite(2,LOW);//Green LED
  }
}

Atau, anda boleh download file sketch .ino untuk tutorial ini di URL berikut:

Setelah sketch diupload, LED Merah akan menyala apabila butang ditekan, dan LED “Off” apabila butang dilepas.

Ini merupakan asas wiring dan coding butang On/Off untuk mana-mana project, di mana, apabila butang ditekan, Arduino akan supply Digital 5V pada Output Pin.

KOMPONEN PENTING DALAM TUTORIAL INI

  1.  Declare pin input sebagai INPUT_PULLUP dalam Void Setup()
    void setup() {
     pinMode(5, INPUT_PULLUP);
     //declare pin 5 sebagai Input_Pullup
    }                                                 
    
  2. Membaca Kondisi Pin Input dengan algorythm digitalRead()

    digitalRead(5);
    //membaca kondisi Pin 5                        
    
  3. Memberi arahan pada Arduino untuk melaksanakan sesuatu apabila Pin berubah kondisi dengan menggunakan algorythm if(*statement*)
    if (//--sesuatu berlaku--//){
    //nyatakan apa aktiviti Arduino perlu lakukan
    }
    

    Di atas adalah basic IF Statement, di bawah adalah algorythm yang digunakandalam tutorial ini.

    //Jika keadaan butang diTEKAN, ia memberi value LOW (dengan INPUT_PULLUP)
    if (digitalRead(5) == LOW){
    //Jika Pin 5 LOW(ditekan) , Nyalakan LED Hijau di Pin 2
    digitalWrite(2,HIGH);//Green LED
    }
    

TAMBAHAN (Serial Monitor)

Dalam tutorial tambahan ini, anda akan pelajari bagaimana melihat jenis data output yang dikeluarkan apabila butang ditekan dengan Digital Input.

Data akan di paparkan pada Serial Monitor.
Untuk memahami asas Serial Monitor, ikuti artikel berikut:

  • Asas Serial Monitor

SAMBUNGAN WIRING

T3 - DIGITAL INPUT TAMBAHAN_bb
Sambungkan Push-Button pada Arduino seperti rajah ini

CODING DAN SKETCH
Copy sketch di bawah dan pastekan dalam Arduino IDE anda, kemudian Upload.

//Tutorial #3-T : Digital Input Tambahan
//Code disediakan oleh MatGyver.my

void setup() {
// masukkan code setup di sini, Void Setup berjalan sekali sahaja
 Serial.begin(9600);
 // mulakan Serial Monitor pada kelajuan Baud Rate 9600
 
 pinMode(5, INPUT_PULLUP); //PUSH BUTTON
 //declare pin 5 sebagai digital input PULLUP
}

void loop() {
// masukkan code utama di sini, untuk program yang berulang

 //Baca kondisi butang di pin 5
 //Jika keadaan butang diTEKAN, ia memberi value LOW (dengan INPUT_PULLUP)
 if (digitalRead(5) == LOW){
 //Jika Pin 5 LOW(ditekan) , Printkan data atau value pin tersebut
 Serial.println(digitalRead(5));
 }

 //Jika keadaan butang diLEPAS, ia memberi value HIGH (dengan INPUT_PULLUP)
 if (digitalRead(5) == HIGH){
 //Jika Pin 5 HIGH(diLEPAS) , Printkan data atau value pin tersebut
 Serial.println(digitalRead(5));
 }
 
delay(100);
//berikan sedikit delay pada loop supaya Serial Monitor tidak Over-Load
}

Atau, anda boleh download file sketch .ino untuk tutorial ini di URL berikut:

Setelah sketch diupload, buka Serial Monitor dengan menekan Icon di atas-kanan IDE:

serial-monitor

Selepas Serial Monitor dibuka, anda akan mendapat bacaan “1” yang berderet ke bawah. Ini menunjukkan Push Button “TIDAK DITEKAN” dan mengeluarkan output signal HIGH atau bersamaan dengan “1”.

Serial Monitor - DI

Apabila butang ditekan, bacaan akan menunjukkan “0” bermakan signal LOW.

Teruskan dengan Tutorial #4 melalui URL di bawah:

Senarai Tutorial asas Arduino MatGyver.my :

Published by Mat Gyver

Peneraju Komuniti Digital Maker Malaysia. Pembangunan Komuniti diUtamakan.

One thought on “Tutorial #3: Digital Input dengan Push Button

Tinggalkan Jawapan

Masukkan butiran anda dibawah atau klik ikon untuk log masuk akaun:

WordPress.com Logo

Anda sedang menulis komen melalui akaun WordPress.com anda. Log Out /  Tukar )

Twitter picture

Anda sedang menulis komen melalui akaun Twitter anda. Log Out /  Tukar )

Facebook photo

Anda sedang menulis komen melalui akaun Facebook anda. Log Out /  Tukar )

Connecting to %s

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

%d bloggers like this: