Arduino ile Optik Okuyucu Sistemi

4 şıklı bir testin arduino ile okuma deneyi. Aşağıdan yazılım kodlarına ulaşabilirsiniz. Yazılım ara ara geliştirilecektir.

#include 
LCD5110 myGLCD(8,9,10,11,12);
extern uint8_t SmallFont[];
extern uint8_t MediumNumbers[];
extern uint8_t BigNumbers[];
int a = 2;
int b = 3;
int c = 4;
int d = 5;
//int cevaplar[25] = {acevap,bcevap,dcavep,acevap,bcevap,dcavep,acevap,bcevap,dcavep,acevap,bcevap,dcavep,acevap,bcevap,dcavep,acevap,bcevap,dcavep,acevap,bcevap,dcavep,acevap,bcevap,dcavep,ccevap}
int puan = 10; // soru başına tekabul eden puan
int i,toplamnot,acevap,bcevap,ccevap,dcevap;
void setup() {
  myGLCD.InitLCD();
  pinMode(a,INPUT);
  pinMode(b,INPUT);
  pinMode(c,INPUT);
  pinMode(d,INPUT);
}

void loop() {
  myGLCD.setFont(SmallFont);
  myGLCD.print("Toplam Not",CENTER,5);
  myGLCD.setFont(BigNumbers);
  
  i=0;
  toplamnot=0;
  basla:
  myGLCD.printNumI(toplamnot,CENTER,8);
  acevap = digitalRead(a);
  bcevap = digitalRead(b);
  ccevap = digitalRead(c);
  dcevap = digitalRead(d);
 
  if(acevap == 1 && bcevap == 1 && ccevap == 1 && dcevap == 1){
      i++;
      delay(1000); 
    }
      switch (i) {
        case 1:
          if(acevap == 1){
            toplamnot+=puan;
          }
          delay(1000); 
        break;
        case 2:
          if(bcevap == 1){
            toplamnot+=puan;
          }
          delay(1000); 
        break;
        case 3:
          if(ccevap == 1){
            toplamnot+=puan;
          }
          delay(1000); 
        break;
        case 4:
          if(dcevap == 1){
            toplamnot+=puan;
          }
          delay(1000); 
        break;
        case 5:
          if(acevap == 1){
            toplamnot+=puan;
          }
          delay(1000); 
        break;
        case 6:
          if(ccevap == 1){
            toplamnot+=puan;
          }
          delay(1000); 
        break;
        default:
          i=0;
          toplamnot=0;
      }
  
  goto basla;
  

}