I'm using an lt3092 constant current source set to 68ma via teensy 3.1 3.3v pin. Using an lm4040 2.5v voltage reference diode on aref. This just isn't acting the way it should. When I short out it out, it reads around 1 ohm. I tried to calibrate it for wire length and diameter using a 1ohm resistor(reads 1.4ohm with my meter) and using math for the resistance that's already present in the wiring. I'm trying to read down to around 0.02 ohms. When I completely disconnect the resistor to be measured, it reads around 40ohms. I used this code from lowtech.com and changed the couple things. I'm sure I just have something wrong here. Please let me know what you think. I am using a 0.1uf cap between input and ground.
If there's a better way to read low resistance, I'm all ears.

If there's a better way to read low resistance, I'm all ears.
Code:
const float currentSupply = 0.068; // The current generated by the lt3092 with 10ohm resistor on vOut and 68k resistor on rSet.
const float referenceVolts = 2.5; // lm4040 2.5v
const float resistorFactor = 8191; //Full scale this time.
const int resistancePin = A0; //Resistor / output from lt3092 circuit connected to analog pin 0
void setup()
{
Serial.begin(9600);
analogReadRes(13);
analogReadAverage(32);
analogReference(EXTERNAL);
}
void loop()
{
int val = analogRead(resistancePin); // read the value from the sensor
float volts = (val / resistorFactor) * referenceVolts ; // calculate the voltage
float resistance = volts / currentSupply; //Use voltage to calculate the resistance
Serial.println(resistance);
}

Last edited: