I would like to understand why did Arduino clipped the input signal as shown in the attached diagram? As far as I know, Arduinos are able to read analogue voltages up to 5v, that is 1023. But for some reason my signal got clipped at 390 which is about 1.90V. What may be the reason behind this? The schematic is also attached. The low voltage input signal (mV range) is passed through a Band pass filter with a gain of 143. The signal is then DC shifted by +3.3/2=1.65V by using a capacitor coupled voltage divider offset. The opamp LM358 (not LT1215 shown in the schematic) and everything else is powered from Arduino's built in 3.3V regulator. One reason might be that the opamp can't spit out anything more than its supply voltage, that is 3.3V, but even then the clipping should take place at 675 (1023*3.3/5), not 390. Am I missing something??
Thank you for reading my question. Any help is highly appreciated ^_^.