Generating barcodes on LCD display


this demonstrates generation of code-39 barcodes on lcd display.
lcd display http://www.sparkfun.com/products/9351
with http://sourceforge.net/projects/serialglcd/?source=directory , http://sourceforge.net/projects/serialglcdlib/?source=directory
text 7 characters or less can generated on screen. barcode readable zbar.
the code rough:
code: [select]

#include <serialglcd.h>
#include <ctype.h>
  serialglcd lcd;
  char ctl[]="nwnnwnwnn";
  char zero[]="nnnwwnwnn";
  char one[]="wnnwnnnnw";
  char two[]="nnwwnnnnw";
  char three[]="wnwwnnnnn";
  char four[]="nnnwwnnnw";
  char five[]="wnnwwnnnn";
  char six[]="nnwwwnnnn";
  char seven[]="nnnwnnwnw";
  char eight[]="wnnwnnwnn";
  char nine[]="nnwwnnwnn";
  char a[]="wnnnnwnnw";
  char b[]="nnwnnwnnw";
  char c[]="wnwnnwnnn";
  char d[]="nnnnwwnnw";
  char e[]="wnnnwwnnn";
  char f[]="nnwnwwnnn";
  char g[]="nnnnnwwnw";
  char h[]="wnnnnwwnn";
  char i[]="wnnnnwwnn";
  char j[]="wnnnnwwnn";
  char k[]="wnnnnnnww";
  char l[]="nnwnnnnww";
  char m[]="wnwnnnnwn";
  char n[]="nnnnwnnww";
  char o[]="wnnnwnnwn";
  char p[]="nnwnwnnwn";
  char q[]="nnnnnnwww";
  char r[]="wnnnnnwwn";
  char s[]="nnwnnnwwn";
  char t[]="nnnnwnwwn";
  char u[]="wwnnnnnnw";
  char v[]="nwwnnnnnw";
  char w[]="wwwnnnnnn";
  char x[]="nwnnwnnnw";
  char y[]="wwnnwnnnn";
  char z[]="nwwnwnnnn";
  char sp[]="nwwnnnwnn";
  int xc = 1;
   void intr(char *c){
    int n;
    for(n = 0;n < 9;n++){
      switch(c[n]){
        case 'w': lcd.drawline(xc, 0, xc, 64, 0); delay(7); lcd.drawline(xc+1, 0, xc+1, 64, 0); delay(6); xc+=2; break;
        case 'n': lcd.drawline(xc, 0, xc, 64, 0); delay(7); xc++; break;
        case 'w': xc+=2; break;
        case 'n': xc++; break;
      }
     if(xc > 128){serial.println("ovrflw");}
    }
    xc++;
  }
  void str(char *s){
    char a;
    char *x;
    for(a = 0;a < strlen(s);a++){
       switch(tolower(s[a])){
         case '*': x=ctl; break;
         case 'a': x=a; break;
         case 'b': x=b; break;
         case 'c': x=c; break;
         case 'd': x=d; break;
         case 'e': x=e; break;
         case 'f': x=f; break;
         case 'g': x=g; break;
         case 'h': x=h; break;
         case 'i': x=i; break;
         case 'j': x=j; break;
         case 'k': x=k; break;
         case 'l': x=l; break;
         case 'm': x=m; break;
         case 'n': x=n; break;
         case 'o': x=o; break;
         case 'p': x=p; break;
         case 'q': x=q; break;
         case 'r': x=r; break;
         case 's': x=s; break;
         case 't': x=t; break;
         case 'u': x=u; break;
         case 'v': x=v; break;
         case 'w': x=w; break;
         case 'x': x=x; break;
         case 'y': x=y; break;
         case 'z': x=z; break;
         case ' ': x=sp; break;
         case '0': x=zero; break;
         case '1': x=one; break;
         case '2': x=two; break;
         case '3': x=three; break;
         case '4': x=four; break;
         case '5': x=five; break;
         case '6': x=six; break;
         case '7': x=seven; break;
         case '8': x=eight; break;
         case '9': x=nine; break;
         default : x=sp;
       }
       intr(x);
    }
  }
void setup(){
  serial.begin(115200);
  delay(1500);
  lcd.resetlcd();
  delay(250);
  unsigned char x,y;
  for(x = 0;x < 128;x++){
    for(y = 0;y < 64;y++){
      lcd.togglepixel(x, y, 1);
    }
  }
  str("*test*");
}
void loop(){

}

pretty cool. :)


Arduino Forum > Community > Exhibition / Gallery > Generating barcodes on LCD display


arduino

Comments

Popular posts from this blog

Thread: PKI Client 5.00 install (for eToken Pro)

ATmega2560-Arduino Pin Mapping

Crossfader Arduino Tutorial