Barkod okuyucular, ürünlerin üzerindeki barkoddan fiyat ve ürünle ilgili diğer bilgileri çeken araçlardır.Bu projemizde arduino ile lcd ekranda ürünlerin barkod numaralarını görebileceğimiz güzel bir uygulama yapacağız.
Malzemeler:
- Arduino
- Arduino USB Host Shield
- Barkod Okuyucu
- Lcd (16×2)
Elektronik Devre Şeması:
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
Bu cihazımızın parametrelerini doğrulamak için aşağıdaki iletişim protokolünü dikkate alalım.
Intf. Class: 03 Intf. Subclass: 01 Intf. Protocol: 01
Kod okuyucumuzda doğrulama sırasında yukarıdaki bilgiler uyuşmuyorsa USB Host Shield 2.0 kütüphanesi örnek dosyalarındaki USB_desc kodunu yükleyiniz.
Usb Shield Kütüphanesini buradan indirelim.
USBHID Boot Kbd örnek kodunu açın.Bu kod lcd ekranından barkod numaralarını görmemizi sağlayacaktır.
Arduino Yazılımı:
#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(); }
Ben bu projeyi yapiyorum ogrenciyim host shield kütüphanesini atiyoruz usb desc dosyasini da aciyoruz hic bir sikinyi yok ama ondan sonra napicagimizi daha aciklayici bir sekilde anlatabilirseniz sevinirim mail olarak gonderirsenizde sevinirim
merhaba Arduino İle Barkod okuyucu karşılığında isim yazdırabilirmiyiz acaba ?? konu hakında yardımcı olabilirmisiniz
Merhaba,
aşağıda belirtmiş olduğunuz değerlerin kontrolünü nasıl sağlıyoruz. ? Bu bilgileri nereden görebiliriz ? Eğer belirttiğiniz değerler uyuşmuyorsa nasıl/nereden değiştirebiliriz.
Intf. Class: 03
Intf. Subclass: 01
Intf. Protocol: 01
Teşekürler
Merhaba,
Barkod okuyucu projeniz için öncelikle öncelikle tebrik ederim. Size küçük bir sorum olacak. Okuduğumuz barkod rakamını bölümlere ayırmak mümkünmüdür? Yani ilk 3 rakam şu işi yapsın sonraki 4 rakam bu işi yapsın gibi? Bilgi verebilirseniz çom sevinirim.
Teşekkür Ederim.
Ender