Skip to main content

[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, mari kita mulai membuat lampu yang bisa terang-gelap dengan sendirinya. (Gelap di sini berarti tidak terang).


1. Percobaan Pertama Pertama, yang perlu kita siapkan adalah:



Arduino (saya menggunakan Arduino Uno R3)
Kabel Jumper
Resistor, dan
Lampu LED

Setelah semuanya tersedia, susun rangkaian seperti berikut:







Setelah itu, hubungkan Arduino dengan PC.

Jalankan Program Arduino yang telah terinstall di PC tersebut dan ketikkan kode berikut:

// Example 04: Fade an LED in and out like on
// a sleeping Apple computer
const int LED = 9; // the pin for the LED
int i = 0; // We’ll use this to count up and down
void setup() {
    pinMode(LED, OUTPUT); // tell Arduino LED is an output
}

void loop(){
    for (i = 0; i < 255; i++) { // loop from 0 to 254 (fade in)
        analogWrite(LED, i); // set the LED brightness
        delay(10); // Wait 10ms because analogWrite
        // is instantaneous and we would
        // not see any change
    }
    for (i = 255; i > 0; i--) { // loop from 255 to 1 (fade out)
        analogWrite(LED, i); // set the LED brightness
        delay(10); // Wait 10ms
    }
}


Kemudian verify dan upload program ke arduino.

Hasilnya akan seperti ini:












Tadaaa!

Lampu kita terang dan gelap otomatis...


2. Percobaan Kedua


Pada percobaan kedua ini, kita akan membuat lampu seperti pada percobaan pertama, tapi bisa dimatikan dan dihidupkan. Jadi, ketika kita menekan tombol secara cepat dan melepaskannya, maka lampu akan hidup atau mati. Tapi jika kita menekan tombol dan menahannya, lampu akan terang-gelap terang-gelap berubah keterangannya.

Alat yang dibutuhkan sama dengan percobaan pertama.

Buatlah rangkaian seperti pada percobaan lampu push button berikut, tapi gunakan pin 9 untuk LED, bukan pin 13.

Setelah itu, ketikkan kode berikut:






// Example 05: Turn on LED when the button is pressed


// and keep it on after it is released


// including simple de-bouncing.


// If the button is held, brightness changes.


const int LED = 9; // the pin for the LED


const int BUTTON = 7; // input pin of the pushbutton


int val = 0; // stores the state of the input pin


int old_val = 0; // stores the previous value of "val"


int state = 0; // 0 = LED off while 1 = LED on


int brightness = 128; // Stores the brightness value


unsigned long startTime = 0; // when did we begin pressing?


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


// yum, fresh


// check if there was a transition


if ((val == HIGH) && (old_val == LOW)) {


state = 1 - state; // change the state from off to on


// or vice-versa


startTime = millis(); // millis() is the Arduino clock


// it returns how many milliseconds


// have passed since the board has


// been reset.


// (this line remembers when the button


// was last pressed)


delay(10);


}


// check whether the button is being held down


if ((val == HIGH) && (old_val == HIGH)) {


// If the button is held for more than 500ms.


if (state == 1 && (millis() - startTime) > 500) {


brightness++; // increment brightness by 1


delay(10); // delay to avoid brightness going


// up too fast


if (brightness > 255) { // 255 is the max brightness


brightness = 0; // if we go over 255


// let’s go back to 0


}


}


}


old_val = val; // val is now old, let’s store it


if (state == 1) {


analogWrite(LED, brightness); // turn LED ON at the


// current brightness level


} else {


analogWrite(LED, 0); // turn LED OFF


}


}




Setelah di verify dan di upload, maka hasilnya seperti berikut:















Sekian percobaan dengan Arduino kali ini. Semoga bermanfaat.

Sampai jumpa di posting berikutnya.

Comments

  1. artikelnya bagus gan, kunjungi juga website saya di " MEMBUAT LAMPU LED BERKEDIP DENGAN ARDUINO UNO R3 "

    atau link.nya di http://www.argayudhaadhiprama.com/membuat-lampu-led-berkedip-arduino-uno-r3/

    trimakasih dari argayudhaadhiprama.com

    ReplyDelete
  2. artikelnya bagus gan, kunjungi juga website saya di " MEMBUAT LAMPU LED BERKEDIP DENGAN ARDUINO UNO R3 "

    atau link.nya di http://www.argayudhaadhiprama.com/membuat-lampu-led-berkedip-arduino-uno-r3/

    trimakasih dari argayudhaadhiprama.com

    ReplyDelete

Post a Comment

Popular posts from this blog

Derita Laptop Ganti: Sahabat Lama Menjadi Asing Bagiku

Sekitar satu tahun yang lalu, aku dan kakakku Mba Lala , tukeran laptop karena ada sedikit masalah dengan OS laptop mba lala, jadi aku memutuskan untuk membawanya buat dibenerin di comlabs aja. Satu tahun berlalu, hari demi hari aku lalui bersama laptop mba lala itu. Susah dan duka (susah dan duka ?) aku lalui bersama laptop toshiba hitam berkulit berudu. Ada kalanya seneng, ada kalanya juga engga. Ada kalanya dia responsif, tapi ada kalanya juga bebel ngambek engga nurut gerakan jari jemari yang bikin hati kesel. Tapi lebih dari itu, tanpa terasa ikatan batin antara aku dan laptop yang engga bisa aktifin bluetooth itu terjalin begitu kuat. Aku seolah tahu dimana letak file movie hanya mengklik ini dan itu dengan mata terpejam bahkan sambil tidur dan mimpi lelap. Aku sudah terbiasa dengan tata letak, environment, dan workspace yang terbangun didalamnya. Dan yang paling penting, laptop tipe satelite itu telah membantuku dalam menyelesaikan berbagai badai tubes dan tucil, membantuku di...

Visiting Animals with My Family

Big day, big day, big day.... /XD Yup, this is a very big day, for me. Why? Because, my parents, and my brother, are coming. I'm pretty excited, but also nervous. You know how it feels when you have a very messy room, and you got your parents are coming? Or you don't know what to do with your family as you have a tiny sized room? Arrhg /shock, it's complicated. But very exciting too. X-D First time of our journey, we were arriving at Sabuga. One of the lovely building style in here (ITB) is the classical stone that covers almost in all the part of the building... Oho, what is this? :P I was not using a professional camera, and I'm not a photographer too, so I couldn't make a good one. hehe. Bye the way, this is under the ground pipe.. Some places in ITB are unique (people said that), and one of them are 'echo point'. This place, if you speak up loud enough, will be able to spread out into all around of ITB and everyone's gonna...

Ramadhan 1435H & Silaturahmi keluarga

Baju baru alhamdulillah, tuk dipakai di hari raya, Tak punya pun tak apa-apa, masih ada baju yang lama. Sepatu baru alhamdulillah, tuk dipakai di hari raya, Tak punya pun tak apa-apa, masih ada sepatu yang lama. Kue baru alhamdulillah, tuk dimakan di hari raya, Tak punya pun tak apa-apa, masih ada kue yang lama. /wahaha Alhamdulillah, tidak terasa ramadhan telah berlalu. Rasa syukur ku kepada Allah SWT. karena telah diberi kesempatan untuk bisa bertemu ramadhan tahun ini sampai selesai. Meskipun Ramadhan udah selesai, semoga hati dan jiwa tetap fitri dan selalu terjaga. Ramadhan kali ini sangat menyenangkan meskipun setengahnya aku jalanin tanpa keluarga, tanpa sanak saudara yang menemani jerih payah puasa. /sweat Tapi ngga papa, yang penting inti dari ibadah bulan ramadhan tetep didapat. #intinya apa ya? Seperti ramadhan-ramadhan sebelumnya, setiap satu minggu sebelum lebaran ibu (dan aku) pasti bikin kue-kue penghias meja. Kali ini pun sama. Aksi bikin kue pun terjadi...