Program Arduino : Saklar Pemindah Disertai Indikator Led


Pada rangkaian terdiri dari 6 buah tombol yang tersambung ke pin Ao – A5 Arduino. Tombol ini berperan sebagai input signal ke mikrokontroller. Tombol A0 untuk memilih gigi 1, tombol A1 untuk memilih gigi 2, tombol A2 untuk memilih gigi 3, tombol A3 untuk memilih gigi 4, tombol A4 untuk memilih gigi 5 dan tombol A5 untuk memilih netral. Lampu LED yang terpasang pada pin D11 hingga pin D6 berperan sebagai indikator posisi transmisi. Jika diaplikasikan kepada kendaraan, maka rangkaian ini harus disambungkan ke rangkaian interfacing dan aktuator pada sistem transmisi kendaraan yang akan dikontrol.
Untuk proses mengaktifkan transmisi kita tinggal menekan tombol gigi yang diinginkan. Tombol gigi tidak dapat meilih secara acak, tetapi harus bertahap. Tombol Netral juga dapat diaktifkan pada posisi mana saja. Berikut ini adalah kode program arduinonya.
int F;
int tombol1 = A0;
int tombol2 = A1;
int tombol3 = A2;
int tombol4 = A3;
int tombol5 = A4;
int tombol6 = A5;
int led;

void setup ()
{
  pinMode(tombol1, INPUT);
  pinMode(tombol2, INPUT);
  pinMode(tombol3, INPUT);
  pinMode(tombol4, INPUT);
  pinMode(tombol5, INPUT);
  pinMode(tombol6, INPUT);
  for(led=2; led<13; led++)
  {pinMode(led, OUTPUT);}
}

void loop()
{ 
  if(digitalRead(tombol1) == 1)
  {F = 1;}
  else if(digitalRead(tombol2) == 1)
  {F = 2;}
  else if(digitalRead(tombol3) == 1)
  {F = 3;}
  else if(digitalRead(tombol4) == 1)
  {F = 4;}
  else if(digitalRead(tombol5) == 1)
  {F = 5;}
  else if(digitalRead(tombol6) == 1)
  {F = 6;}
  else
  {F = 0;}
  
  switch (F)
  { case 1 : label : digitalWrite(7, LOW);
             digitalWrite(2, HIGH);
             if(digitalRead(tombol5) == 1)
             {digitalWrite(2,LOW);
             break;}
             else if(digitalRead(tombol2) == 1)
             {digitalWrite(2,LOW);
             break;}
             else if(digitalRead(tombol6) == 1)
             {break;}
             else
             {goto label;}
    break;
    case 2 : label2 : digitalWrite(7, LOW);
             digitalWrite(3, HIGH);
             if (digitalRead(tombol1) == 1)
             {digitalWrite(3,LOW);
             break;}
             else if(digitalRead(tombol3) == 1)
             {digitalWrite(3,LOW);
             break;}
             else if(digitalRead(tombol6) == 1)
             {break;}
             else
             {goto label2;}
    break;
    case 3 : label3 : digitalWrite(7, LOW);
             digitalWrite(4, HIGH);
             if(digitalRead(tombol2) == 1)
             {digitalWrite(4,LOW);
             break;}
             else if(digitalRead(tombol4) == 1)
             {digitalWrite(4,LOW);
             break;}
             else if(digitalRead(tombol6) == 1)
             {break;}
             else
             {goto label3;}
    break;
    case 4 : label5 :digitalWrite(7, LOW);
             digitalWrite(5, HIGH);
             if(digitalRead(tombol3) == 1)
             {digitalWrite(5,LOW);
             break;}
             else if(digitalRead(tombol5) == 1)
             {digitalWrite(5,LOW);
             break;}
             else if(digitalRead(tombol6) == 1)
             {break;}
             else
             {goto label5;}
    break;
    case 5 : label6: digitalWrite(7, LOW);
             digitalWrite(6, HIGH);
             if(digitalRead(tombol4) == 1)
             {digitalWrite(6,LOW);
             break;}
             else if(digitalRead(tombol6) == 1)
             {break;}
             else if(digitalRead(tombol1) == 1)
             {digitalWrite(6,LOW);
             goto label;}
             else
             {goto label6;}
    break;
    case 6 :  digitalWrite(7, HIGH);
              digitalWrite(2, LOW);
              digitalWrite(3, LOW);
              digitalWrite(4, LOW);
              digitalWrite(5, LOW);
              digitalWrite(6, LOW);
   break;
    
   default :  digitalWrite(7, HIGH);
              digitalWrite(2, LOW);
              digitalWrite(3, LOW);
              digitalWrite(4, LOW);
              digitalWrite(5, LOW);
              digitalWrite(6, LOW);
    break;
}
}
Lihat dalam hasil videonya :

Semoga bermanfaat !
Previous
Next Post »