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.

  • Please tell us what signal isolator you are referring to. Some Arduino's (maybe all of them) can be put into sleep modes which can save a lot of power. A good place to start learning how to do this is by using the search bar at the top of the page. There is a LowPower library available in the Arduino IDE. – VE7JRO Jul 23 at 23:33
  • First of all, you don't need two arduino. You can put arduino in deep sleep. Secondly, if you have a power consumption of 250mA, it is most likely come from all the sensor boards that you have, so you need to have a circuitry (such as an MOSFET) to cut off the power for those boards before the Arduino go into sleep mode. – hcheung Jul 24 at 1:07
  • I added details on the isolator – JSK Jul 24 at 1:37
  • An Arduino with its leds and linear power regulators is not optimized for minimal power consumption. BTW: How do you signal the results of your sensors and measurement? – DataFiddler Jul 26 at 17:31

I would do as follows:


  • 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


  • 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.

| improve this answer | |

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.

| improve this answer | |

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

| improve this answer | |
  • How would I go about doing the second option? – JSK Jul 24 at 1:37
  • @JSK, I've updated answer: added more info about 2nd option – Ihor Drachuk Jul 24 at 10:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.