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?
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.