Arduino pro mini power consumption

Hi

In my project i am using NRF24L01, adxL345 accelerometer and Arduino pro mini.

I have made arduino pro mini sleep mode and removed voltage regulator and power led in arduino pro mini.

In ADXL345 i have removed voltage regulator.

if i supply voltage from computer using usb ttl or 3.3volts then whole my project is consuming 0.1mA.

problem is in my project i will be using 3,6v battery if give power supply from 3.6v battery then whole project is consuming 0.2mA.

I am not understanding what is the problem.

can someone please help me

if i supply voltage from computer using usb ttl or 3.3volts then whole my project is consuming 0.1mA.

You cannot supply that setup with 5V (TTL), so I doubt that you get 0.1mA at 5V.

Changing the voltage may change the current consumption.

What type of the Mini are you using?

Hi.

My arduino is 3.3v and I am supplying 3.3v from ttl. When I supply 3.3v device is consuming 0.1mA.if I supply 3.6v then device is consuming 0.2mA

Can your system read less than 0.1 mA? If that's the limit of your detection, you can't say much about a number that is as close as 0.2 mA. Assuming ideal rounding error, it could be something like 1.499999999999 vs 1.500000000001 milliamp. Any digital measurement system will need more than one x the smallest possible reading to have a statistically supported result.

My arduino is 3.3v and I am supplying 3.3v from ttl.

Please explain what that sentence should mean. What does TTL mean in your context as it must have a different meaning than I'm used to.

Sounds to me like he's talking about a 3.3v USB-Serial adapter - that seems to be the terminology used to refer to a 3.3v serial adapter, even if that use of "TTL" may not be strictly speaking correct.

All else being equal, when run at a higher voltage, hardware will consume more current, combined with the issue Chris pointed out above, this result doesn't seem surprising at all.

In general, did you remember to turn off the ADC before going to sleep? ADCSRA &=~(1<<ADEN) - turn back on after sleep with ADCSRA |= 1<<ADEN (I think you also have to throw away the first ADC reading after turning it back on, don't remember) - by default the chip leaves it on in sleep, which eats a couple hundred uA.

bmg1234:
I am not understanding what is the problem.

A schematic of how you have it all wired, with all connections, would be helpful.

if i supply voltage from computer using usb ttl or 3.3volts then whole my project is consuming 0.1mA.

The Pro Mini isn't running. If clocked at 8 MHz, it will draw about 3 mA at 3.3V.

Post the code, using code tags, and a wiring diagram.

DrAzzy:
Sounds to me like he's talking about a 3.3v USB-Serial adapter - that seems to be the terminology used to refer to a 3.3v serial adapter, even if that use of "TTL" may not be strictly speaking correct.

All else being equal, when run at a higher voltage, hardware will consume more current, combined with the issue Chris pointed out above, this result doesn't seem surprising at all.

In general, did you remember to turn off the ADC before going to sleep? ADCSRA &=~(1<<ADEN) - turn back on after sleep with ADCSRA |= 1<<ADEN (I think you also have to throw away the first ADC reading after turning it back on, don't remember) - by default the chip leaves it on in sleep, which eats a couple hundred uA.

here is my code

void disableHardware() {
// radio.sleep(); // Set the radio transceiver in sleep mode
radio.powerDown(); // NOTE: The radio MUST be powered back up again manually
power_spi_disable(); // Disable the Serial Peripheral Interface module.
power_timer0_disable(); // Disable the Timer 0 module..
power_timer1_disable(); // Disable the Timer 1 module.
power_timer2_disable(); // Disable the Timer 2 module
power_twi_disable(); // Disable the Two Wire Interface module.
//power_usart0_disable(); // Disable the USART 0 module.
ADCSRA &= ~(1 << ADEN); // Ensure AD control register is disable before power disable
power_adc_disable(); // Disable the Analog to Digital Converter module

//adxl.setLowPower(true);
}

//*******************
// Enable hardware
//*******************
void enableHardware() {
power_spi_enable(); // Enable the Serial Peripheral Interface module.
power_timer0_enable(); // Enable the Timer 0 module..
power_timer1_enable(); // Enable the Timer 1 module.
power_timer2_enable(); // Enable the Timer 2 module
power_twi_enable(); // Enable the Two Wire Interface module.
#ifdef SERIAL_PRINT
power_usart0_enable(); // Enable the USART 0 module.
#endif
power_adc_enable(); // Enable the Analog to Digital Converter module

radio.powerUp(); // Power up the radio after sleeping

//adxl.setLowPower(false);
}

void enterSleep(void)
{ADCSRA = 0;
sleep_enable();

disableHardware();

set_sleep_mode(SLEEP_MODE_PWR_DOWN);
//set_sleep_mode(SLEEP_MODE_IDLE);

// clear various "reset" flags
MCUSR = 0;
watchdogSetup();

sleep_cpu();
// wake up here
sleep_disable();

enableHardware();
}

204 posts at last count.

By now, you should know how to post code! :astonished:

That is not an Arduino program.

Post ALL the code, using code tags.