Hi, I try to build a high precision optical rotary encoder.
Im using 5 small smd LEDs
The 3 ones to detect strips like this:
Led1 led2 led3
^^^^ vvvv ^^^^
_____________............._____________............. = paper strips
Led2 = illuminates the paper
Led1 & led3 sense the white or black strips
The 2 other are similar to 3 ones but only one sender & one receiver to see offset zero position mask.
The receiver LEDs produces approx 2-5 mVolt when see white strip and less than 0,5 mVolt on black strip
I need to gain the signal about 2000x,
so 2-5mV x 2000 = 2-5 volt.
The nice range to be measured by Arduino analog pin.
I need 3 op-amp, so I choosed LM324
The feedback resistor of non inverting op-amp are 2M ohm & 1K ohm. So the gain is 2001x (or about 2000x).
But the output gain was not as expected, like crazy graph in Arduino IDE.
Anybody know the problem?
Do you have any solution?
Note:
I cannot use photodiode or phototransistor,
the dimension is too big and limit the resolution of the reading.
I use the 0603 smd LED, placed very close each other.
Good enough to see strips as small as 2-3 mm.