Usually the amount of ground coffee from a low to mid end coffee grinder is selected by setting a timer with a pot-meter. It is wished to modify this system to instead having the ability to choose between a number of presets eg. Aeropress or 5-6-7 cup drip coffee.
The idea is to use a 132x32 oled to show the presets, and a encoder with a push button to navigation and selection. The grinder uses a 160W AC motor, which is to be controlled using either a relay or a triac
To control interface is consisting of four main parts:
Rotary encoder with push button
128x32 oled display
The encoder is used to select the different presets. As of now, there are two presets for aeropress and 7 for drip coffee. A curcuit from a mobile charger is providing supply voltage to the arduino from mains.
I had some problems with noice on the encoder signal. I used two 0.1uf caps and 10k resistors to do a hardware debounce, which worked great.
Calibrating rate of ground coffee
I needed to figure out the rate of coffee ground pr second. To do this i simply grind for a specified time interval and measure the mass of ground coffee. Calculating backwards i get a rate of:
Now it is easy to convert the amount of coffee from grams to seconds of grinding.
Shrink in size, so it will fit inside the enclosure
3D print and enclosure for the display that fits neatly on the outside of the grinder
First step was to open the up the grinder and inspect the inner workings. Below is a picture of all the parts:
Grinding mechanism is seen left in the middle. The black wire running around on the part is connected to different safety switches.
The PCB controlling the timing and control of the motor is shown below. The motor is controlled using a triac and an 8-bit microcontroller with a potentiometer and a push button as input.
Controller board for the grinder
As of now the plan is to completely replace the controller board with my own components. The task is to make it compact enough to implement it into the machine. Next up is to make a mockup of the control system.