Go Down

Topic: IR LED - Which would use less power? (Read 3454 times) previous topic - next topic

daveyjones

I don't own a uCurrent (and can't afford one); I have no good way of measuring low amperages. (I am contemplating building one over time)

That said; I want to run something on batteries, but (of course) want it to run forever.  I have done a lot to get it down...

But, I am running an IR LED to send a single IR code periodically.
Currently, I have it (see attached, lower schematic) run it directly off the arduino pin.  This is working.
But, the (see attached, upper schematic) "proper way" has been suggested may be better in power usage.

The difference that I can tell is: the LED would be taking power directly from the batteries (3 AA) instead of thru the arduino regulator.

"KISS" tells me to leave it as is; but if the proper way would yield longer battery life, I'd happily go with that.

Any ideas which will perform better, battery wise?

Thank you.

(Bonus Question: If you use KiCad, how can I get resistors to show up with more conventional zig-zag line?)

daveyjones

Forgot to add the image...

olf2012

The diode is the wrong way around in the upper circuit.
It does not really matter whether you drive the LED with an additional transistor. Power consumption will be proportional to the LED current. And you will need a certain current to have the LED send over a given distance. First try to determine which minimal current is necessary for your hardware setup. Then adjust the current with a reasonable margin (maybe 150%) for reliable transmission.
BTW when using three AAs you do not need a regulator. Get rid of the Arduino board and build a stand alone circuit. This will save MUCH energy

Boardburner2

#3
Mar 27, 2016, 10:31 pm Last Edit: Mar 27, 2016, 10:39 pm by Boardburner2
Agree.
Even when not transmitting the arduino will be drawing significant power.

Dedicated chips draw zero power until the button is pressed and can run off a coin cell.

If this has to be automatic investigate how to put the arduino into sleep mode.

If a regular pulse , you may consider a low power 555 timer circuit, it will draw much less than an arduino.

daveyjones

Thanks!
@olf2012 - re:diode: Sorry about that -- I was trying to get the schematic done quickly to post so I wasn't hit with "a schematic please"... I am still working out think with kicad; some things are just not intuitive.

So far I can put a 480ohm resistor and it works.  Going to 1K it started to get flakey if the sun was really bright.
I have supplied power to "raw" pin, I thought this bypassed the regulator; but I can remote the regulator as well. (I already removed the 'power is on' led)

@Boardburner2 - I am using rocketscreams "low power" library; here's my setup; then my delay does go to sleep...
Code: [Select]
power_adc_disable(); // ADC converter
  power_spi_disable(); // SPI
  power_usart0_disable();// Serial (USART)
  //power_timer0_disable();// Timer 0
  //power_timer1_disable();// Timer 1
  //power_timer2_disable();// Timer 2
  power_twi_disable(); // TWI (I2C) 
  I haven't disabled a timer, because I hadn't yet looked to see which timer irRemote uses.

and where I would use a delay() I am using my own function that takes seconds (not milliseconds) to sleep for most of the time:
Code: [Select]
void mySleepyDelay( int delayTimeSeconds ){
  unsigned int secondsPassed=0;
  while( secondsPassed < delayTimeSeconds ) {
    LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
    secondsPassed += 8;
  }
}
(yes, I know it can go up to 8 seconds beyond, but I'm sleeping for 1.5 hours, not seconds, so it's not a critical timing.

I had considered using a 555 timer; but I couldn't easily figure out how to get it power on the arduino long enough for it to run a sketch.  I got it to use be an external interrupt to wake it out deep sleep instead of the 8second timer.  Since I can't measure low ma's I couldn't tell if that saved me anything as I was now powering 2 things instead of just 1.

More and more that uCurrent is looking like a must-have.  I should play with my cheap oscilloscope (dpscope ii) to see if I can use it to measure sub-ma's.

Boardburner2

I had considered using a 555 timer; but I couldn't easily figure out how to get it power on the arduino long enough for it to run a sketch.  I got it to use be an external interrupt to wake it out deep sleep instead of the

I will leave the software for the more capable.

You could use a simple latch which the 555 fires up, then use an arduino output to switch it off when it has done its job.

I was thinking that a dedicated remote chip with a 555 would work.
Arduino would be more flexible though.

Boardburner2

More and more that uCurrent is looking like a must-have.  I should play with my cheap oscilloscope (dpscope ii) to see if I can use it to measure sub-ma's.
I have a microamp lab meter that has not left the cupboard in 20 years.

Google on VU meter.
Analog ones with 200 uA fsd can be had.

Never needed anything else .
You need to understand kirchoffs laws though to use them properly.

daveyjones

Thanks.  I'll have a look at 555 latching circuits.
Thanks for the idea!


MarkT

Microamps are measured using a resistor and a voltmeter!  That's how any multimeter does it, and
you can do this with another Arduino's analog inputs if you want!  1uA through 10k gived 10mV...

Even cheap multimeters can do this with a resolution of 0.1uA.  You can even get mechanical
microammeters with 0..50uA full scale (though they will not tolerate over current and are easy to damage).
[ I DO NOT respond to personal messages, I WILL delete them unread, use the forum please ]

daveyjones

cool! I'll try to find an example of how to set this up after classes.
thanks

daveyjones

You could use a simple latch which the 555 fires up, then use an arduino output to switch it off when it has done its job.
Well; I searched for 555 latch circuit and came up with a dizzying array of various solutions...
I'm sure the time would be well spent to learn the ins and outs of the 555; but for now I am going to shelve it -- I couldn't find something that would turn on the arduino until the arduino says "turn off".

I can see a possible mid--way solution, but again, w/o being able to measure the low current; I'm not sure it'd be worth the effort.

Use the 555 to send an external interrupt to wake up the arduino every X minutes (ideally 90 or more), and the arduino just treat it as an interrupt; do it's job; then go back to deep sleep "forever".

but I think getting the 555 to turn it on & wait for the 555 to get a signal "I'm done" and turn it off would be better, based on what I have seen on 555 specs on power usage...

if you have  circuit/schematic in mind or a good place to hunt one down; I would really appreciate it.

Off to class.

Boardburner2

#11
Mar 28, 2016, 10:14 pm Last Edit: Mar 28, 2016, 11:48 pm by Boardburner2
Here is a start

http://www.mosaic-industries.com/embedded-systems/microcontroller-projects/electronic-circuits/push-button-switch-turn-on/microcontroller-latching-on-off

http://forum.arduino.cc/index.php?topic=328109.0

Possibly investigating using an external (programmable) interrupt timer as well.

EDIT

This circuit may be better as it only requires momentary contact to tyrn it on.
http://forum.arduino.cc/index.php?topic=373255.15

Boardburner2

Atmel chips can run at 1uA in sleep mode.
Its the perhipherals that you cannot turn off in software which take the current.
Discussed in the thread i linked.

Crossroads has some bare bones boards which get around this problem.

daveyjones

Thanks!  I will read over the links; Thank you so much those.
On 1st glance it seems two things I need to learn -- the latching circuit which will turn on the microprocessor; and a 555 circuit that will 'turn on' the latching circuit (which then turns on the mcp). 
When I was reading the 555 (on my own) I was trying to find something relevant that had a single 555 circuit that did everything.. Now it makes much more sense.

So the 555 circuit will need to be tuned to signal every 90 (or so) minutes for a brief period.  The latching circuit and arduino takes care of turning off.
The 2nd part seems very straight forward; the tuning ('programming') of the 555 will be the hard part (for me -- but I get the idea now; and there's lots of pages out there, so I'm sure I'll get the formula to figure it out)
Thank you!

Wawa

#14
Mar 29, 2016, 09:57 pm Last Edit: Mar 29, 2016, 09:58 pm by Wawa
Not sure why you want to use a 555.
Don't forget that a common 555 uses ~5mA idle, and won't work below 4.5volt.
It can sink some current at that low voltage, but not source.
A Cmos 555 can work at a  lower voltage, uses 60-200uA idle, but can't drive/switch much at low voltages.

What are you planning to do with this intermittend 'IR code'.
Leo..

Go Up