[Jean-Noel] is fixing a broken Lurem woodworking machine. This machine uses a three-phase Dahlander motor, which has three operation modes: stop, half speed, and full speed. The motor uses a special mechanical switch to select the operating mode. Unfortunately, the mechanical bits inside the switch were broken, and the motor couldn’t be turned on.
To solve the problem without sourcing a new switch, [Jean-Noel] built his own Arduino based Dahlander switch. This consists of three relays that select the wiring configuration for each speed mode. There’s also a button to toggle settings, and two lamps to show what mode the motor is currently in.
The Arduino runs a finite-state machine (FSM), ensuring that the device transitions through the modes in the correct order. This is quite important, since the motor could be damaged if certain restrictions aren’t followed. The state machine graph was generated using Fizzim, a free tool that generates not only FSM graphs, but also Verilog and VHDL code for the machines.
The final product is housed in a DIN rail case, which allows it to be securely mounted along with the rest of the wiring. The detailed write-up on this project explains all the details of the motor, and the challenges of building this replacement switch.