Power saving mode

Post date: Dec 02, 2015 4:24:57 AM

Power saving:

According to the different datasheet the theoretical power consumption of my sensor should be:

sharp sensor: 20ma

3DR transmitter: 100ma

Arduino uno R3 46.5ma

total 160ma

According to what i found on internet about Atmega sleep mode i can save 10ma on the 46.5 ma

I can power the sensor and the transmitter via a simple transistor switch on the ground pin of the sensor and the transmitter.

that's mean that when sensor and transmitter up the power consumption will be 160ma

and when the sensor is idle, by switching off the sensor and the transmitter and by using the sleep mode, the power consumption could be 36.5 ma.

My 6x1.2V nimh cell pack is 2000mah and my solar charger can provide around 100ma.

Measurement:

I have connect an ampmeter between the battery pack and the arduino board and have the following result:

initialization: 70ma

sampling and transmission: oscillating between 100ma to 120ma

What can i do out of that?

From the blog Sleeping Arduino - Part 5 Wake Up Via The Watchdog Timer i made measurement of amp on my arduino uno R3 prototype board

the power consumption of the board was 36ma.

Then i upload the Blink code found in the IDE example and the reading was 46.5ma.

So i can save 10ma by using the sleep mode of the Atmega.

Sleeping code with watchdog timer example:

BC547B transistor as switch for the dust sensor and the transmitter:

I want to use a transistor as switch to enable or disable the dust sensor and the radio transmitter. ihave few BC 547B transistor in stock,According to the datasheet this transistor can drive up to 100ma with a Base voltage of 6V max. so it should be perfect to drive it from arduino output.

From http://kaizerpowerelectronics.dk/calculators/transistor-base-resistor-calculator/ website i calculate the base resistor value to saturate a BC547B is 4k‎Ω. i don't have 4k‎Ω resistor in stock so i will use the next lower value have which is 3.3k‎Ω.

I just need to drive the Signal Ground pin from the sharp dust sensor and the ground pin of the 3DR transmitterfrom to of the PWM output of the arduino.

No need to drive the Led ground pin of the sharp dust sensor because when the led is off the current is null.

Transistor switch schematic:

Dust Sensor Schematics:

This is the schematics of the dust sensor with the two transistor switch to drive the shrap dust sensor and the 3DR transmitter.

Dust Sensor Breadboard:

PCB:

I can't process PCB myself and the next shop nearby to do it is to fare away so i'm using double side prototype board 5cmx7cm and cooper wire stripped from network cable for the tracks.

I'm using normal header for the connection to the arduino. It's fit perfectly on one side but not on the other side. My prototype board is too short and i discover that the space between PWD7 and PWD8 is not a multiple of 2.54 mm. That's a kind of disappointment for me. What's was in the mind of Arduino to make such thing? Leave some room to manufacturer to sell prototype board?

It's certainly not helping DIY guy like myself who try do hack things and do with what we can find.....

Anyway i manage to make an extension board fitting in the arduino header by cutting 2 pieces from a single side prototype PCB and solder some cooper wire and header. I can bend a bit the wire to fit in the board hole that's not perfectly align with the headers.

I try to use fritzing to position the components on my prototype board bur quickly gave up because didn't understand the logic of the bottom view and top view. It's probably make more sens if you have to print a raster from it for PCB processing. I try for fun the auto-routing function of fritzing but was not impressed by the result. I really need to give a try to the free version of eagle....

Code:

Conclusion:

Measurement:

On sleep mode the sensor is using 35ma.

when the dust sensor is on: 50ma

when the transmitter is on: 100ma.

The sequence to sample and average 100 reading and transmit it take 2s and the Watch dog sleeping mode is set up for 8s. The total cycle between tow measurement is 10s.

The sensor is using 35ma for 80% of the time and an average of 80ma for 20% of the time.

My solar cells produce 100ma on sunny day for let say 10 hours (i'm lucky enough to be located on the on the equator) so it will have enough power to charge the battery pack only for 80% of this 10 hours = 8 hours with 100ma - 35 ma= 65 ma

65 ma x 8 hours = 520 ma on a sunny day.

The sensor is going to drain from the battery 80ma fro 5 hours and 35 ma for 9 hours (9 hours of sleeping mode because during day time the 35ma are going to be compensate by the solar cells)

9*35 + 80*5=715ma

I'm short of 195ma per day with this configuration.

Solution:

I can put more efficient solar cells or i can double the sleeping time with the watch dog.

If i do the same calculation with 16s of sleeping time and a reading/transmit time of 2s will have one reading every 18s.

80ma 11% of the time and 35ma 89% of the time.

2.64*80ma=192 ma

12.5*35=437 ma

total = 629 ma.....

Shit......Still too short of 100 ma....

That's should give me around 10 days of running time with my 6xnimh battery pack.

Lets do some field test know......

After few days of test, it's come out that the system is autonomous on sunny day but the solar panel don't provide enough current on cloudy day and if i have 2 cloudy days in a raw the battery pack voltage become too low.

Having more efficient new solar panel should solve the problem..

Having a simple 433mhz radio transmitter instead of the fancy 3DR telemetry could save a lot of power as well. But the essence of the project is to hack things and do with what ever i can find.

What's next:

I'm going to forget about the solar panel charging the battery pack and going to powered the system from my main 24VDC solar system and use a DC to DC converter to power the system.

I will not be able to fix the dust sensor on my weather station pole but can fix it on the outside wall of my bungalow to connect it on my main solar panel 24VDC system.

Now it's time to work on the dust monitor display....