Proyek 06 – LED Chase Effect Advanced

Masih menggunakan skema pada proyek 05, proyek LED Chase Effect akan menggunakan potentiometer untuk mengubah kecepatan LED.

Komponen

  • 4.7 K.Ohm Rotaray Potentiometer

Skema

Proyek LED Chase Effect

Sketch

byte ledPin[] = {4, 5, 6, 7, 8, 9, 10, 11, 12, 13}; // Create array for LED pins
int ledDelay; // delay between changes
int direction = 1;
int currentLED = 0;
unsigned long changeTime;
int potPin = 2; // select the input pin for the potentiomete

void setup() {
  for (int x=0; x<10; x++) { // set all pins to output
    pinMode(ledPin[x], OUTPUT);
  }
  changeTime = millis();
}

void loop() {
  ledDelay = analogRead(potPin); // read the value from the pot
  if ((millis() - changeTime) > ledDelay) { // if it has been   ledDelay ms since last change
    changeLED();
    changeTime = millis();
  }
}
 
void changeLED() {
  for (int x=0; x<10; x++) { // turn off all LED's
    digitalWrite(ledPin[x], LOW);
  }
  digitalWrite(ledPin[currentLED], HIGH); // turn on the current LED
  currentLED += direction; // increment by the direction value
 
  // change direction if we reach the end
  if (currentLED == 9) {direction = -1;}
  if (currentLED == 0) {direction = 1;}
}

Penjelasan SKetch

Sketch masih mirip dengan proyek sebelumnya, hanya ditambahkan potentiometer pada sisi hardware dan pada sisi program ditambahkan perintah untuk membaca input dari potenstiometer. Input akan digunakan untuk mengatur kecepatan LED.

Perintah yang digunakan untuk membaca input adalah analogRead.

Analog pin dapat membaca voltage dari 0 – 5 volts, dalam integer dari 0 (0 volts) sampai 1.023 (5 volts). Berarti resolusi 4.9mV per unit (5 volts / 1.024 units).

ledDelay = analogRead(potPin);

Adjust delay diantara 0 dan 1023 millisecond dengan menggunakan nilai dari ledDelay yang diperoleh dari input potentiometer. Perhatikan kita tidak perlu mengatur analog sebagai input atau output seperti juga dengan digital pin.

Tantangan Programming

  • Efek bouncing. Led bergerak dari kiri ke kanan, lalu langsung start dari kanan ke kiri.
  • Efek bouncing bola yang makin lama makin melemah.
Sharing is caring: