Bilgisayar
OKUDUĞUNUZ KONU
Arduino Barkod Okuyucu Yapımı
3

Arduino Barkod Okuyucu Yapımı

Yazar : Eda Baysal8 Aralık 2017

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.

LCD Bağlantı Pinleri:

  • LCD RS pin- dijital pin 7
  • LCD Enable pin -dijital pin 6
  • LCD D4 pin – dijital pin 5
  • LCD D5 pin – dijital pin 4
  • LCD D6 pin – dijital pin 3
  • LCD D7 pin – dijital pin 2
  • LCD R/W pin – ground

Projenin çalışma videosu

Öncelikle usb host shield kütüphanesini arduino içerisine yükleyiniz daha sonra örneklerden USB_desc dosyasını açın.

Cihanızın iletişim protokolünü aşağıdaki koddan değiştirebilirsiniz.


Intf. Class: 03
Intf. Subclass: 01
Intf. Protocol: 01

Projenin kodları aşağıda verilmiştir. USB Host Shield 2.0 kütüphanesini indir.


#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();
}

SİZCE NASIL OLMUŞ?
Beğendim
81%
İlginç
19%
Eh İşte
0%
Anlamadım
0%
Kötü
0%
Berbat
0%
YAZAR HAKKINDA
Eda Baysal
Bilgisayar mühendisiyim , gömülü sistemler ve IoT üzerinde çalışmalar yapmaktayım.Proje Hocam sitesini uzun zamandır takip ediyordum ve bu oluşumun içerisinde olmak istedim.Bu sitede yazılarımı paylaşıp sizlere yararlı olmak istiyorum
3 YORUMLAR
  • Çağlayan DÖKME
    9 Aralık 2017 at 21:08

    Yazınızda bahsettiğiniz yabancı kaynağı bizlerle paylaşma imkanınız varsa mutlu olurum. Proje için teşekkürler. Emeğinize sağlık

  • Başak Kahraman
    14 Mart 2018 at 10:17

    Merhaba, bu proje için Arduino Uno yeterli mi? Ben yabancı kaynaktan izlediğimde Arduino Mega 2560 kullandığını gördüm. Bir farklılık var mı?
    Teşekkürler.

  • Berkay kaya
    5 Nisan 2018 at 11:47

    Merhaba ben bu kodu nasıl yapabileceğimi anlayamadım.
    Yapmaya çalıştım. Host shield kütüphanesini add to library den attım sonra usb_desc dosyasını açtım proje kodunu ona attım ama kodda bi sıkıntı var heralde

YORUM YAP