Introduction: Monitoring an Ultrasonic Fogger Using a MAX471 Current Sensor With ARDUINO

Picture of Monitoring an Ultrasonic Fogger Using a MAX471 Current Sensor With ARDUINO

This instructable is intended for people who consider using an ultrasonic fogger and need to monitor its proper operation. It is more of sharing an idea than making a complete system. Ultrasonic fogger can be used for different application. I use them for aeroponics (fogponics) or simply to create humidity. I intend to make an instructable on hydro-culture shortly. Here I want to concentrate on the monitoring part only.

When an ultrasonic fogger operates, the current being used will vary with its oscillation. If we measure this variation, we should be able to distinguish between a working fogger and a defective one.

Here are some scenarios where the fogger is not working correctly and the corresponding interpretation

  • fogger is not touching water => it will not use any current
  • short circuit => current will go real high
  • ceramic disk might not oscillate the way it should => current fluctuate differently compared to a working fogger

So the idea is to monitor current variations in real-time and do some stats to differentiate these situations.

Parts used:

Step 1: Circuit

Picture of Circuit

Step 2: Test Code

Picture of Test Code

The MAX471 will output 1V per 1A, up to a maximum of 3A. You can read the analog output with an ARDUINO UNO easily.

The ADC of the UNO has a 10 bit resolution (2^10), which means 1024 possible values. 1024 correspond to a 5V input and 0 to a 0V input. So using this formula we can calculate easily the corresponding current :

current = 5V / 1024 * value_of_the_analog_input * 1A/V 

Now to know how the current varies, some stats are needed. We will take 10 measurements (one on every 50 milliseconds) and calculate the average value and the standard deviation. The average will be useful to know the current being used. The standard deviation will tell us how the current varies. A small value tell us there is not much fluctuation, as a higher value indicate the opposite.

You will need to add this library to Arduino :

Step 3: Interpretation

Picture of Interpretation

Here is an example with three different foggers. The first two are defective and the third one is working properly.

In the first case, the fogger is taking too much current (about 1.8A, while the power supply is rated 1A max). This means the pins are probably shorted.

The second case shows that the standard deviation is way lower than with the good fogger. This means it is not oscillating correctly and it is the best way I could find to detect it. So even if the average current seems normal, it it not enough to asses that the fogger is operating correctly.

The third case is when it is working properly.

So, needless to say it is easy to take action on these values. If current is around 0.4A and standard deviation is greater than 2, everything is fine, but if not, we can buzz an alarm, send an email, etc.

(Note that this may vary depending on the ultrasonic fogger model you are using.)


Omnivent (author)2017-08-11


Just an idea... You could monitor the fog itself by measuring the amount of infrared (IR) light reflected of the fog and get a single digital value for "fog or fog off" if you pardon my french ;) This would work with all fogger make/models as well.

Using an IR "obstacle detector pair" (an IR LED and a photo transistor in a plastic holder - dirt cheap on ebay) and an op-amp (plus "glue"), you would be able to set the amount of reflectance that you'd accept as a working value and could have alerts for marginally functioning as well.

Let me know if you have any questions about this method :)