Wednesday, 8 February 2017

Arduino Restart Project #1: Control LED On/Off Using PushButton


Hasil gambar untuk welcome back

Intro

After such a long..long time, finally I am back. Untuk menyegarkan ingatan kita semua kita mulai dulu dengan proyek sederhana yaitu Mengontrol Status On/Off dari LED Lamp Menggunakan PushButton.

What We will Need

Komponen yang kita butuhkan tidak banyak, antara lain:
  • Board Arduino Uno
  • Breadboard
  • LED Lamp
  • Resistor 10K
  • PushButton
  • Perkabelan (Male-Male Jumper)

Circuit Schematic


Let's Start to Build It

Karena sudah lama tidak digunakan lagi, board arduino harus diuji untuk mengetahui apakah masih berjalan dengan baik. Apalagi melihat kondisi fisiknya saat ini.

1. Arduino Testing by Blinking the LED embedded on the Board

Untuk menguji apakah arduino berjalan dengan baik (dapat mengeksekusi kode yang kita buat), cukup upload program Blink ke board dan kemudian perhatikan apakah LED di dekat pin 13 benar-benar "kedap-kedip".

/*
  Blink
  Turns on an LED on for one second, then off for one second, repeatedly.

  Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO 
  it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to
  the correct LED pin independent of which board is used.
  If you want to know what pin the on-board LED is connected to on your Arduino model, check
  the Technical Specs of your board  at https://www.arduino.cc/en/Main/Products
  
  This example code is in the public domain.

  modified 8 May 2014
  by Scott Fitzgerald
  
  modified 2 Sep 2016
  by Arturo Guadalupi
  
  modified 8 Sep 2016
  by Colby Newman
*/


// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}
Interesting Part:
Arduino versi terbaru menyediakan library untuk program-program sederhana yang biasanya harus kita ambil di website-nya. Interesting..


Hasilnya:


2. LED Testing by Blinking the LED

Selain menguji apakah board berjalan dengan baik, kita juga harus memastikan apakah komponen-komponen lain juga bekerja dengan baik. Dari segi kode tidak ada yang diubah, cukup "ditempelkan" LED ke pin 13 dan Ground.

const int LED = 13;

void setup() {
  // put your setup code here, to run once:
  pinMode(LED, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(LED, HIGH);
  delay(1000);
  digitalWrite(LED, LOW);
  delay(1000);
}
Hasilnya:


3. The Next Testing

Testing ini bukan suatu keharusan. Ini saya lakukan karena kerajinan saja, hehe
Dari segi kode juga tidak ada perubahan (masih pakai kode sebelumnya), cukup bongkar-pasang rangkaiannya saja.

Hasilnya:


4. The First Trial: The First Failure

// Example 02: Turn on LED while the button is pressed
#define LED 13 // the pin for the LED
#define BUTTON 7 // the input pin where the
// pushbutton is connected
int val = 0; // val will be used to store the state
// of the input pin
void setup() {
pinMode(LED, OUTPUT); // tell Arduino LED is an output
pinMode(BUTTON, INPUT); // and BUTTON is an input
}
void loop(){
val = digitalRead(BUTTON); // read input value and store it
// check whether the input is HIGH (button pressed)
if (val == HIGH) {
digitalWrite(LED, HIGH); // turn LED ON
} else {
digitalWrite(LED, LOW);
}
}

Suatu keharusan memang setiap mengerjakan sesuatu harus salah dulu. Dan malah rugi kalau tidak pernah berbuat kesalahan karena kita nggak bakal dapat insight, pengalaman, ilmu baru atau apalah. Kesalahan ini sebetulnya kesalahan yang pernah saya lakukan sebelumnya (ternyata belajar dari kesalahan itu mudah diucapkan sudah diimplementasikan) yaitu salah beli. Karena terburu-buru, saat penjaga toko bilang, mau PushButton yang mana, yang on/off? Saya langsung iyakan tanpa cek dan ricek merasa "asal" nama barangnya PushButton sepertinya tidak masalah. Dan jeng..jeng.. dugaan saya salah besar. Ternyata PENTING untuk mengetahui info soal barang yang kita beli, jangan asal terima saja apa yang ditawarkan, KENALI DULU! (maaf pakai tanda seru)

Hasilnya:


5. The Not-So-Right

Sekarang PushButtonnya sudah diganti, rangkaiannya sudah dibongkar pasang, di bolak-balik, dipastikan dengan skema yang ada di referensi (sebelumnya saya sempat salah masang pin) ketukar pin yang di-slot untuk LED malah ke pasang di kaki PushButton, aduh!

Hasilnya:


Kesimpulan:

Menurut saya (belum tentu benar), ada semacam "bug" di hardwarenya (PushButton). Pertama, karena saya perlu effort lebih untuk memasang PushButton ke Breadboard. Kedua, PushButton harus ditekan dengan kekuatan super, agar sesuai dengan keinginan kita.

Atau..

Saya coba googling ternyata ada skema rangkaian yang berbeda untuk memasang PushButton-nya dan mungkin menjadi jawaban dari persoalan yang dihadapi ini.

Reference

Referensi yang saya gunakan adalah buku saktinya para pemula arduino yaitu:
Getting Started with Arduino karangan Massimo Banzi

Hasil gambar untuk getting started with arduino


No comments :

Post a Comment

Views

Designed By Blogger Templates