Too much current draw by ACS712 5A sensor, weak voltage to be sensed.

Thread Starter

vkpaul123

Joined Dec 9, 2017
15
Hello everyone.

Objective:
I am working on a fairly simple looking IoT project, which mainly involves monitoring of power generated by vertical axis wind turbines. I am making a small-scale demonstration model, in which I'll be doing analysis on the collected data later. The main objective is monitoring only, not storage or power or charging of batteries, or anything of that sort.

Well, data analysis is a challenge for later part, and I am in my initial phase of my project where I am mainly testing out if things are working or not.

This is the first time that I am working on arduino, and I am absolutely new to electronics, but it still seems a lot interesting to me.


Situation:
I am using small permanent DC motors commonly used in toys, like a lot of people use them for wind turbine projects and making DIY Anemometers. I have 6 of them with me. So, in my initial testing, I was supposed to make sure the voltage generated is below 5V before it goes to any of the analog input pins to be read. I first found out the polarity and maximum voltage that is generated by the DC motor with a multimeter, and the max voltage was around 0.37V which was still safely measurable by arduino's analog input pin. Moreover, the maximum voltage is a lot lower than 5V so, I did not use any resistors for Voltage Diver Circuits, so, the voltage is going directly to the arduino analog pin.

To go further, I wanted to see what is the current that the motor is generating. Here, I connected my DC motor to ACS712 5A Hall Effect Current sensor, and I was able to get some reading, stating the presence of measurable current, and of course, I had checked the amperage of the DC motor before connecting it to the sensors and arduino.

I am not writing the smoothening code to get the precise electrical measures for now, as I ran into a roadblock.

Problem:
To move ahead, I decided to measure the power. For that, I connected the positive terminal of the DC motor generator directly to one of the analog pins to sense the raw value Voltage directly. Then the negative terminal to one of the Ground pins. Then to get the Current raw value, I connected the positive and negative terminals to ACS712 positive and negative terminals, respectively in parallel. (I know ACS712 can sense the current in both directions). I powered on the entire set up and got into Serial Monitor (and sometimes Serial Plotter). I was getting raw values of current. But the voltage showed 0 (zero) all the time. So, I suspected the wiring, it seemed to be ok. Then the most Obvious issue, a weak and inefficient generator! So, I changed the DC motor generator to the 1000RPM geared DC motor, and the similar (but not the same) issue popped up. This time I was getting 0 and a significant number of 1's in the voltage, slight improvement (and also to remind me that my generators are too weak!). I also noticed a very strange thing, that is the motor was having difficulty while rotating and was needing a significant amount of torque to rotate it and if I plug out either the voltage lead or the current lead, this strange issue for me was gone. But, I can't do that as I need to calculate power and not just current or voltage! So, I put the smaller non-geared DC motor, which I was using initially, to check what's the deal with that. I got my multimeter and put it across the terminals while running the entire setup again. And it was generating voltage but in millivolts. I had to set the multimeter to read that. It was reading somewhere around 1-2mV which is almost nothing, and the arduino cant sense that as it requires 0.004V (4mV) for its steps. It was having the issue of too much current being drawn that was slowing it down, but it was not that noticeable, as it required a lot less torque to rotate.

Constraints:
I don't want to use different motors, as the other big ones require too much torque to rotate. My VAWT is not going to be that big in size, that put's another constraint on the motor upgrade. So, upgrading the motors is the last resort.

Other Info:
I read somewhere that OpAmps can be used to amplify the voltage.
Instrumentation Amplifiers are more preferred. So, if that is the way I can go, then at least I can get the signal to the arduino and I can measure the actual voltage in the code.

What do you suggest?
Also, I have no idea about amplifiers and setting up the gain and all that and which one to use. I don't understand circuit diagrams that much. I have read other forum posts which required sensing pressure as well, and there were some ICs suggested there. But, I require your suggestion for my application.



Thank You in advance.

-Vikram
 

dendad

Joined Feb 20, 2016
4,478
Please put a circuit of your setup. The way you are describing it sounds like you have short circuited your generator.
Also, using the Hall current sensor for a small demo may not work well as the generator could be struggling to output enough current for it to operate well. You could improve this by putting the Hall current sensor in a magnetic core gap and run multiple turns of wire around the core to increase the magnetic field. This would be ok for a demo.
 

AlbertHall

Joined Jun 4, 2014
12,347
Ammeters, like the ACS712, have a very low resistance so it is effectively a short circuit across your generator. that is why the voltage is very low and the motor gets hard to turn. The pictures below show circuits with an ammeter and a voltmeter connected. Your meters are connected like picture 1 (except that you don't have a load resistor, R). The only picture which is correct is number 4. You will need a load resistor connected, perhaps 10-100 ohms. This will allow the voltage produced by the motor to cause a current to flow in the resistor and be measured by the ammeter and the voltage can be measured by the voltmeter (arduino).

Incidentally, I would suggest a resistor in series with the connection to the arduino pin, say 1k to 10k, which won't affect the measurment but will protect the arduino input pin - just in case.


 

Attachments

Reloadron

Joined Jan 15, 2015
7,523
I believe if you read the data sheet for the ACS712 you will find among other things it has a 1.2 mΩ internal conductor resistance. This would run with Albert Hall's and Max Headroom's post in that you are effectively placing a short across the little motors output and using the ACS 712 in a way it was not designed to be used. Spinning a small generic in nature DC motor I typically get 0.300 VDC maximum and about 40 mA maximum.

Ron
 

Thread Starter

vkpaul123

Joined Dec 9, 2017
15
Ammeters, like the ACS712, have a very low resistance so it is effectively a short circuit across your generator. that is why the voltage is very low and the motor gets hard to turn. The pictures below show circuits with an ammeter and a voltmeter connected. Your meters are connected like picture 1 (except that you don't have a load resistor, R). The only picture which is correct is number 4. You will need a load resistor connected, perhaps 10-100 ohms. This will allow the voltage produced by the motor to cause a current to flow in the resistor and be measured by the ammeter and the voltage can be measured by the voltmeter (arduino).

Incidentally, I would suggest a resistor in series with the connection to the arduino pin, say 1k to 10k, which won't affect the measurment but will protect the arduino input pin - just in case.


 

Thread Starter

vkpaul123

Joined Dec 9, 2017
15
I believe if you read the data sheet for the ACS712 you will find among other things it has a 1.2 mΩ internal conductor resistance. This would run with Albert Hall's and Max Headroom's post in that you are effectively placing a short across the little motors output and using the ACS 712 in a way it was not designed to be used. Spinning a small generic in nature DC motor I typically get 0.300 VDC maximum and about 40 mA maximum.

Ron
 

Thread Starter

vkpaul123

Joined Dec 9, 2017
15
Please put a circuit of your setup. The way you are describing it sounds like you have short circuited your generator.
Also, using the Hall current sensor for a small demo may not work well as the generator could be struggling to output enough current for it to operate well. You could improve this by putting the Hall current sensor in a magnetic core gap and run multiple turns of wire around the core to increase the magnetic field. This would be ok for a demo.

Can you please tell me how do I do that!?


How much load resistance should I put?
Ammeters, like the ACS712, have a very low resistance so it is effectively a short circuit across your generator. that is why the voltage is very low and the motor gets hard to turn. The pictures below show circuits with an ammeter and a voltmeter connected. Your meters are connected like picture 1 (except that you don't have a load resistor, R). The only picture which is correct is number 4. You will need a load resistor connected, perhaps 10-100 ohms. This will allow the voltage produced by the motor to cause a current to flow in the resistor and be measured by the ammeter and the voltage can be measured by the voltmeter (arduino).

Incidentally, I would suggest a resistor in series with the connection to the arduino pin, say 1k to 10k, which won't affect the measurment but will protect the arduino input pin - just in case.


 

dendad

Joined Feb 20, 2016
4,478
Here is a quick scribble. I should be in bed asleep ;)
GenTestSetup.jpg

The load you use will depend on your generator. See if it will get to 5V to light the LED for a start. Then if it will, add 47R resistors and that will increase the current drawn by about 100mA per resistor across the output if you can get 5V from the generator.
You can experiment with the current sensor. For a test, just read it and move a magnet near it and you will see the reading change. So, winding the current wire around a small steel bolt and placing that electromagnet on the sensor (put some tape there to insulate it) will increase the sensitivity for your low power demo setup. Otherwise the readings you get from the current will be small.
The diode D2 and D3 are "reversed" and clamped to gnd and +5V to prevent damage to A0 if the voltage reading goes over 5V.
R1 and R2 can be adjusted to form a voltage divider if the voltage is higher.
D1 prevents reverse volts if the motor is driven the other way or you connect it up backwards.
C1 is the main generated power filter, and C2 and C2 are filters for the analog readings.
I think that is about it. Once again, sorry for the quality of the circuit. have fun :)
 

Thread Starter

vkpaul123

Joined Dec 9, 2017
15
Here is a quick scribble. I should be in bed asleep ;)
View attachment 141339

The load you use will depend on your generator. See if it will get to 5V to light the LED for a start. Then if it will, add 47R resistors and that will increase the current drawn by about 100mA per resistor across the output if you can get 5V from the generator.
You can experiment with the current sensor. For a test, just read it and move a magnet near it and you will see the reading change. So, winding the current wire around a small steel bolt and placing that electromagnet on the sensor (put some tape there to insulate it) will increase the sensitivity for your low power demo setup. Otherwise the readings you get from the current will be small.
The diode D2 and D3 are "reversed" and clamped to gnd and +5V to prevent damage to A0 if the voltage reading goes over 5V.
R1 and R2 can be adjusted to form a voltage divider if the voltage is higher.
D1 prevents reverse volts if the motor is driven the other way or you connect it up backwards.
C1 is the main generated power filter, and C2 and C2 are filters for the analog readings.
I think that is about it. Once again, sorry for the quality of the circuit. have fun :)

Oh man! You're a life saver!

Also, I rewired the entire circuit. I had got the Ammeter and voltmeter wrongly wired in. Now I'm getting both voltage and current, but are too low! But they are working!

Right now I'm trying two of these DC motors in series to give me higher voltage. I'm still working on it.


And I'll surely do whatever you gave me. It's really great if you!

Thank you and everyone who all are helping me.

Side note: i just found out that my Motors are small 3V DV motors. Lets see how they do. And the Voltage that they produce is 0.36V maximum.
 

Thread Starter

vkpaul123

Joined Dec 9, 2017
15
People!

I've decided to connect two Motors in series to increase the electricity that is being and then I am thinking of connecting a L7805CV linear voltage regulator to keep the voltage under 5 volts. I want to use a linear voltage regulator in place of voltage divider will that work?

Side note: my electricity production has increased after i connected the generators in series. I am connecting to generator in series.
 

Reloadron

Joined Jan 15, 2015
7,523
I am thinking of connecting a L7805CV linear voltage regulator to keep the voltage under 5 volts. I want to use a linear voltage regulator in place of voltage divider will that work?
Well let's see, if I look at a L7805 Data Sheet I see it has a 2 volt dropout voltage. That tells me that it will not begin to regulate until the voltage rises to at least 7 volts and then the output will always be 5.0 volts. That really tells you nothing does it?

As I mentioned earlier with a small generic DC motor, I have no idea what the working voltage is, driving it with an electric variable speed drill, the best I could get was about 0.3 VDC at about 40 mA. My guess is you will need a heck of a lot of motors in series to exceed the 5.0 volt maximum to an Arduino, assuming a 5 volt A/D reference. Next if you place these little motors in series acting as generators, what happens to I total? You need to think about your total current in a series configuration.

Side note: my electricity production has increased after i connected the generators in series. I am connecting to generator in series.
What has increased? Voltage? Current? Power? Think about it. :)

Ron
 

MaxHeadRoom

Joined Jul 18, 2013
28,698
So, in my initial testing, I was supposed to make sure the voltage generated is below 5V before it goes to any of the analog input pins to be read. I first found out the polarity and maximum voltage that is generated by the DC motor with a multimeter, and the max voltage was around 0.37V which was still safely measurable by arduino's analog input pin. Moreover, the maximum voltage is a lot lower than 5V so, I did not use any resistors for Voltage Diver Circuits, so, the voltage is going directly to the arduino analog pin.
The generated voltage off load should be the same voltage that is required to operate the motor at a particular RPM.
IOW if a motor is rated at 5vdc and rpm of 2000.
Back-feeding or rotating the motor at 2krpm should produce 5vdc.
Max.
 

Thread Starter

vkpaul123

Joined Dec 9, 2017
15
What has increased? Voltage? Current? Power? Think about it. :)

Ron


And so to test that I got my handy multimeter out on dc voltage setting. And I was able to measure the voltage that was going beyond 6.3V.

Ok this time I changed one thing though. I'm spinning the motors at higher voltage. I'm sorry to change other variables here, but I just wanted to play around with it. And of course I didn't connect that to the Arduino as i know it won't end well! So I was just using the multimeter.

I'll put the voltage divider then instead of that voltage regulator IC. Get everything wired up. And then I'll report to you guys.

Thanks again!
 

Thread Starter

vkpaul123

Joined Dec 9, 2017
15
The generated voltage off load should be the same voltage that is required to operate the motor at a particular RPM.
IOW if a motor is rated at 5vdc and rpm of 2000.
Back-feeding or rotating the motor at 2krpm should produce 5vdc.
Max.
Yes sir! something like that is happening.


Also I'm spinning the motors with another same type of motors wired on a 12V power Lead Acid Battery in Series to get 6V each. And I'm not running them for more than a few seconds. Please forgive me for this torture that I'm doing to the motors. They're running on very fast though, so I get highest 6V. Now I need to put that voltage divider and I'm still working on it.

Thank you
 

dendad

Joined Feb 20, 2016
4,478
If you can find a 12V or 24V stepper motor from an old printer or something, use that and run a 3 phase diode rectifier bridge on the output. They make excellent generators for low power testing. I had one set up as a garden windmill just running LEDs when the wind blew.
And circuit wise, they are the same as a real wind generator.
 
Top