Pages: 1 ... 3 4 [5] 6   Go Down
Author Topic: ESR meter with Arduino  (Read 66666 times)
0 Members and 1 Guest are viewing this topic.
Serbia
Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I have upgraded existing code with previous modifications to expand measurement range up to 50 Ohms and to make this ESR meter autoranging in the range of 0-50 Ohms which should be more than enough range for the ESR measurement. The code is included in the attachment and on the schematic you have to add one more PNP transistor with the same configuration as Q1 but with the 1k resistor instead of 100R (1k is for upper range measurement). Pinout in my sketch version is different in order to match my board so you will have to modify it according to your board settings.
Any comments/suggestions are welcome...

* ESR50_AutoRange.zip (5.55 KB - downloaded 303 times.)
Logged

Italia
Offline Offline
Newbie
*
Karma: 0
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello everyone, and thank you for sharing your work.
I built the ESR meter using an Arduino UNO and a lcd display CDL4162-HD44780.
My version can work in two ways: with Arduino UNO connected to the board face down, and in standalone mode.
In the first case, only the bottom side of the pcb is required (single side)
I also added a function that allows me, by selecting the right value of the DUT, to know immediately if it is good or not.
BUT there is a problem: If I measure a 1ohm resistor, the reading is quite correct, but if I measure 150mohm or 75mOhm, the reading is totally wrong.   smiley-eek
Is there anyone who can help me? Thank you. smiley-confuse


* Standalone.JPG (64.37 KB, 640x480 - viewed 407 times.)

* 1000mOHMs.JPG (71.55 KB, 640x480 - viewed 367 times.)

* 150mOHMs.JPG (76.94 KB, 640x480 - viewed 417 times.)
« Last Edit: May 11, 2013, 04:44:08 am by Baravantan » Logged

Italia
Offline Offline
Newbie
*
Karma: 0
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

...mah:
20 days, 10 downloads, 0 replies   smiley-zipper

Logged

Upstate NY
Offline Offline
Full Member
***
Karma: 2
Posts: 184
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

You need to post the code you are using and the schematic of your hardware before someone can help you.
Logged

Italia
Offline Offline
Newbie
*
Karma: 0
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

... 10 downloads of the attached .zip file with code, images, schematics and PCB design...

* MyESR.zip (702.36 KB - downloaded 327 times.)
Logged

Italia
Offline Offline
Newbie
*
Karma: 0
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

 smiley-sleep ...is there anyone who has successfully measured low ohmic values​​, for example 0.1 or 0.01; appropriate values ​​to an ESR metersmiley-wink
Logged

Hamburg, Germany
Offline Offline
Newbie
*
Karma: 0
Posts: 18
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi Baravantan,
To answer your last question, yes, I have measured what seem to be good values in the milliOhm range. I have a 100mOhm precision resistor and have measured many capacitors with what appears to be reasonable and repeatable results.
I took a quick look at your code and all appears to be OK with the actual calcESR routine. I didn't look at your PCB layout so I can't say more than that in my proto-board build I used the schematic exactly as in the original post EXCEPT that I used a 10microFarad cap and a 110Ohm resistor in the pulse circuit (47micro and 100 Ohm in the original).
I did notice in testing that the whole thing is very sensitive to the declared supply voltage and the value of this resistor. And I noticed in your code the following...

double Vin_LO = 4700; // milliVolts
uint16_t Rs_LO = 110; // Ohms

Are you actually using a 110 Ohm resistor? And is your supply voltage really only 4,7 V? Unless these (and the Vref voltage) are well defined, the calculation can be very non-linear.
Anyway, hope this helps.


* photo.JPG (81.39 KB, 640x480 - viewed 238 times.)
Logged

Italia
Offline Offline
Newbie
*
Karma: 0
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi, Totoro, and thanks for your help!
These days I've done some tests, including the correction of the parameters that you have shown me, but without solving the problem.

double vRef = 1.079; // Volts
double Vin_LO = 4980; // milliVolts
uint16_t Rs_LO = 99.8; // Ohms

All values ​​measured with a €40 multimeter (what I have)

Considered that your ESR Meter works, surely my problem isn't in the code.
I think there is a lot of work waiting for me...

Thank you again.
Logged

Brooklyn
Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sorry, I am just a breadboard/point-to-point/proto-board type. My main need for an ESR meter is to troubleshoot old audio gear and test equipment.



Hello  Totoro , I am having a hard time wrapping my head around which pins you hooked up to the 7 segment displays, can you possibly draw something quick showing pinouts?   i dont want to use a lcd display,  im going to make a smd version of the board and will post the results after i have a working prototype.

thanks so much!


« Last Edit: May 16, 2013, 10:55:35 pm by cepc » Logged

This message sent with 100% recycled electrons.

Brooklyn
Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ohh crap.    smiley-red

i need to take it easy on the drinking.. i think

let me guess:  these are the common anodes (or cathode depending on display.) going to a transistor for each.

#define PIN_DIG_0 10 // least significant digit
#define PIN_DIG_1 11
#define PIN_DIG_2 12
#define PIN_DIG_3 13

these go to their respective pins on display..

#define PIN_SEG_DP 8
#define PIN_SEG_A 3
#define PIN_SEG_B 2
#define PIN_SEG_C 9
#define PIN_SEG_D 6
#define PIN_SEG_E 7
#define PIN_SEG_F 4
#define PIN_SEG_G 5


or do i need to stop drinking???  i think i can keep drinking.  smiley-twist
« Last Edit: May 17, 2013, 12:45:40 am by cepc » Logged

This message sent with 100% recycled electrons.

Iowa
Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Here is a shield I built for my Uno. It has a resolution of 0.02 Ohms. I'm currently finishing the video for the code demo/explanation on how it works.



Next I plan to simplify it a bit more and add a basic function generator on a shield designed for the Due.

I would like to thank Tim and his Visual Micro project. Using his add-in to program and debug the Arduino software made it easy.
www.VisualMicro.com
« Last Edit: May 22, 2013, 02:35:02 pm by garballz » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi

Did anyone work on getting this to work with nF range capacitors, or to a resolution of mOhms or better?

What sort of time window is it taking to do the measurement for you guys?
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,
is it  possible in this scheme to measure the capacity of the capacitor?
If so, by what formula?
Thanks.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Can anyone tell me if this ESR can be used to test in circuit caps?
« Last Edit: December 05, 2013, 11:03:52 pm by spyromania » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Dear SZMEU,

It WORKS!

I built it as originally designed but to challenge myself I used all SMD components. The .1uF cap (0603) was a challenge as were the TO-23 cased transistors but it works just fine.

I used an Arduino MEGA 2560 and had to modify the code a bit. For those who have the MEGA and are using a standard 44780 2 line X 16 char LCD do the following:

LiquidCrystal lcd(6, 5,  10, 11, 12, 13);

comment out the setLEDpin lines - they dont work with this display
also   analogReference(INTERNAL1V1);  //setting vRef to internal reference 1.1V

INTERNAL won't work on the MEGA - you must add the specifier "1V1" to the parameter.

This was indeed a fun project. I learned alot from building it. Thanks for sharing. Look forward to your next one.
Logged

Pages: 1 ... 3 4 [5] 6   Go Up
Jump to: