I hope it is fine adding something to the subject. If it is not, I apologize.
This is my shorty. I altered the schematics and use MCP601 at voltage supply of 5v, and Arduino Nano. I setup the current level for measurements at 25.5 mA, and gain of op-amp at 27.45. I have attached a picture of PCBA (THT) with LCD (I2C) not attached to it and SMD PCB on which I plan to change supply voltage at 3.3V using 3 diodes in series.
I am impressed by this device's performance and stability at 2 milliohms resolution. It produce audible differences at changes of few milliohms and together with display and a LED I added, which is in synchronism with the buzzer, it is very nice tool to work with. I did not use 4 wires connections as I subtracted the resistance value of wires into calculations. At the end for locating a short circuit I like mostly it to be setup for a range up to 1.5 ohms. I checked this simple construction against an industrial milliohm meter in measurements and I am impressed by its performance, not speaking about visual and audio aid it brings with.
Below I included one of sketches just as an example how simple it is, in my case. It does not include LCD subroutine. I list below the code as it is short.
//by Zoli on Jan 2021
const byte sensorPin = A5; // select the input pin for sensor
int buzzer = 6;//audio output
int led = 13; //signal led
long sensorValue = 0; // variable to store the value coming from the sensor
int pnp = A3; //transistor base
float voltage;
float voltagei;
float ohm;
int j;
void setup() {
Serial.begin(9600);
analogReference(INTERNAL);//using internal 1100mV reference
pinMode(sensorPin, INPUT);
pinMode(buzzer, OUTPUT);
pinMode(pnp, OUTPUT);
pinMode(led, OUTPUT);
}
void loop() {
digitalWrite(pnp,LOW);
digitalWrite(led, HIGH);
for (int i=0; i < 20; i++) {
sensorValue = sensorValue + analogRead(sensorPin);
}
sensorValue =sensorValue/20;
voltage = ((sensorValue * 1100)/1024 );
voltagei = voltage / 27.45;
ohm = ( voltagei/25.5) - 0.05;
// print out the value you read:
Serial.println(ohm,5);
//Serial.println(voltage , 5);
//Serial.println(voltagei , 5);
//Serial.println(sensorValue);
delay (2);
if (ohm <1.5){
// change the analog out value:
digitalWrite(buzzer, HIGH);
analogWrite(6,( 4500*ohm));
digitalWrite(led, LOW);
// stop the program for <sensorValue> milliseconds:
j = 1/(.1*(ohm));
delay(j);
}
// noTone(6);
analogWrite(6, 0);
delay(10);
}
Please, let me know if you have any recommendations. I am not an expert in Arduino programming.