Skip to main content

[Arduino Project-1] -- PushButton Lamp

Apa sih Arduino?

Salam,
Pada posting kali ini akan menjelaskan tentang tugas kuliah Interaksi Manusia dengan Komputer dan Antar Muka, yaitu membuat lampu push button menggunakan Arduino.
Saya anggap pembaca telah mengetahui apa itu arduino. Jika belum tahu, akan saya jelaskan sedikit.
Arduino bisa dikatakan sebagai alat untuk membuat sebuah prototye. Kita bisa  membuat apapun (hampir apapun) dengan menggunakan arduino. Seperti membuat sensor panas/dingin,bahkan hingga membuat robot.
Arduino sebenarnya diperuntukkan bagi para artist maupun designer yang memerlukan kemudahan dalam merancang produk yang hendak mereka buat. Jadi, untuk menggunakannya tidak diperlukan keterampilan khusus yang tinggi karena di design untuk kemudahan (tentunya setelah tahu dasar-dasarnya).
Seperti apa sih Arduino itu?
Di bawah ini gambarnya

Arduino Uno R3



Image Source: https://dlnmh9ip6v2uc.cloudfront.net//images/products/1/1/0/2/1/11021-01a.jpg

Arduino ada banyak jenisnya yang bisa dilihat di website resminya: website arduino.

Bekerja dengan Arduino

Untuk bekerja dengan Arduino yang harus dipersiapkan adalah:
  • Arduino
Untuk membemi Arduino  bisa langsung membeli di situs resminya, atau bisa membeli di distributor resmi, untuk Indonesia, bisa beli di sini, atau di sini. Daftar lengkap distributor Indonesia ada di situs resmi arduino.
  • Software (untuk diinstall di komputer kita) 
Setelah itu, kita perlu menginstall software arduino untuk mendesign sketsa kita. Softwarenya bisa didownload di download software arduino, dan pilih sesuai dengan komputer kita (windows / mac).
Setelah di download, tinggal install dan ikuti petunjuknya.
  • Kabel Port untuk menghubungkan Arduino dengan Komputer,
Lampu Push Button

Lampu push button yang akan kami buat cara kerjanya sederhana, yaitu ketika push-button ditekan sekali dan dilepas, lampu yang awalnya mati akan menyala. Kemudian jika ditekan sekali lagi dan dilepas, lampu yang menyala akan mati.

Cara kerja semacam  itu banyak kita jumpai di berbagai alat di sekitar kita seperti tombol untuk menyalakan komputer atau laptop, atau tombol-tombol lain. Sayangnya, bekerja dengan push button untuk membuat tombol seperti itu tidak terlalu mudah, tapi juga tidak terlalu susah. Pasalnya, kerja default dari push button (misalnya untuk membuat tombol lampu) itu ketika tombol ditekan lampu menyala, dan ketika tombol dilepas, lampu mati. Bisa dibayangkan jika di malam hari kita harus memencet tombol sepanjang malam agar lampu tetap menyala. Sangat tidak diinginkan.


Cara kerja push button:

how push button works




Lampu Push Button dengan Arduino


 Sebelumnya, yang kita butuhkan adalah:
  • Arduino, kami menggunakan Arduino Uno R3,
  • Bread Board,
  • Beberapa Jumper, semacam kabel kecil untuk menghubung-hubungkan,
  • Push Button,
  • Resistor
  • Lampu led 
  • Kabel port penghubung Arduino dengan komputer
  • Software Arduino (untuk editor) yang telah terinstall di komputer   
Setelah semua tersedia, yang pertama kali kita lakukan adalah membuat rangkaia, langkahnya:


  1. Pasag lampu led ke Arduino dengan kaki pendek(-) ke ground dan kaki panjang (+) ke port 13.
  2. Pasang push button ke bread board.
  3. Pasang resistor dengan posisi satu kaku terhubung dengan salah satu kaki push button dan kaki resistor yang lain tidak terhubung ke manapun.
  4. Pasang sebuah jumper ke port Arduino no 7, sejajar dengan yang ada lampunya, dan hubungkan ke kaki push button yang terhubung dengan resistor.
  5. Hubungkan kaki resistor satunya (yang tak terhubung ke manapun) ke port arduino 5V, ada di seberang lampu.
  6. Hubungkan kaki push button lainnya (yang belum terhubung kemanapun) dengan post arduino ground, ada di samping port 5V.
 Ilustrasi:
rangkaian
Setelah itu, hubungkan arduino dengan komputer kita.
Hasilnya seperti ini:
hasil rangkaian kami

Pada awalnya, lampu seharusnya tidak menyala, pada foto di atas, lampu menyala karena sebelumnya sudah ada program di Arduinonya.


Setelah selesain membuat rangkain, selanjutnya kita perlu membuat kode program.

Jalankan software Arduino yang telah kita install di pc. Akan muncul jendela seperti berikut:


jendela program arduino

Lalu ketikkan kode berikut:


int ledPin = 13;
int inPin = 7;
int lamp = LOW; //variable mengecek state lampu
void setup()
{
    pinMode(ledPin, OUTPUT);
    pinMode(inPin, INPUT);
}

void loop()
{
    int saklar = digitalRead(inPin); //Variable untuk mengecek saklar
    lamp = digitalRead(ledPin); //inisiasi var lamp
    if(saklar == LOW) //cek apakah saklar tidak dipencet
    {
        if (lamp == HIGH){ //cek apakah lampu menyala
            lamp = LOW; //jadikan lampu mati
        }
        else { //jika lampu mati
            lamp = HIGH; //jadikan menyala
        }
        digitalWrite(ledPin, lamp); //asign lamp ke ledPin
    }else{
    }
    delay(200); //delay looping agar hasil lebih halus
}

Pengecekkan saklar dilakukan saat saklar ==  LOW. Hal ini karena yang kita inginkan adalah tepat setelah tombol ditekan, lampu menyala atau mati yang berarti berada pada kondisi saklar == low.
Delay digunakan untuk mengatur jarak looping. jika tidak ada delay, looping berlangsung sangat cepat dan hasilnya lampu terkadang menyala ketika dipencet dan terus menyala ketika dipencet sekali lagi, atau sebaliknya. Hal ini disebabkan karena ketika kita menekan tombol, looping terus terjadi banyak kali dan menghasilkan output high atau low karena proses pengecekkan lampu, hasilnya output yang dihasilkan tepat pada saat kita melepas tombol akan menjadi ramdom. Hal ini yang menyebabkan sedikit susah. Dengan adanya delay, loop yang dilakukan diperlambat agar ketika kita menekan tombol, loop hanya dilakukan sebisa mungkin maksimal hanya sekali saja, sehingga hasil bisa akurat.

Selanjutnya, klik tombol verify untuk meng-compile kode. setelah itu klik tombol upload untuk memasukkan kode ke arduino.



Hasilnya, lampu akan menyala ketika push button ditekan dan tetap menyala jika push button dilepas. Dan jika ditekan sekali lagi, lampu mati.


Sediki Masalah

Seperti dijelaskan di atas bahwa delay digunakan untuk mengatur agar looping berlangsung tidak terlalu cepat. Hal itu berhasil. Lampu menyala ketika ditekan dan mati setelah ditekan lagi.

Akan tetapi hal itu sedikit merepotkan, karena lamanya kita menekan tombol akan berpengaruh. Terkadang, jika terlalu lama atau terlalu cepat, lampu tidak berubah dari kondisi sebelumnya. Hal ini dikarenakan dan sangat bergantung pada delay yang digunakan, dalam hal ini kita mengatur waktu delay 200ms atau sekitar 0,2 second. Artinya,ketika menekan, kita harus mengkira-kira lamanya agar mendekati 200ms baru dilepas.

Kami ingin yang lebih 'stabil' yang lampunya lebih 'rensponsif'. Sehingga kami memperbaiki kodenya menjadi seperti berikut:

Kode ini kami ambil dari sini dengan sedikit penambahan dan perubahan:
int switchPin = 7; // set pin 7
int val; // variabel untuk membaca status pin
int buttonState; // variable untuk membaca state terakhir button
int ledPin = 13; //set pin 13
int led = LOW; //variable mengecek lampu
void setup() {
    pinMode(switchPin, INPUT); // Set switch sebagai input
    pinMode(ledPin, OUTPUT); // Set ledPin sebagai output
    Serial.begin(9600); // Set up serial communication at 9600bps
    buttonState = digitalRead(switchPin); // membaca initial state
}

void loop(){
    val = digitalRead(switchPin); // baca input dan assign ke val
    if (val != buttonState) { // state button berubah!
        if (val == LOW) { // cek jika button ditekan
            if(led == LOW){
                led = HIGH;
            }else{
                led=LOW;
            }
            digitalWrite(ledPin, led);
        } else { // button tidak ditekan
        }
    }
    buttonState = val; // simpan new state
}
Hasilnya, tombol lebih responsif. Tidak terjadi harus menekan beberapa kali untuk menyalakan lampu atau untuk mematikannya.
Berikut video hasil kerja kami:




Anggota kelompok:
  1. Subkhan Sarif
  2. Fady Noor Ilmi
  3. Mekaputra Yudahandika
  4. Nurafni Eka Agustina
  5. Arya Dhanang Dhewangga

Writen by:
Subkhan Sarif / 18211004


Sumber:
[1] http://www.ladyada.net/learn/arduino/lesson5.html
[2]  http://www.arduino.cc

Comments

Popular posts from this blog

[Arduino Project -- 5] -- Using Keypad and LCD Screen at Once to make simple Calculator

Good day. This is my fifth times of my post about Arduino. We've learned about how to create something using Arduino from the very beginning that was just make a simple push button, till we made something more difficult which was creating a temperature censor and displaying the result in the LCD screen. And now, i'm gonna show you how to use a keypad and LCD Screen at once. With these two devices are combined with our Arduino, we are able to make something like a little application. And now, i'm gonna make a simple calculator using them. Stuffs: These are stuffs you are gonna need to prepare An Arduino Uno A BreadBoard Jumper Cables A Keypad A PC which has Arduino App Installed A Potensiometer A Resistor What do we do? First thing we gotta do is to wire our Arduino and keypad as shown below: Actually we dont need the speaker and the led. But I put them when i wired them. And here is my work: It was a little bit confusing i thought. And aft

[Arduino Project-2] -- Lampu Fade in - Fade out dengan PWM

Good Day, Semoga hari-hari selalu menjadi hari baik bagi kita semua. Masih kesengsem sama Arduino, pada postingan kali ini saya akan menjelaskan (kalau bisa disebut) mempraktikan cara membuat lampu LED yang bisa nyala terang dan gelap (fade-in / fade-out ) dengan PWM. Yang akan kita lakukan adalah membuat lampu LED berubah tingkat terangnya (brightness). Sebelumnya kita perlu tahu apa itu PWM. PWM atau Pulse Width Modulation adalah teknik yang dilakukan untuk mengubah tingkat ke terang an (brightness) LED dengan cara mengatur waktu delay. Jika kita memberikan delay pada LED dengan Arduino maka lampu tersebut akan berkedip. Akan tetapi jika delay sangat cepat, maka lampu tersebut terlihat tidak berkedip lagi, melainkan kita bisa mengatur tingkat terang (brightness) lampu tersebut. Jika delay yang sangat cepat tersebut diturunkan kecepatannya sedikit, maka yang terlihat adalah brightness lampu yang turun. Begitu pula sebaliknya. Jika membingungkan, Anda tidak perlu mengingatnya. Baiklah