Selasa, 11 Juni 2013

Simulasi Papan Tombol Cerdas Cermat

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 :
  1. Lampu led 3 warna 1x                      
  2. Resistor 10 KΩ 6x                            
  3. Resistor 1 KΩ 3x                              
  4. Transistor C547B 3x                         
  5. Buzzer 3x                                          
  6. Push Button 3x                                 
  7. Bread board                                      
  8. Kabel jumper                                     
  9. 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);
}

Tidak ada komentar:

Posting Komentar

Gunakan bahasa yang sopan