Projelerimiz

Arduino Barkod Okuyucu Yapımı

Barkod okuyucu genellikle büyük mağazalarda bulunan bir ürün takip sistemidir.Ürünlerin üzerlerine kodlar eklenir ve bu kodlar lazer okuma sistemi ile alınabilir.Kodlar sunucuda bulunan veritabanından sorgulanarak ürüne ait özellikleri listeleyebilir.Örneğin fiyat , stok , renk , konum vs.

Bu projemizde barkod okuyucu arduino ile nasıl yapılır bundan bahsedeceğim , yabancı bir kaynakta bulduğum bu projeyi sizlerle paylaştığım için mutluyum çünkü arduino nun aslında basit bir elektronik hobi kartı olmadığını aslında endüstriye yönelik profesonel bir platform olduğunu bu kart göstermektedir.

Projede Kullanılan Mazlemeler

  • Arduino Uno
  • Arduino USB Host Shield
  • Barkod Okuyucu
  • 16×2 LCD Ekran
  • Jumper Kablo
  • Breadboard
  • 10k Potansiyemetre

Öncelikle aşağıdaki resimde gösterildiği gibi usb host shield kartına arduino üzerine yerleştiriniz.Daha sonra şemadaki gibi lcd ekranını monte ediniz.

#include <hid.h>
#include <hiduniversal.h>
#include <usbhub.h>
   
#include <LiquidCrystal.h>
#include <avr/pgmspace.h>
   
//#include <avrpins.h>
//#include <max3421e.h>
//#include <usbhost.h>
//#include <usb_ch9.h>
#include <Usb.h>
#include <usbhub.h>
#include <avr/pgmspace.h>
//#include <address.h>
#include <hidboot.h>
   
//#include <printhex.h>
//#include <message.h>
//#include <hexdump.h>
//#include <parsetools.h>
#define DISPLAY_WIDTH 16
   
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
   
USB Usb;
USBHub Hub(&Usb);
HIDUniversal Hid(&Usb);
HIDBoot Keyboard(&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;
static uint8_t current_cursor = 0;
   
if( millis() > next_time ) {
lcd.clear();
current_cursor = 0;
delay( 5 );
lcd.setCursor( 0,0 );
}
   
next_time = millis() + 200;
   
if( current_cursor++ == ( DISPLAY_WIDTH + 1 )) {
lcd.setCursor( 0,1 );
}
   
Serial.print( (char)key );
lcd.print( (char)key );
};
   
KbdRptParser Prs;
   
void setup()
{
Serial.begin( 115200 );
Serial.println("Start");
   
if (Usb.Init() == -1) {
Serial.println("OSC Başlatılamadı.");
}
   
delay( 200 );
   
Hid.SetReportParser(0, (HIDReportParser*)&Prs);
lcd.begin(DISPLAY_WIDTH, 2);
lcd.clear();
lcd.noAutoscroll();
lcd.print("Hazır");
delay( 200 );
}
   
void loop()
{
Usb.Task();
}

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir