Jumat, 20 November 2015

Membuat RUNNING LED menggunakan Arduino [Simulation & Syntax Program]

Percobaan kali ini adalah membuat RUNNING LED, yakni sebuah rangkaian LED yang disusun sebanyak lima buah dimana LED akan menyala bergantian dari kiri ke kanan dan dari kanan ke kiri. Kontrol gerakan LED dilakukan dengan menggunakan dua push button.
Perlu diperhatikan bahwa push button dirangkai menggunakan resistor pull down. Jadi ketika tombol ditekan, maka akan menghasilkan logika HIGH, dan ketika dilepas akan menghasilkan logika LOW.

Script Program

/* Program Running LED
Percobaan 3 Mikrokontroler
*/
                            // Pengaturan output menggunakan Array
int ledpins[]={2,3,4,5,6};  // Port Output yang digunakan hanya lima dari port 2 ke 5
int i=0;
int val=0;                  // Variabel untuk menyimpan data
int state=0;
int val1=0;
int state1=0;
int old_val=0;
int old_val1=0;

void setup()
{                               // inisialisasi output
  for(int i=0; i<5; i++)        // jika i kurang dari lima maka nilai i ditambah 1
  pinMode(ledpins[i], OUTPUT);
  pinMode(9, INPUT);            // Tombol Kiri ke kanan
  pinMode(10,INPUT);            // Tombol Kanan ke kiri
  Serial.begin(9600);
}

void loop()
{
  val=digitalRead(9);      // Membaca tombol dan memasukkannya ke variabel agar bisa di interlock
  val1=digitalRead(10);
 
  if((val==HIGH) && (old_val==LOW)){      // Jika tombol kiri ke kanan ditekan maka
    state=1-state;                        // state akan bernilai satu, dan jika state bernilai satu dan tombol ditekan maka state bernilai 0
  delay(10);                              // delay digunakan untuk mencegah bouncing
  }
  old_val=val;                            // old val digunakan untuk mencegah bouncing juga
 
  if((val1==HIGH) && (old_val1==LOW)){
    state1=1-state1;
  delay(10);
  }
  old_val1=val1;

  if (state==1)
  //(digitalRead(9)==HIGH)
{
  i++;               // tambah i satu per  satu
  while(i==5){i=0;} 
  Serial.println(i);
  digitalWrite(ledpins[i],HIGH);
  delay(200);
  digitalWrite(ledpins[i],LOW);
}

if (state1==1)
//(digitalRead(10)==HIGH)
{
  while(i==0){i=5;}
  Serial.println(i);
  i--;
  digitalWrite(ledpins[i],HIGH);
  delay(200);
  digitalWrite(ledpins[i],LOW);
}
}

0 komentar:

luvne.com ayeey.com cicicookies.com mbepp.com kumpulanrumusnya.com.com tipscantiknya.com

Posting Komentar