pulsein() function read from magnetic head

Hello!

I've made the circuit from that page: http://arduino.cc/forum/index.php?topic=92518.0 and i had connected the output from the 393 to arduino.
Using the pulsein function, when i swipe the card, the results are the folloving:

0
0
0
67
1
1
1
579
3
2
18
620
12
296
2
699
1
1
1
565
581
6
18
628
598
1
610
666
757
455
22
1
725
8
665
889
3
526
827
930
11
12
718
1
1
10
680
359
12
1
1285
1
25
0
0

Is this accurate?
And also, how can i transform this measurements of wave width into binary code?

Thank you.

Big chance you missed a number of bits &| bytes. pulsein() waits for low, times a pulse. If in the time you are processing the pulses there is another pulse you will miss it.

Better connect the reader to the interrupt pin, fill an array with values and parse these.

saprodx:
when i swipe the card, the results are the folloving:

...

Is this accurate?

Yes, I believe those are the results you saw. Whether those results match what was on the card, I don't suppose it would be possible to say unless you knew what data was on the card. Why don't you look at the source data, look at the encoding scheme and work out what the expected results ?

robtillaart:
Big chance you missed a number of bits &| bytes. pulsein() waits for low, times a pulse. If in the time you are processing the pulses there is another pulse you will miss it.

Better connect the reader to the interrupt pin, fill an array with values and parse these.

This is my code :

int pin = 7;
unsigned long duration;
void setup() {
  Serial.begin(9600);
  pinMode(pin, INPUT);
}

void loop() {
duration = pulseIn(pin, HIGH);
Serial.println(duration);
delay(5);
}

Can you give me an example using interrupts?

Thank you both for replyes!

a starter,

Thank you for your reply!

Also, if someone knows another schematic for transforming the analog signal to digital signal using lm393 comparator, plase reply me, because the schematic above is not good.

Thank you!