A servo-driven lead screw using Arduino to calculate proper spindle and lead screw speeds for cutting English and metric threads with VFD.
Project showcase by Nick Romeo
Replacing the old and expensive mechanical system with the much reliable and cheap electrical system using Arduino!
Project showcase by PuranSingh and PiaraSingh
For the most part yes, you are correct. When I am threading I leave the spindle on and I do not change direction. I leave it run and disengage/re-engage the carriage like you would normally do with the lever and the dial. The problem is, if you stop the lathe to check the threads you get everything out of sync. So if you go to cut threads you need to make sure you know the exact depth and do it right the first time. If I am cutting critical threads I will go back to the gear system since all you have to do is take off the pulleys and put the gears back on. I am thinking of adding a timing light indicator to use instead of the dial so you know when to engage the carriage based on the timing of the spindle .
You can contact me directly at firstname.lastname@example.org
I would be happy to help.
Change the debounce time to 0.5.
you have to eliminate the if statement in the speed sensor loop. So you could change the speed sensor loop to something like this. I did not run this code but it should look something like this.
time = millis();
int currentSensorState = digitalRead(SensorPin);
if (currentSensorState != lastSensorState)
sensorState = currentSensorState;
if (sensorState == LOW)
calculateRPM(); // Real RPM from sensor
if (currentX == 0)
else if (currentX == 1)
lastSensorState = currentSensorState;
lcdRPM = RPM;
I'm not sure why your RPM readings vary so much does the lead screw respond to the change in RPM's on the spindle?
Or connect with your social account:
New here? Create an account