Tugas 2 : LED Fade in dan Fade Out #Bagian2

Sebelumnya, silahkan melihat tulisan saya pada bagian pertama pada link berikut : Tugas 2 #Bagian1

Susunlah rangkaian seperti gambar dibawah ini :

Rangkaian yang digunakan untuk melakukan percobaan example 5
Secara umum kita hanya perlu melakukan modifikasi sederhana dari rangkaian sebelumnya. Tambahkan push button sebagai input untuk mengatur cahaya dari lampu LED. Jalankan kode yang diberikan pada example 5 

// 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
  startTime = millis(); // millis()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 go
   // up too fast   
    if (brightness > 255) {
    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 menjalankan kode diatas, maka kita bisa melihat hasil percobaannya pada video dibawah ini :



Dari video diatas bisa kita lihat bahwa pada saat LED dalam keadaan OFF dan push button ditekan, maka lampu akan mengalami efek fade in dan fade out persis seperti pada percobaan pertama.

Namun tentu ada beberapa perbedaan dari hasil yang akan kita dapatkan. Ketika push button tidak lagi ditekan, maka lampu LED akan menyala dengan tingkat brightness tertentu. Kondisi brightness ini berada pada rentang 0-255 (tergantung kondisi terakhir kita melepas push button). Kondisi ini nilainya akan disimpan.

Perlu diperhatikan : Efek ini tidak berlaku sebaliknya, saat kita menekan push button dari keadaan lampu LED ON ke lampu LED OFF.

You May Also Like

2 komentar