Mahir Arduino Sketch dan Elektro secara praktek

10 - Project LED Chase Advanced

Biarkan layout sirkuit  pada proyek 09, kita akan menambahkan potentiiometer pada rangkaian tersebut. Dengan potentiometer kita dapat mengubah kecepatan LED saat "berlari".


Komponen yang diperlukan


Skema




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 kita cukup mirip dengan proyek sebelumnya. Kita hanya menambahkan potentiometer pada sisi hardware dan pada sisi program kita menambahkan perintah untuk membaca input dari potenstiometer dan digunakan untuk mengatur kecepatan LED berlari.

int potPin = 2;
perintah diatas mendeklarasikan variable untuk menampung input dari potentiometer, tipe data adalah integer. 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);
Kita membaca input dari potentiometer dan meng-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
  1. Dengan mengubah program, Anda dapat membuat efek bouncing. Led bergerak dari kiri ke kanan, lalu langsung start dari kanan ke kiri.
  2. Tantangan kedua, ubah juga program Anda untuk efek bouncing bola yang makin lama makin melemah.

Artikel Terkait
Apa itu poteionsiometer

Artikel sebelumnya Proyek Led Chase Effect
Artikel selanjutnya Proyek Led Dimmer 

No comments:

Post a Comment