Yayasan Peduli Fajar Imani

LED Chase Effect di Arduino

Ditulis oleh agan

بِسْــــــــــــــــمِ اﷲِالرَّحْمَنِ اارَّحِيم

Kali ini kita akan membuat LED yang memiliki efek bergerak saling mengejar. Disini kita akan belajar mengenai konsep dari arrays.

Komponen yang diperlukan

  • 10 buah LED 5mm
  • 10 buah  Resistors


Skema




Sketch

// Project 5 - LED Chase Effect
byte ledPin[] = {4, 5, 6, 7, 8, 9, 10, 11, 12, 13}; // Create array for LED pins
int ledDelay = 65; // delay between changes
int direction = 1;
int currentLED = 0;
unsigned long changeTime;
 

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


void loop() {
  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

byte ledPin[] = {4, 5, 6, 7, 8, 9, 10, 11, 12, 13};

Perintah diatas untuk mendeklarasikan variable dengan tipe array dengan tipe data byte. semua element dapat diakses melalui nama yang sama, dalam hal ini adalah variable ledPin. contoh ledPin[0] akan menunjukkan nilai 4.

Tanda [] setelah nama variable menunjukkan pada compiler tipe array adalah array variable. Pada array ini kita inisialisasi nilai untuk menunjukkan pin Arduino.

Jika hendak mengdeklarasikan array tanpa inisialisasi nilai, kita perlu memberi tahu Arduino besar dari array. Contoh:  byte ledPin[10];

Pada sketch kita, variable array ini digunakan untuk mengakses LED. Pada fungsi loop(), kita cek apakah ledDelay sudah dilewati sejak perubahan LED terakhir, jika sudah, maka fungsi ChangeLED() akan dipanggil.

Yang dilakukan fungsi ChangeLEDadalah mematikan semua LED dan menyalakan LED yg harus aktif saat ini., yang disimpan di variable currentLED.

Setelah currentLED dinyalakan, nilai currentLED akan ditambahkan atau dikurangkan, berdasar variable direction. Variable direction ditentukan oleh blok if, jika currentLED bernilai 9, direction akan -1, bila currentLED bernilai 0 maka direction akan +1;

Program kita akan membuat nyala LED bergerak bolak-balik.

Blog, Updated pada: 23:35:00
Comments
0 Comments

0 comments:

Post a Comment

Masih Bingung atau Hal Lainnya? Silahkan Bertanya di Kolom Komentar :)

~ Dilarang SARA
~ Dilarang PORNOGRAPHY
~ Dilarang SPAM
~ Dilarang MENINGGALKAN LINK AKTIF
~ Maaf untuk Anonymous, tidak bisa Berkomentar.

Apabila Komentar anda belum muncul, Tunggu sampai di Moderasi.
Terimakasih atas Perhatiannya.


English French German Spain Italian Dutch Russian


Back to top