Posts | Comments

Planet Arduino

Archive for the ‘phase shift’ Category

Most pools feature a powered pump system to help filter out debris, but what if your water level gets too low? Pumps designed for ‘wet’ operation generally don’t work well when water isn’t present, so Luc Brun came up with an innovative monitoring solution dubbed “BluePump.”

His setup uses an Arduino Nano and an ACS712 sensor to observe both voltage and current, detecting the phase shift between the two. If this shift is too large, this indicates dry operation, and shuts down the pump via a relay until things are resolved. 

To complement this ability, BluePump also includes a temperature sensor, an RTC, and a Bluetooth module, allowing it to schedule cleanings as needed, or work under human control via a custom Android app.

The sort of pumps used in the filtration systems of fountains and swimming pools don’t take kindly to running dry. So putting such a pump on a simple timer to run while you’re away comes with a certain level of risk: if the pump runs out of water while you’re gone, you might come home to a melted mess. One possible solution is a float sensor to detect the water level in whatever you’re trying to pump, but that can get complicated when you’re talking about something as large as a pool.

For his entry into the 2019 Hackaday Prize, [Luc Brun] is working on controller that can detect when the pump is running dry by monitoring the phase shift between voltage and current. With an inductive load like a pump, the current should lag behind the AC voltage a bit under normal operation. But if they become too far out of phase with each other, that’s a sign that the pump is running in a no-load condition because there’s no water to slow it down.

As [Luc] explains in the project write-up, simply monitoring the pump’s peak current could work, but it would be less reliable. The problem is that different motors have different current consumptions, so unless you calibrated the controller to the specific load it’s protecting, you could get false readings. But the relationship between current and voltage should remain fairly consistent between different motors.

The controller is powered by a Arduino Nano and uses a ACS712 current sensor to take phase measurements. Since he had the ability to toggle the pump on and off with a relay attached to the Arduino, [Luc] decided to add in a few other features. The addition of a DS1307 Real Time Clock means the pump can be run on a schedule, and an HC-05 Bluetooth module lets him monitor the whole system from his smartphone with an Android application he developed.

Since the theme of this year’s Hackaday Prize is designing a product rather than a one-off build, judges will be looking for exactly the sort of forward thinking that [Luc] has demonstrated here. As the controller is currently a mass of individual modules held inside a waterproof enclosure, the next steps for this project will likely be the finalization of the hardware design and the production of a custom PCB.

The sort of pumps used in the filtration systems of fountains and swimming pools don’t take kindly to running dry. So putting such a pump on a simple timer to run while you’re away comes with a certain level of risk: if the pump runs out of water while you’re gone, you might come home to a melted mess. One possible solution is a float sensor to detect the water level in whatever you’re trying to pump, but that can get complicated when you’re talking about something as large as a pool.

For his entry into the 2019 Hackaday Prize, [Luc Brun] is working on controller that can detect when the pump is running dry by monitoring the phase shift between voltage and current. With an inductive load like a pump, the current should lag behind the AC voltage a bit under normal operation. But if they become too far out of phase with each other, that’s a sign that the pump is running in a no-load condition because there’s no water to slow it down.

As [Luc] explains in the project write-up, simply monitoring the pump’s peak current could work, but it would be less reliable. The problem is that different motors have different current consumptions, so unless you calibrated the controller to the specific load it’s protecting, you could get false readings. But the relationship between current and voltage should remain fairly consistent between different motors.

The controller is powered by a Arduino Nano and uses a ACS712 current sensor to take phase measurements. Since he had the ability to toggle the pump on and off with a relay attached to the Arduino, [Luc] decided to add in a few other features. The addition of a DS1307 Real Time Clock means the pump can be run on a schedule, and an HC-05 Bluetooth module lets him monitor the whole system from his smartphone with an Android application he developed.

Since the theme of this year’s Hackaday Prize is designing a product rather than a one-off build, judges will be looking for exactly the sort of forward thinking that [Luc] has demonstrated here. As the controller is currently a mass of individual modules held inside a waterproof enclosure, the next steps for this project will likely be the finalization of the hardware design and the production of a custom PCB.

Hello everyone

Today we are going to continue exploring alternating current, with regards to how resistors and capacitors deal with AC. This chapter is part two, chapter one is here.

To help with the explanations, remember this diagram:

That is, note that there are three possible voltage values, Vpp, Vp and Vrms. Moving on. Alternating current flows through various components just like direct current. Let’s examine some components and see.

First, the resistor. It operates in the same way with AC as it does DC, and the usual calculations apply with regards to Ohm’s law, dividing voltage and so on. However you must keep in mind the type of voltage value. For example, 10Vrms + 20Vpp does NOT equal 30 of anything. But we can work it out. 20Vpp is 10Vp,  which is 7.07Vrms… plus 10Vrms = 17.07Vrms. Therefore, 10Vrms + 20Vpp = 17.07Vrms.

Furthermore, when using Ohm’s law, or calculating power, the result of your equation must always reflect the type of voltage used in the calculations. For example:


Next, the capacitor. Capacitors oppose the flow of alternating current in an interesting way – in simple terms, the greater the frequency of the current, the less opposition to the current. However, we call this opposition reactance, which is measured in ohms. Here is the formula to calculate reactance:


the result Xc is measured in Ohms, f is frequency is Hertz, and C is capacitance in Farads. Here are two examples – note to convert the value of the capacitor back to Farads


Also consider if you have identical frequencies, a smaller capacitor will offer a higher resistance than a larger capacitor. Why is this so? A smaller capacitor will reach the peak voltages quicker as it charges in less time (as it has less capacitance); wheras a larger capacitor will take longer to charge and reach the peak voltage, therefore slowing down the current flow which in turn offers a higher reactance.

Resistors and capacitors can also work together as an AC voltage divider. Consider the following schematic:

As opposed to a DC voltage divider, R2 has been replaced with C1, the 0.1 uF capacitor. In order to calculate Vout, we will need the reactance of C1 – and subsitute that value for R2:

However, once the voltage has been divided, Vout has been transformed slightly – it is now out of phase. This means that Vout oscillates at the same frequency, but at different time intervals than Vin. The easiest way to visualise this is with an oscilloscope, which you can view below:

Please note that my CRO is not in the best condition. In the clip it was set to a time base of 2 milliseconds/division horizontal and 5 volts/division vertical.

Thus ends chapter two of our introduction to alternating current. I hope you understood and can apply what we have discussed today. As always, thank you for reading and I look forward to your comments and so on. Furthermore, don’t be shy in pointing out errors or places that could use improvement, you can either leave a comment below or email me – john at tronixstuff dot com.

Please subscribe using one of the methods at the top-right of this web page to receive updates on new posts. Or join our Google Group and post your questions there.

Otherwise, have fun, be good to each other – and make something! :)



  • Newsletter

    Sign up for the PlanetArduino Newsletter, which delivers the most popular articles via e-mail to your inbox every week. Just fill in the information below and submit.

  • Like Us on Facebook