Ripple Tank frequency counter

A supporting video is available to this article, click below:

When pupils investigate wave properties they usually use a ripple tank which come in various forms and sizes. One of the most convenient are the smaller self contained tanks that project the shadow of the waves onto a top screen.

There downside is perhaps their size. With these you can easily investigate, reflection, refraction and diffraction but another property that may be required is wave speed. This is given by the formula

Wave Speed = Frequency x Wave Length

As you can see we need to know the frequency of the waves (how many waves pass a point in one second) and the distance between the same parts of a wave (perhaps a peak or trough) – the wavelength. Ripple tanks use a small paddle that dips in and out of the water to create a wave (or ripple). The speed that it dips in and out governs how many waves are produced in a given time or to put it another way the wave frequency. With these portable ripple tanks (certainly with this one) the light that it shines to create the shadow of the waves on the screen can be made flash on and off at the same frequency the waves are produced at and has the advantage of making the waves appear motionless making measuring their wavelength easy. This light is also obviously at the same frequency as the waves – this is important for later on!

Measuring Wavelength
So we can easily measure wavelength by putting a ruler on top of the unit and measuring between waves, see the image below, more accurate measurement is achieved by measuring the distance of 10 waves and dividing by 10 to get the average wavelength for those waves. Don’t forget to convert to meters if measuring in cm (as shown below).

 

Measuring Frequency
This is tricky with any ripple tank, small or large. Frequency is how often something occurs whether that is buses arriving at a bus stop, the vibration of a sound or in this case waves going past a given point  in a given time. In this case the time frame is 1 second. We need to know how many waves pass a point in 1 second. For very low frequencies (less than 5Hz) this is not too bad, although you would count the number of waves whilst someone timed to say 10 seconds and then divide the result by 10 to get the value in Hertz (Hz). Hertz is the unit of how often anything happens per second (the frequency). As can be appreciated doing this manually is incredibly hard and virtually every ripple tank operates at a lowest frequency above 10Hz. Some solutions involved videoing the ripple tank whilst also keeping a clock in the frame, but this takes away the “instant” results of the experiment and if you do several results it would become cumbersome.

The solution with Lascells portable ripple tank
The Lascells ripple tank shown has a handy feature where you can strobe the light at the same frequency as the waves, which makes them appear to stand still, making measuring wavelength easy. It also means that if we could measure the frequency of the flashing strobe light we would know the frequency of the waves. So I designed a solution to do this using a solar cell as the light sensor, an Arduino for the “Brains” to do the frequency calculation (as it has an internal clock) and a OLED display to show the output. Here’s a picture of the breadboard prototype and the final item.

 

The circuit diagram

The Code
The code to make this work is shown below, it simply looks for the rising edge of the voltage from the solar cell, records the value of the timer in milliseconds then waits for the next rising edge. When it gets the next rising edge it means we have gone through one complete wave and it looks at the timer again. It works out the difference in time between the start of the wave and end (in milliseconds) and then does a quick calculation to give this value in Hz. In reality if you look closely it actually does an average of 20 values by default then calculates the average Frequency.

If you look at the start of the code you will also need two supporting files for driving OLED screens from Adafruit. You can install these from your Arduino IDE, go to the menu “Sketch->Include Library->Manage Libraries”. Type “adafruit ssd1306” into the search and you should get the 1306 OLED library. Select and click install. Then type “adafruit gfx” into the search and install the library also.

 

Trouble Shooting
If you have trouble registering a frequency then it’s probably because your solar cell outputs a different voltage range than the one I’m using. The #define:

#define RisingEdgeLimit 200

sets the limit for the rising edge start of the wave. You may need to increase or decrease this value to be able to get the Arduino to detect the wave. My solar cell outputted around 1.4v when on the strobe light, if your’s is less than this then you may need to reduce this value, if higher you may need to increase it.

That’s it for this article, hope you found it useful. 🙂