Having a motor immediately stop once the shaft breaks a plastic part

Hey folks,
I’m writing a program that will stop a motor from running once it recognizes the motor shaft broke a part it’s connected to. Just imagine the shaft is connected to a plastic device that’s connected to the wall and it’s supposed to break that plastic. That is to say, once the current on the motor will be suddenly reduced (since a load is no longer applied on it), it will stop. I have an arduino uno.

I haven’t converted it into a programming language yet, but here is the step by step, please tell me if it’s logical to you:

  • User will press a button that will activate the motor (if button is pressed: motor on)
  • Save the first current values as an integer
  • Save the current ampere value every milisecond as an integer (not sure how I do that in terms of “every second”)
  • I attach a plastic part on the motor’s shaft that it will need to break

And this is the core idea of the program:

##This is to make sure the motor feels a load and only then starts the test##

If Current_Amperes > Initial_Amperes +10
StartTest = true;

##This is so the motor would stop once it feels a drop of Amperes

If StartTest == true && If Current_Amperes < Initial_Amperes+5
Stop Motor;
StartTest = False;

So, 2 main questions:

  1. How does the overall approach sound?
  2. Which funcitons should I use to accomplish it?

Am I correct to assume that the purpose of the machine is to break the plastic part and then stop?

That's a reasonable strategy. I reckon the first thing you need to do is figure out if you can measure the current and if you are able to detect the change due to the motor becoming unloaded. You will need some form of current sensor.

Things may be a bit more complicated if the motor is controlled using PWM because there may be a lot of variation in the current even under load.

How many revolutions would be acceptable between the plastic breaking and the motor stopping?

Is it possible / would it better to put some sort of strain gauge between the motor and the plastic part.

...R

There will be three current measurement points you need to track.

  1. Motor start & run (medium)
  2. Under load as the plastic part ‘torques’ up (rising current, until)
  3. After the plastic part breaks (low)

The rest is easy.
Can you describe your actual project - there may be another or different way to address it - or not!

Hi,
Welcome to the forum.

How many turns of the test shaft do you have before the part breaks?
I presume you are twisting the part.

Can you post a picture or diagram of the test jig, this will help with any questions you have.
Monitoring the motor current may not be the only solution.

Thanks.. Tom.. :slight_smile:

lastchancename:
There will be three current measurement points you need to track.

  1. Motor start & run (medium)
  2. Under load as the plastic part 'torques' up (rising current, until)
  3. After the plastic part breaks (low)

I wonder if it would be sufficient to identify a sudden drop in the current?

...R

lastchancename:
There will be three current measurement points you need to track.

  1. Motor start & run (medium)
  2. Under load as the plastic part 'torques' up (rising current, until)
  3. After the plastic part breaks (low)

The rest is easy.
Can you describe your actual project - there may be another or different way to address it - or not!

I'd say as it could be possible, I have worked with VSDs that have a low current alarm that is used to identify if a belt drive has failed.
If you keep storing current readings and compare the last with the next and trigger a flag if a negative result occurs, it should do the trick. (In theory :o :o )
What are the motor specifications?
AC or DC ?
Tom... :slight_smile:

Another thing you could possibly do is to monitor the angular velocity. If it suddenly shoots up....then breakage. Or monitor angular position as well.... detecting oscillations or abrupt change in position at the point of breakage. Depends on what kind of motor it is, and what the constraints are .... the test requirements.

or even simpler...
Pass a light beam through the plastic part if that's practical - and shutdown when it's open.

Well, thank you all for the replies; you've mostly confirmed that I've chosen the correct method. However my second question was rather ignored :-/

Am I correct to assume that the purpose of the machine is to break the plastic part and then stop?

Yes, that's what the title says :wink:

How many revolutions would be acceptable between the plastic breaking and the motor stopping?

Should be as immediate as possible

Is it possible / would it better to put some sort of strain gauge between the motor and the plastic part.

The plastic part is connected to a torque meter

What are the motor specifications?

The motor is type 12 here:

"or even simpler...
Pass a light beam through the plastic part if that's practical - and shutdown when it's open."

Won't work, the plastic comes in different shapes and breaks in different locations

How about a feather-weight arm that rides on the plastic under test, then when 'it' fails - the arm drops - voila! it's detected the break.

You may need a combination of methods to work with all the criteria that have crept in over the length of the thread.

Valeriya:
Yes, that's what the title says :wink:

Well, not exactly. You might have wanted to detect the unintended breaking of the plastic.

Should be as immediate as possible

That needs numbers. Would 20 revolutions be OK?

The plastic part is connected to a torque meter

So why not use the torque measurement to identify the break

...R

I'd also look at the torque meter. You're measuring that already, why not use it. The torque should suddenly drop (not to zero if the parts are still somewhat connected or touching) upon failure.

As you want the motor to stop as fast as possible, I think you have to find a way to connect this to an interrupt, which is triggered the moment the torque drops. How to do this exactly (and even if it'd be possible) depends on the torque meter and its output. This way you can stop the motor the moment you get this interrupt. That'd be the fastest an Arduino can do.