int inPin=D3; int val = 0; // variable to store the read value int vals[]={0,0,0,0}; int mycounter=1; int readbits=0; int onecounter=0; int odotusaika=10; int barcode[100]; int barcodejarjestys; #include #define NEOPIXELPIN D8 // Datapin for the the built-in NeoPixel #define NUMPIXELS 4 //Amount of NeoPixels Adafruit_NeoPixel pixels(NUMPIXELS, NEOPIXELPIN, NEO_RGB + NEO_KHZ800); #define DELAYVAL 500 // Time (in milliseconds) to pause between loop void setup() { // put your setup code here, to run once: Serial.begin(9600); pinMode(inPin, INPUT); // sets the digital pin 7 as input barcodejarjestys=0; pixels.begin(); } int dataatulee=0; void loop() { // put your main code here, to run repeatedly: if(dataatulee==0&&millis()%(odotusaika/10)==0){ //delay(odotusaika/10); val=digitalRead(inPin); if(val==1) { dataatulee=1; delay(odotusaika/2-odotusaika/10); } } while(dataatulee==1){ val=digitalRead(inPin); //if(readbits==0){ //Serial.print(val); //} mycounter=mycounter+1; vals[mycounter-1]=val; if((val==1)&&(readbits==0)) { onecounter=onecounter+1; //Serial.println("lisattiin yksi"); if(onecounter==4){ readbits=1; onecounter=0; mycounter=0; Serial.println("Start reading"); } } if((val==0)&&(readbits==0)) { onecounter=0; } if((readbits==1)&&(mycounter==4)) { // Serial.println("aaaa"); // for(int kk=0;kk<=3;kk=kk+1){ // Serial.print(vals[kk]); // } // Serial.println("bbbb"); if(vals[0]==0&&vals[1]==0&&vals[2]==0&&vals[3]==1) barcode[barcodejarjestys]=1;//Serial.println("got 1"); if(vals[0]==0&&vals[1]==0&&vals[2]==1&&vals[3]==0) barcode[barcodejarjestys]=2;//Serial.println("got 2"); if(vals[0]==0&&vals[1]==0&&vals[2]==1&&vals[3]==1) barcode[barcodejarjestys]=3;//Serial.println("got 3"); if(vals[0]==0&&vals[1]==1&&vals[2]==0&&vals[3]==0) barcode[barcodejarjestys]=4;//Serial.println("got 4"); if(vals[0]==0&&vals[1]==1&&vals[2]==0&&vals[3]==1) barcode[barcodejarjestys]=5;//Serial.println("got 5"); if(vals[0]==0&&vals[1]==1&&vals[2]==1&&vals[3]==0) barcode[barcodejarjestys]=6;//Serial.println("got 6"); if(vals[0]==0&&vals[1]==1&&vals[2]==1&&vals[3]==1) barcode[barcodejarjestys]=7;//Serial.println("got 7"); if(vals[0]==1&&vals[1]==0&&vals[2]==0&&vals[3]==0) barcode[barcodejarjestys]=8;//Serial.println("got 8"); if(vals[0]==1&&vals[1]==0&&vals[2]==0&&vals[3]==1) barcode[barcodejarjestys]=9;//Serial.println("got 9"); if(vals[0]==1&&vals[1]==0&&vals[2]==1&&vals[3]==0) barcode[barcodejarjestys]=0;//Serial.println("got 0"); barcodejarjestys=barcodejarjestys+1; if(vals[0]==0&&vals[1]==0&&vals[2]==0&&vals[3]==0) { Serial.println("Stop reading"); readbits=0; dataatulee=0; Serial.println(barcodejarjestys); for(int uu=0;uu