Greetings Fellow Arduino Users!
A bit of background:
We run a small assembly shop that uses custom spindles which go into desktop CNC machines. Our spindles are assembled in house using a press (we outsource the actual CNC manufacturing of the spindle, dom, etc.).
The problem:
When we build spindles their friction, which is to say the degree of resistance that they generate when they turn, varies considerably. A spindle assembly can be turned manually by hand and some exhibit good (low friction) rotation while others are not so good (more resistance, i.e. friction).
We use a warm-up code prior to the machine cutting which runs the Brushless DC motor (itself coupled to the spindle assembly via a belt and sheath). This “warm up” period lasts seven minutes. During the warm up phase the heat from the rotation of the spindle causes the bearings and lubrication inside the spindle to ‘loosen up’ thus reducing the friction for the actual cut procedure.
We have a very tight power budget, approximately anything over 130 watts is undesirable. Needless to say, we are committed to the power supplies we use in the machines, so in an attempt to improve through-put and know in advance which spindles to install and which to discard, we would like to test the spindle’s using an Arduino.
The Atmel 328p already drives the brushless DC (BLDC) motor using an in-house brushless DC motor control shield (itself uses the A4915 IC), and we use Synthetos G-shields to move the axises of our mill.
Our lead engineer is on indefinite sabbatical somewhere in the Southwest. We have very limited programming capability in house at the moment.
Proposed Solution:
We can create a mechanical linkage to connect the assembled spindle to a BLDC motor on a rig using 8020 and simply connect any one of the hall phases (thin green/blue/yellow wires) to an Arduino digital pin and then count pulses. Assuming the A4915 IC doesn’t brake our motor, we believe a simple program could be written which would could generate data that we could then use to determine the amount of friction each spindle produces.
We have little insight into how to write that program, however.
We already have a BLDC test rig that tests BLDC motors for RPM and power consumption that we initialize using Grbl Controller 3.0.
Pic Attached is our BLDC in house controller board which fits onto an Arduino Uno, etc.
Also shown is a completed Z-plate assembly with the spindle mounted next to the BLDC motor.
The motors we use are 57BLF02-1, 24 VDC, 3K RPM: http://www.longs-motor.com/productinfo/detail_12_81_134.aspx