You are on page 1of 2

Overview

In my ME 440 class, Thermal System Design, we were tasked with creating a cheap
viscometer to be used in a friendly competition between the design groups. We were given
one week to come up with a design before a calibration day, which was when we tested our
viscometers with known fluids. The following week we were to find the viscosity of an
unknown fluid, and the group with the closest value would get some bonus points. Our
calibration curves had to be accompanied by an uncertainty analysis, which I performed using
a linear regression model.
My group decided to go with the type of viscometer known as the "falling ball viscometer",
which is based on Stoke's Law and the relationship between terminal velocity and dynamic
viscosity. In order to measure viscosity we needed a way to measure the velocity of a falling
ball in a fluid. However, since the ball is assumed to be at terminal velocity there is no
acceleration. Thus it is possible to measure the time as a function of viscosity and create a
calibration curve without the need for calculating velocity.
Overall the viscometer I created was extremely precise, cheap, and easy to use. Our group
was the first to finish our calibration and we placed 2nd overall in the competition. My group
mates were so stoked on our project and that they didn't have to do anything they bought me
a six pack; which in college is the ultimate compliment.

Sensors
In order to measure time, I decided to use the two inductive sensors, model LJ12A3-4Z/BX, I had laying around from my 3D printer build. I hooked them up to an Arduino Uno,
which I also had laying around, and created a simple stopwatch. The only difference between
this stopwatch and a traditional one you'd find around the neck of a track coach is that the
timing is triggered by the presence of a falling metal ball bearing.
The inductive sensors are nearly 1/2" in diameter and luckily I had some 1/2" PVC laying
around (this project was really just thrown together, yet somehow it turned out really good). I

wrapped a sensor in a bunch of PTFE tape and shoved it in one end of the PVC. For the other
sensor I had to drill a hole in the PVC and create a way to secure the sensor to the pipe. I
whipped up a simple little shape in Fusion 360 and 3D printed it. At the same time I designed
a holder to secure the pipe and sensors to a piece of wood using a M5 screw, which could
then be clamped to a desk. Both components took about 20 minutes to print, renders can be
seen below. To finish it up I used a little bit of Silicone caulking to seal the sensors.

Code
To do the actual timing the Aurdino Uno has a 16 MHz crystal oscillator on board, which
allows for the time to to be recorded in microseconds using the micros() function. From
the official Arduino reference, this oscillator has a resolution of four microsends, or 0.000004
seconds.
I added in a little logic to make sure there were no false readings and then the program was
pretty much good to go. The Arduino needs to be plugged into the computer with the Serial
monitor running in order to read the times.
Here's my Arduino code for the viscometer:

You might also like