• Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

Maxim Analog switch selection


I have built quite a few solar charge controllers for domestic use on 12V LED lighting.

In my last design I have used the ACS712-05 hall effect breakout board to measure a range of ± 5A fed into the battery from my 150Watt solar panel (via the charge controller)

During daytime when the battery is charging current flows in the one direction, and at night when I use my 12V LED lights, current flows out of the battery again. The ± ability of the ACS712 then comes in quite handy.

I want to go bigger now. But unfortunately the ACS712-20 (20Amp version) chip only allows for 100mV/A signal resolution (vs the 185mV/A from the 5A version)

There are a few ways to get better resolution, but I decided to go with the AD623AN Instrument amplifier. The required Gain can be achieved by adjusting the Rg resistor value.

MAX4993-AD623 Mod.png

My plan is to use a short piece of thick copper wire for the Shunt resistor. (mV drop over the copper wire will be noted in test conditions and that mV signal will be used as input for the AD623). This will give me the freedom to basically measure any current size and not be stuck with fixed ranges (5,20 and 30) the ACS712 chip offers. With my solar panel the maximum current supply is only 8.6A and that will be in super ideal conditions. A range of 0..10Amps would be used in the programming.

This all will work fine if current only flows to charge the battery. But at night the flow direction changes and that will create a negative voltage drop over RShunt.

Here is my question:
I was thinking of using a MAXIM Analog switch IC that can be controlled by the Micro controller when to change over. I have never used this type of arrangement before, and I was wondering if somebody here maybe have done something like this before. The measurement signal is in millivolt, hence I will go for the MAX4993 chip. The internal resistance of the switch is stated at 0.3Ω

I was thinking that I should keep the resistance as low as possible because of the very low source signal.

If there is a better solution out there, please feel free to share. I am open to any suggestions


Well-Known Member
Most Helpful Member
Do you have a spare ADC input? If so, you could use two opamps, one for each polarity, to give charge and discharge currents each at full ADC scale.

I'd also move the shunt to the negative side of the battery so it's within the supply range of the analog circuits. That's easier to work with and allows simpler, cheaper devices to be used.

If you want either polarity on the same ADC, you could use a full wave rec circuit such as this:

plus a simple comparator across the shunt to give a separate "sign" or charge/discharge indication to a spare digital input.

Also, are you aware you can buy precision PCB mount current shunt resistors? eg. these are some ten milliohm ones:


Thank you very much for your valued input. I love the PCB mount current shunt resistor. Makes my designs so much easier knowing the values beforehand.

I have decided though to use LT1495CS. With the LT1079 the very low millivolt input signal would still need to be amplified with another op-amp to get a desired 0..5V for the arduino and that just keeps adding components to the design. Luckily I do have extra Analog input ports available and I will use a channel for charging and one for discharge as you suggested.


Well-Known Member
Most Helpful Member
Do you have a spare ADC input? If so, you could use two opamps, one for each polarity, to give charge and discharge currents each at full ADC scale.
If he keeps the trimpot to set the gain, then it won´t be so esasy to get the same gain for both polarities.

EE World Online Articles