WHAT'S NEW?
Loading...

Tutorial Seven Segmen Menggunakan Interrupt Dip Switch pada Arduino DECODER

Tutorial Seven Segmen Menggunakan Interrupt Dip Switch pada Arduino DECODER


Hello gaes, hari ini saya akan posting tutorial seven segmen menggunakan interrupt dip swith pada arduino. projek kali ini saya akan mengontrol arduino dengan dip switch dan interrupt. interrupt fungsinya mengehentikan prograk sejenak yang sedang dijalankan oleh arduino dan melaksanakan program interrupt tersebut. sedangkan dip switch sekumpulan beberapa sakral yang dikumpulkan. Jadi pada projek ini jika dip switch ditekan maka variasi pada seven segmen akan langsung ganti tanpa menunggu variasi habis.
oke langsung simak aja 

Alat dan Bahan
1 Arduino
1 Dip Switch 
1 Seven segmen Anoda 
1 Breadboard atau PCB
1 Push button

Pemasangan Komponen 



Script Program

char value[] = {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0x7F,0xFF,
                0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF,0xFF,0xFF,0xB7,0xFF,0xFF,
                0xFF,0xA0,0x83,0xC6,0xA1,0x84,0x8E,0x90,0x8B,0xF9,0xF1,0x8D,0xC7,0xB0,0xAB,0xA3,
                0x8C,0x98,0xAF,0x92,0x87,0xE3,0x9D,0x86,0x89,0x91,0xA4,};
char variasi [4][20]={{"ALFAN"},
                     {"1641160029"},
                     {"2D-JTD"}
                     };
char buffer7s[20]={"UTS"};
char dipsw = 0;
int i,reset;
int a;
char digitalwrite8;
char data;
void setup (){
  for (i=3; i<=9; i++){
    pinMode (i,OUTPUT);}
  for(int i=0; i<=2; i++){
    pinMode(i, INPUT_PULLUP);}
  attachInterrupt(digitalPinToInterrupt(2), isr, LOW);
  }
void loop() {
  // put your main code here, to run repeatedly:
   for (int i=0;buffer7s[i]!=0;i++){
 
    tampilkan(buffer7s);
   
  }

}
void tampilkan(char nilai){ 
  for(int j=0; j<=8; j++)   
  digitalWrite(4+j,bitRead(nilai, j));
  }

 void isr (){
  char n;
  reset =1;
  i=0;
  bitWrite(dipsw,0,digitalRead(0));
  bitWrite(dipsw,1,digitalRead(1));
  for(n=0; variasi[dipsw][n] != 0; n++){
  buffer7s[n]=variasi[dipsw][n];}
  buffer7s[n]=0;
  }
void digitalWrite8 (char variasi){
  for (i=0;i<8;i++){
    digitalWrite(i+3,bitRead(variasi,i));
  }
}
void tampilkan(char buffer7s[]){
  a=0;
  while ((buffer7s[a]!=0)){
    if (reset==1) break;
    data=value[buffer7s[a]-0x20];
    digitalWrite8(data);
    delay(500);
    for(i=0;i<8;i++)
      digitalWrite(i+3,HIGH);
     delay(500);
    a++;
  }
  reset=0;
}

Video Program


0 komentar:

Post a Comment