Arduino Barkod Okuyucu Projesi

Tüm ayrıntılarını youtube kanalımda anlattığım projemin gerekli dokumanlarını buradan sizlerle paylaşıyorum.Kolay gelsin.

 

#include <HID.h>
#include <hid.h>
#include <hiduniversal.h>
#include <LiquidCrystal.h>
#include <avr/pgmspace.h>

#include <Usb.h>
#include <usbhub.h>
#include <hidboot.h>


int sil;
float  toplam = 0;
int i = 0;

float pkalem    = 4.70;
float ple       = 0.65;
float pkahve    = 3.10;
float pmakarna  = 1.95;
float pmendil   = 6.25;
float ptuz      = 0.80;
float paspirin  = 4.45;
float pyumus    = 8.45;
float pkolonya  = 4.95;
float pcamasir  = 4.75;
float ppersil   = 29.90;
float pcif      = 3.25;
float pkibrit   = 0.25;
float pmefendi  = 4.25;
float purun     = 4.25;
float pnut      = 9.60;



char harfler[13] = {'0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'};
char kalem[13]   = {'4', '0', '0', '4', '7', '6', '4', '9', '1', '4', '4', '6', '3'};
char le[13]      = {'8', '6', '9', '5', '0', '7', '7', '0', '0', '6', '0', '9', '7'};
char kahve[13]   = {'8', '6', '9', '5', '0', '7', '7', '5', '0', '2', '0', '3', '2'};
char makarna[13] = {'8', '6', '9', '5', '0', '7', '7', '0', '5', '2', '7', '1', '1'};
char mendil[13]  = {'8', '6', '9', '5', '0', '7', '7', '0', '4', '6', '7', '6', '5'};
char tuz[13]     = {'8', '6', '9', '5', '0', '7', '7', '0', '5', '4', '1', '6', '6'};
char aspirin[13] = {'8', '6', '9', '7', '7', '1', '3', '8', '2', '8', '8', '0', '3'};
char yumus[13]   = {'8', '6', '9', '5', '0', '7', '7', '0', '1', '8', '0', '3', '8'};
char kolonya[13] = {'8', '6', '9', '5', '0', '7', '7', '0', '7', '4', '2', '4', '9'};
char camasir[13] = {'8', '6', '9', '5', '0', '7', '7', '0', '4', '3', '3', '8', '2'};
char persil[13]  = {'9', '0', '0', '0', '1', '0', '0', '7', '9', '4', '5', '8', '9'};
char cif[13]     = {'8', '6', '9', '0', '6', '3', '7', '0', '1', '6', '9', '6', '7'};
char kibrit[13]  = {'8', '6', '9', '0', '5', '2', '8', '1', '0', '1', '7', '0', '3'};
char mefendi[13] = {'8', '6', '9', '0', '6', '2', '7', '0', '2', '3', '4', '0', '1'};
char urun[13]    = {'8', '6', '9', '9', '3', '7', '5', '8', '2', '1', '2', '3', '9'};
char nut[13]     = {'3', '0', '1', '7', '6', '2', '0', '4', '2', '8', '2', '5', '8'};

LiquidCrystal lcd(7 , 6, 5 , 4 , 3 , 2);


int led = A0;
const byte sil_pini = A1;


USB Usb;
USBHub Hub(&Usb);
HIDUniversal Hid(&Usb);

class KbdRptParser : public KeyboardReportParser
{
    void PrintKey(uint8_t mod, uint8_t key);
  protected:
    virtual void OnKeyDown (uint8_t mod, uint8_t key);
    virtual void OnKeyPressed(uint8_t key);
};

void KbdRptParser::OnKeyDown(uint8_t mod, uint8_t key)
{
  uint8_t c = OemToAscii(mod, key);

  if (c)
    OnKeyPressed(c);
}

void KbdRptParser::OnKeyPressed(uint8_t key)
{
  static uint32_t next_time = 0;
  if ( millis() > next_time ) {
    i = 0;
    delay( 5 );
  }

  next_time = millis() + 200;


  Serial.print( (char)key );

  harfler[i] = (char)key;

  Serial.print("i = "); Serial.println(i);
  Serial.print("bs harfler = "); Serial.print(harfler[0]); Serial.print("."); Serial.print(harfler[1]); Serial.print("."); Serial.print(harfler[2]); Serial.print("."); Serial.println(harfler[3]);



  i++;


  if (harfler[7] == kalem[7])
  { if (harfler[8] == kalem[8])
    { if (harfler[9] == kalem[9])
      { if (harfler[10] == kalem[10])
        { if (harfler[11] == kalem[11])
          { if (harfler[12] == kalem[12])
            {
              if (i == 13)
              {
                toplam = pkalem + toplam;
              }

              digitalWrite (led, 1);
              lcd.setCursor( 0, 0);
              lcd.print("KALEM.   4.70 TL");
              lcd.setCursor( 0, 1);
              lcd.print("TOPLAM           ");
              lcd.setCursor( 7, 1);
              lcd.print(toplam);
              lcd.setCursor( 14, 1);
              lcd.print("TL");
            }
          }
        }
      }
    }
  }

  else if (harfler[7] == urun[7])
  { if (harfler[8] == urun[8])
    { if (harfler[9] == urun[9])
      { if (harfler[10] == urun[10])
        { if (harfler[11] == urun[11])
          { if (harfler[12] == urun[12])
            {

              lcd.setCursor( 0, 0);
              lcd.print("*ROBOT  MUTFAGI*");
              lcd.setCursor( 0, 1);
              lcd.print("  KATKILARIYLA  ");
            }
          }
        }
      }
    }
  }

 else if (harfler[7] == nut[7])
  { if (harfler[8] == nut[8])
    { if (harfler[9] == nut[9])
      { if (harfler[10] == nut[10])
        { if (harfler[11] == nut[11])
          { if (harfler[12] == nut[12])
            {
              if (i == 13)
              {
                toplam = pnut + toplam;
              }


              lcd.setCursor( 0, 0);
              lcd.print("NUTELLA  9.60 TL");

              lcd.setCursor( 0, 1);
              lcd.print("TOPLAM           ");
              lcd.setCursor( 7, 1);
              lcd.print(toplam);
              lcd.setCursor( 14, 1);
              lcd.print("TL");

            }
          }
        }
      }
    }
  }
  else if (harfler[7] == mefendi[7])
  { if (harfler[8] == mefendi[8])
    { if (harfler[9] == mefendi[9])
      { if (harfler[10] == mefendi[10])
        { if (harfler[11] == mefendi[11])
          { if (harfler[12] == mefendi[12])
            {
              if (i == 13)
              {
                toplam = pmefendi + toplam;
              }


              lcd.setCursor( 0, 0);
              lcd.print("M.EFENDI 4.25 TL");

              lcd.setCursor( 0, 1);
              lcd.print("TOPLAM           ");
              lcd.setCursor( 7, 1);
              lcd.print(toplam);
              lcd.setCursor( 14, 1);
              lcd.print("TL");

            }
          }
        }
      }
    }
  }
  else if (harfler[7] == kibrit[7])
  { if (harfler[8] == kibrit[8])
    { if (harfler[9] == kibrit[9])
      { if (harfler[10] == kibrit[10])
        { if (harfler[11] == kibrit[11])
          { if (harfler[12] == kibrit[12])
            {
              if (i == 13)
              {
                toplam = pkibrit + toplam;
               
              }


              lcd.setCursor( 0, 0);
              lcd.print("KAV.KIB  0.25 TL");

              lcd.setCursor( 0, 1);
              lcd.print("TOPLAM           ");
              lcd.setCursor( 7, 1);
              lcd.print(toplam);
              lcd.setCursor( 14, 1);
              lcd.print("TL");

            }
          }
        }
      }
    }
  }



  else if (harfler[7] == cif[7])
  { if (harfler[8] == cif[8])
    { if (harfler[9] == cif[9])
      { if (harfler[10] == cif[10])
        { if (harfler[11] == cif[11])
          { if (harfler[12] == cif[12])
            {
              if (i == 13)
              {
                toplam = pcif + toplam;
              }


              lcd.setCursor( 0, 0);
              lcd.print(" CIF     3.25 TL");

              lcd.setCursor( 0, 1);
              lcd.print("TOPLAM           ");
              lcd.setCursor( 7, 1);
              lcd.print(toplam);
              lcd.setCursor( 14, 1);
              lcd.print("TL");

            }
          }
        }
      }
    }
  }
  else if (harfler[7] == persil[7])
  { if (harfler[8] == persil[8])
    { if (harfler[9] == persil[9])
      { if (harfler[10] == persil[10])
        { if (harfler[11] == persil[11])
          { if (harfler[12] == persil[12])
            {
              if (i == 13)
              {
                toplam = ppersil + toplam;
              }


              lcd.setCursor( 0, 0);
              lcd.print("PERSIL  29.90 TL");

              lcd.setCursor( 0, 1);
              lcd.print("TOPLAM           ");
              lcd.setCursor( 7, 1);
              lcd.print(toplam);
              lcd.setCursor( 14, 1);
              lcd.print("TL");

            }
          }
        }
      }
    }
  }
  else if (harfler[7] == camasir[7])
  { if (harfler[8] == camasir[8])
    { if (harfler[9] == camasir[9])
      { if (harfler[10] == camasir[10])
        { if (harfler[11] == camasir[11])
          { if (harfler[12] == camasir[12])
            {
              if (i == 13)
              {
                toplam = pcamasir + toplam;
              }


              lcd.setCursor( 0, 0);
              lcd.print("CAM.SUYU 4.75 TL");

              lcd.setCursor( 0, 1);
              lcd.print("TOPLAM           ");
              lcd.setCursor( 7, 1);
              lcd.print(toplam);
              lcd.setCursor( 14, 1);
              lcd.print("TL");

            }
          }
        }
      }
    }
  }
  else if (harfler[7] == kolonya[7])
  { if (harfler[8] == kolonya[8])
    { if (harfler[9] == kolonya[9])
      { if (harfler[10] == kolonya[10])
        { if (harfler[11] == kolonya[11])
          { if (harfler[12] == kolonya[12])
            {
              if (i == 13)
              {
                toplam = pkolonya + toplam;
              }


              lcd.setCursor( 0, 0);
              lcd.print("KOLONYA  4.95 TL");

              lcd.setCursor( 0, 1);
              lcd.print("TOPLAM           ");
              lcd.setCursor( 7, 1);
              lcd.print(toplam);
              lcd.setCursor( 14, 1);
              lcd.print("TL");

            }
          }
        }
      }
    }
  }
  else if (harfler[7] == yumus[7])
  { if (harfler[8] == yumus[8])
    { if (harfler[9] == yumus[9])
      { if (harfler[10] == yumus[10])
        { if (harfler[11] == yumus[11])
          { if (harfler[12] == yumus[12])
            {
              if (i == 13)
              {
                toplam = pyumus + toplam;
              }


              lcd.setCursor( 0, 0);
              lcd.print("YUMUSATI.8.45 TL");

              lcd.setCursor( 0, 1);
              lcd.print("TOPLAM           ");
              lcd.setCursor( 7, 1);
              lcd.print(toplam);
              lcd.setCursor( 14, 1);
              lcd.print("TL");

            }
          }
        }
      }
    }
  }
  else if (harfler[7] == aspirin[7])
  { if (harfler[8] == aspirin[8])
    { if (harfler[9] == aspirin[9])
      { if (harfler[10] == aspirin[10])
        { if (harfler[11] == aspirin[11])
          { if (harfler[12] == aspirin[12])
            {
              if (i == 13)
              {
                toplam = paspirin + toplam;
              }


              lcd.setCursor( 0, 0);
              lcd.print("ASPRIN    4.45 TL");

              lcd.setCursor( 0, 1);
              lcd.print("TOPLAM           ");
              lcd.setCursor( 7, 1);
              lcd.print(toplam);
              lcd.setCursor( 14, 1);
              lcd.print("TL");

            }
          }
        }
      }
    }
  }
  else if (harfler[7] == tuz[7])
  { if (harfler[8] == tuz[8])
    { if (harfler[9] == tuz[9])
      { if (harfler[10] == tuz[10])
        { if (harfler[11] == tuz[11])
          { if (harfler[12] == tuz[12])
            {
              if (i == 13)
              {
                toplam = ptuz + toplam;
              }


              lcd.setCursor( 0, 0);
              lcd.print("TUZ IYOT 0.80 TL");

              lcd.setCursor( 0, 1);
              lcd.print("TOPLAM           ");
              lcd.setCursor( 7, 1);
              lcd.print(toplam);
              lcd.setCursor( 14, 1);
              lcd.print("TL");

            }
          }
        }
      }
    }
  }
  else if (harfler[7] == makarna[7])
  { if (harfler[8] == makarna[8])
    { if (harfler[9] == makarna[9])
      { if (harfler[10] == makarna[10])
        { if (harfler[11] == makarna[11])
          { if (harfler[12] == makarna[12])
            {
              if (i == 13)
              {
                toplam = pmakarna + toplam;
              }


              lcd.setCursor( 0, 0);
              lcd.print("MAKARNA  1.95 TL");

              lcd.setCursor( 0, 1);
              lcd.print("TOPLAM           ");
              lcd.setCursor( 7, 1);
              lcd.print(toplam);
              lcd.setCursor( 14, 1);
              lcd.print("TL");

            }
          }
        }
      }
    }
  }
  else if (harfler[7] == kahve[7])
  { if (harfler[8] == kahve[8])
    { if (harfler[9] == kahve[9])
      { if (harfler[10] == kahve[10])
        { if (harfler[11] == kahve[11])
          { if (harfler[12] == kahve[12])
            {
              if (i == 13)
              {
                toplam = pkahve + toplam;
              }


              lcd.setCursor( 0, 0);
              lcd.print("KahveTURK 3.10TL");

              lcd.setCursor( 0, 1);
              lcd.print("TOPLAM           ");
              lcd.setCursor( 7, 1);
              lcd.print(toplam);
              lcd.setCursor( 14, 1);
              lcd.print("TL");

            }
          }
        }
      }
    }
  }
  else if (harfler[7] == le[7])
  { if (harfler[8] == le[8])
    { if (harfler[9] == le[9])
      { if (harfler[10] == le[10])
        { if (harfler[11] == le[11])
          { if (harfler[12] == le[12])
            {
              if (i == 13)
              {
                toplam = ple + toplam;
              }


              lcd.setCursor( 0, 0);
              lcd.print("LE'PORT. 0.65 TL");

              lcd.setCursor( 0, 1);
              lcd.print("TOPLAM           ");
              lcd.setCursor( 7, 1);
              lcd.print(toplam);
              lcd.setCursor( 14, 1);
              lcd.print("TL");

            }
          }
        }
      }
    }
  }
  else if (harfler[7] == mendil[7])
  { if (harfler[8] == mendil[8])
    { if (harfler[9] == mendil[9])
      { if (harfler[10] == mendil[10])
        { if (harfler[11] == mendil[11])
          { if (harfler[12] == mendil[12])
            {
              if (i == 13)
              {
                toplam = pmendil + toplam;
              }


              lcd.setCursor( 0, 0);
              lcd.print("FAMILY   6.25 TL");

              lcd.setCursor( 0, 1);
              lcd.print("TOPLAM           ");
              lcd.setCursor( 7, 1);
              lcd.print(toplam);
              lcd.setCursor( 14, 1);
              lcd.print("TL");

            }
          }
        }
      }
    }
  }


else
  {
    if (i == 13)
    {
      
      Serial.print("yabanci");

     

lcd.setCursor( 0, 0);
    lcd.print(" TANIMSIZ  URUN ");
    lcd.setCursor( 0, 1);
    lcd.print(harfler[0]);
    lcd.print(harfler[1]);
    lcd.print(harfler[2]);
    lcd.print(harfler[3]);
    lcd.print(harfler[4]);
    lcd.print(harfler[5]);
    lcd.print(harfler[6]);
    lcd.print(harfler[7]);
    lcd.print(harfler[8]);
    lcd.print(harfler[9]);
    lcd.print(harfler[10]);
    lcd.print(harfler[11]);
    lcd.print(harfler[12]);
    lcd.print("                  ");


    }
  }

   Serial.print(harfler[0]);
      Serial.print(harfler[1]);
      Serial.print(harfler[2]);
      Serial.print(harfler[3]);
      Serial.print(harfler[4]);
      Serial.print(harfler[5]);
      Serial.print(harfler[6]);
      Serial.print(harfler[7]);
      Serial.print(harfler[8]);
      Serial.print(harfler[9]);
      Serial.print(harfler[10]);
      Serial.print(harfler[11]);
      Serial.println(harfler[12]); 
}


KbdRptParser Prs;

void setup()
{
  Serial.begin( 115200 );

  pinMode (led, OUTPUT);
  Serial.println("Start");

  if (Usb.Init() == -1) {
    Serial.println("OSC Başlatılamadı.");
  }

  //  delay( 200 );

  Hid.SetReportParser(0, (HIDReportParser*)&Prs);
  lcd.begin(16, 2);
  lcd.clear();
  lcd.noAutoscroll();




  lcd.setCursor( 0, 0);
  lcd.print("ALINAN URUNLERIN");

  lcd.setCursor( 0, 1);
  lcd.print("TOPLAMI 00.00 TL");
  delay(2000);
}

void loop()
{
  sil = analogRead (sil_pini);



  if (sil > 500)
  {
    toplam = 0;


    digitalWrite (led, 1);
    lcd.setCursor( 0, 0);
    lcd.print("ALINAN URUNLERIN");
        lcd.setCursor( 0, 1);
        lcd.print("TOPLAM           ");
        lcd.setCursor( 7, 1);
        lcd.print(toplam);
        lcd.setCursor( 14, 1);
        lcd.print("TL");
  }

  digitalWrite (led, 0);
  Usb.Task();

}

Sosyal Medyada Paylaş Facebook Twitter Google+

Etiketler: , , ,
Eklenme Tarihi: 2 Mart 2019

Konu hakkında yorumunuzu yazın

Arduino Barkod Okuyucu Projesi (6 Yorum)

  1. hocam ben barkod uygulamasını yaptım ama lcd keypad shield kullanıp ledisz yaptım her şeyi ayarladım ancak okuttuğumda herhangi bişey olmuyor ne yapabilirim acill

  2. Merhaba Barkod Okuyucu Uygulamasını yaptım 5 tane ürün kayıt etmeme rağmen 3 taneden sonra sistem tanımsız ürün diyor. Ödev için yardımcı olabilirmisiniz.
    Teşekkürler

HOŞ GELDİNİZ

Youtube kanalıma Abone Olabilirsiniz.