ADC way too sensitive!

H

Thread Starter

Heruuka

First off, i'm no electronics wizz. I'm building from plans located here:

http://dmgaming.com/timer/timerv2-schematic.htm

I've wired it all up but when i tested it the output that the computer received according to the software was questionable to say the least.
The default value of the sensor inputs, that is, without being connected to anything, was around 1.7v, but constantly fluctuated between 1.65v and 1.75v. When the sensor inputs are connected to ground, the output reads 0.00v, and similarly when they are connected to 5.00v it reads 5.00v. What's odd is that regardless of how much resistance is put in between the sensor input and the 5.00v it still reads 5.00v. Also, when you touch one of the sensor inputs with your bare fingers, all of the readings go crazy! whats goin on here guys?

Thanks a lot for any and all reply's, very cool community!

H
 
R

Rokicki, Andrew

1.) Your analog input should be shielded.
2.) Make sure analog input and ADC0808 have the same ground reference.
 
My first intuition would say that you have electrical noise on the input signal. What kind of devices are you connecting to the inputs? Make sure that the negative terminal of the input device is connected to the same ground as your DC supply. Also, try using a filter capacitor (put a 1uF, >10VDC, ceramic capacitor in parallel with the input device). Be aware that he ADC is only an 8-bit system, so the most precise you can get is 0.0195V. Also, it depends on how the software on the PC end is setup to convert the digital back to a value (it should be 5*Input/256, where "Input" is the decimal equivalant of the bits read).

Another possibility would be in the +5VDC supply voltage. The one shown on the website works, but may not be very clean for your application. If the +5VDC is noisy, this makes the reference noisy. Since this is part of the equation in determining the 8-bit output (Digital Output = Vin*256/Vref), it would cause the number to bounce around.

To answer your other questions: a resistor (assuming it was in series) does not have any effect because the ADC input is high impedance. If you want to see an effect, use two resistors: put one in series and the other in parallel just after it (this is known as a "Voltage Divider"). The reason it jumps around when you touch the input is because your body is a conductor (and in some ways a generator) for some of that electrical noise.
 
C

Curt Wuollet

Simple, it's a very high impedance input. Tiny leakage currents or simply stored charge give you an open (float) voltage. That's the 1.7 volts Any resistor that is small compered to the input
impedance will give you close to 5 volts by simple voltage divider action. A resistor large enough will show some drop. And when you touch the input, you are digitizing the very dirty line frequency signal on your body picked up from the wiring all around you. If you try to look at this as DC or discrete samples, it will be all over the map. To settle things down, try a 1 megohm resistor in parallel with the input, or simply ignore readings when not connected to a signal to be measured. An interesting thing to do is to take these samples as a data set and plot them against time. This will give you a "scope like" display of what you are looking at. Many things will be clearer. Including why a single sample as a measurement has to be regarded with great scepticism.

Regards

cww
 
D
Looking at the circuit there appears to be no connection from the common on the parallel port (pins 18.19,20,21,22,23,24,25) to the common of the circuit. Also all unused analog inputs should be connected to common.
The ADC0808's have been around for ages and you should be able to get reasonable stability and accuracy out of them. +/- 2 bits
If you still have problems with it we have assembled and kit versions of 12 bit data aquisition modules for the PC parallel port at www.oceancontrols.com.au
 
Heruuka, I'm using the same circuit for a project i'm currently working on. I have made all the corrections regarding earthing, filter capacitors etc.

Can you please send me the code that you use in order to control the hardware??

my email is: [email protected]

Thanx in advance

Harry
 
D

Derek Yerger

Hi, I found this page from my web logs. I authored the schematic, and I can answer your question.

Simply attaching a resistor between +5V and the sensor input will always return 5v. I think you are trying to measure the resistance.

In order to give a reading, you have to have a common ground. Perhaps you are trying to build a voltage divider. In this case, you could put two resistors in serial. On the opposite ends you would have ground and 5V, and in the middle you would connect the sensor input.

If you used two equivalent resistors, the sensor input should read 2.5v. A voltage divider is what is used in my design to measure temperature. Take for example, a 10Kohm thermistor. By coupling this with a 10k resistor in a voltage divider, and given the thermistor reads 10K at 25 degrees C, then at 25 degrees C the input would read 2.5v. From this, you can derive the temperature of a given thermistor given the voltage.
 
Top