Simulasi
ini merupakan rangkaian kontrol kerja komponen push button (tombol),
dioda led (lampu) dan buzzer (bell) sejumlah 3x atau sesuai kebutuhan.
Skenario kerja rangkaian seperti halnya lomba adu cepat dalam cerdas
cermat, jika tombol ditekan maka lampu akan menyala dan bell berbunyi.
Dan jika dua tombol atau lebih ditekan, maka hanya bell dan lampu milik
tombol yang ditekan lebih dulu yang akan menyala. Karena tombol yang
ditekan lebih dulu akan mengunci tombol yang lain sehingga tidak dapat
menyalakan bell dan lampu miliknya.
Komponen yang diperlukan :
- Lampu led 3 warna 1x
- Resistor 10 KΩ 6x
- Resistor 1 KΩ 3x
- Transistor C547B 3x
- Buzzer 3x
- Push Button 3x
- Bread board
- Kabel jumper
- Minimum sistem board Arduino Uno
Koneksi komponen :
Penulisan program
//Simulasi Lomba Cerdas Cermat Adu Cepat
const int button1 = 10; //deklarasi pin 10 sebagai button1
const int button2 = 11; //deklarasi pin 11 sebagai button2
const int button3 = 12;
const int buzzerLed1 = 2; //deklarasi pin 2 sebagai buzzerLed1
const int buzzerLed2 = 4;
const int buzzerLed3 = 6;
int buttonState1 = 0; //deklarasi variabel buttonState1
int buttonState2 = 0;
int buttonState3 = 0;
int saklar1 = 0; //deklarasi variabel saklar1
int saklar2 = 0;
int saklar3 = 0;
int tunda = 10; //variabel tunda diberi nilai 10 mili second
void setup ()
{
pinMode (button1, INPUT); //pin button1 sebagai input
pinMode (button2, INPUT);
pinMode (button3, INPUT);
pinMode (buzzerLed1, OUTPUT); //buzzerLed1 sebagai output
pinMode (buzzerLed2, OUTPUT);
pinMode (buzzerLed3, OUTPUT);
}
void loop ()
{
buttonState1 = digitalRead (button1); //membaca sinyal digital (digitalRead) dari
buttonState2 = digitalRead (button2); //pin button1,2,3
buttonState3 = digitalRead (button3);
//Pernyataan perulangan kontrol struktur if
if (buttonState1 == HIGH && saklar2 == 0 && saklar3 == 0) //persyaratan if
{
saklar1++; //variabel saklar1 ditambahkan 1
}
else
{
if (buttonState2 == HIGH && saklar1 == 0 && saklar3 == 0) //persyaratan if ke 2
{
saklar2++; //variabel saklar2 ditambahkan 1
}
else
{
if (buttonState3 == HIGH && saklar1 == 0 && saklar2 == 0)
{
saklar3++;
}
else
{
if (buttonState1 == LOW && buttonState2 == LOW && buttonState3 == LOW)
{ //persyaratan if jika semua tombol low
saklar1 = 0; saklar2 = 0; saklar3 = 0; //variabel saklar1,2,3 = 0
}
}
}
}
if (saklar1 != 0) //persyaratan if tidak sama dengan 0
{
digitalWrite (buzzerLed1, HIGH); //pin buzzerLed1 = high
digitalWrite (buzzerLed2, LOW); //pin buzzerLed2 = low
digitalWrite (buzzerLed3, LOW);
}
else
{
if (saklar2 != 0)
{
digitalWrite (buzzerLed1, LOW);
digitalWrite (buzzerLed2, HIGH);
digitalWrite (buzzerLed3, LOW);
}
else
{
if (saklar3 != 0)
{
digitalWrite (buzzerLed1, LOW);
digitalWrite (buzzerLed2, LOW);
digitalWrite (buzzerLed3, HIGH);
}
else
{
if (saklar1 == 0 && saklar2 == 0 && saklar3 == 0)
{
digitalWrite (buzzerLed1, LOW);
digitalWrite (buzzerLed2, LOW);
digitalWrite (buzzerLed3, LOW);
}
}
}
}
delay (tunda);
}