TransWikia.com

Using Two Arduino to Lower Power Consumption

Arduino Asked on December 20, 2021

I am planning to build a water quality sensor with ph, temperature, and dissolved oxygen, conductivity. The power consumption looks like it will be very high especially due to the signal isolator, I’m estimating about 250mA. I’m going to place it in a remote area so I need it to be as power-efficient as possible.

I was thinking would this work?

What if I use two Arduino to control the power? The first Arduino will control the power supply to second Arduino, which has the sensor installed, using a timer(RTC) to turn off the power for 30 minutes and on for 30 seconds for it to read the sensor data.

Can this work? What would the circuit look like?

For the isolator, I was thinking to use Tentacle Shield and in the documentation, it says that the isolator itself uses about 150mA plus the sensor circuit.
https://www.whiteboxes.ch/docs/tentacle/t1/#/

Thanks for the help.

3 Answers

In fact, for a project like this, you should use two Arduinos, one as SLAVE and the other as MASTER.

You mentioned 4 sensors for measuring water quality, but you will have more modules such as RTC and MicroSD to store the data. So, I think you should use Slave to colect the data from sensors using the Tentacle Shield, and the other Arduino as Master, to MANAGE other modules and the SLAVE.

For this, you can setup the communication between using I2C protocol. For my Major Qualifying Project, I presented a full prototype for Remote Surface Water Parameter Plataform Sensor, using both Arduino Uno (SLAVE) and Mega (MASTER). For power supply, I have used 12V 8A motorcycle battery.

All the data captured by the sensors, were stored locally by SDModulo and sent by a SIM module to a RaspberryPi server.

For low power consumption, you should DeepSleep mode for the Arduinos. You can setup this mode using the RTC module. Arduino LowPowerDeepSleep.

For the circuit, I think you will be fine if you use the Tentacle Shield. It's already done.

Answered by Wander Filho on December 20, 2021

I would do as follows:

Software:

  • Arduino is in sleep mode

  • every x seconds (x depending on your needs), wake up then switch on and read one sensor after the other and transmit the results or whatever you want to do.

  • then go back to sleep

Hardware:

  • as you have 4 sensors, you can connect their outputs to the arduino analog inputs (or digital...)
  • you will need 4 electronic switches, preferably Mosfets, connected to 4 digital outputs to switch the power of each sensor independently

This should reduce the consumption to the minimum.

Once your system is running, you may also think about using only the AVR microchip, not the complete Arduino, e.g. If you don't need the USB connection. In addition, you can further reduce consumption by clocking the AVR chip to a lower clock, if not using Arduino.

Answered by user68052 on December 20, 2021

Actually, you can just run 1 Arduino and use it for

  • All needed measurements
  • Control power supply to sensors (power off when unneeded)
  • Additional: use low-power modes of MCU installed in Arduino

Upd: About 2nd option: You can use electric relay or transistor to control power supply to sensor. Often sensors have several connections: ground (-), Vin(+) and some signal connections. So between power supply and Vin(+) of sensor you can put electric relay. Control pin of electric relay connect to any free pin on Arduino. Therefore, Arduino can enable and disable power supply to sensor just by settings 1 or 0 to that pin. I recommend you to use electric relay, because it is easier, but if you want to try transistor, you can refer to this question & answers: https://electronics.stackexchange.com/questions/95089/switching-9v-using-a-npn-transistor-and-an-arduino

About 3rd option: Arduinos are based on some MCU (often AVR, not always). These MCUs have several low-power modes. You can directly control power mode of MCU to achieve better power-efficiency.

So, you can do 1st and 2nd options, and try to do the 3rd one:

  • Investigate which MCU installed in your Arduino
  • Investigate which power modes it supports
  • Implement power management according to datasheet of this MCU

For example, if you have Arduino Mega 2560, then it is based on ATmega2560 MCU, find datasheet (https://ww1.microchip.com/downloads/en/devicedoc/atmel-2549-8-bit-avr-microcontroller-atmega640-1280-1281-2560-2561_datasheet.pdf) and there find info about power/sleep modes (page 50) and ways to "wake up" from these modes.

Also you can read about it here: https://microchipdeveloper.com/8avr:avrsleep

Also you can try to find some handy libraries for Arduino, for example "Low-Power" and just use them without diving into MCUs, datasheets, etc

Answered by Ihor Drachuk on December 20, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP