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);
}
}
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:
Posting Komentar