Go Down

Topic: INDUSTRIAL ENCODER  (Read 578 times) previous topic - next topic

Slumpert

Sorry I forgot to add

Or is " My goal is torque." the actual monkey that you have no clue what to do with?

ADRITOO

#16
Aug 19, 2019, 07:50 pm Last Edit: Aug 19, 2019, 08:03 pm by ADRITOO
No monkeys yet :). By torque I meant the stepper will be working very slow,
-even with the high microstepping I have chosen the torque is very good.
I will try to be more clear.
When my hand moves the encoder shaft
the ball screw (16 mm /turn by specs) moves 25.4 mm.
The system does what I need. But with a mechanical array.
The encoder provides 5000ppr to my driver.
With only these 5000 ppr, I need the 1:1.6 belt array to achieve 25.4 mm at the ball screw.
I need 5080 ppr to achieve 25.4 mm at the ball screw.
So I had a crazy idea:
Could Arduino help to get rid of 4 pulleys and two belts?
I think something simpler and cheaper than this:
https://www.motrona.com/en/products/signal-converters/frequency-divider-multiplier/fm260-programmable-pulse-and-frequency-multiplier.html
Thanks.

dave-in-nj

Microsteps are not true steps.   if you take a motor that makes 200 natural steps per revolution and then microstep by 10X or 8x or some such, you do not get actual steps.  microsteps are to help smooth movement and are not precision steps.   

the power to hold a full or a half step is (100% or 50/50) is significantly higher than trying to hold a magnet off it's primary alignment by some alteration to the electro magnetic fields.
Try it for yourself with some magnets on your desk, let them find their center, then try to move them 8% from center.

if you have 5080 half steps, to equal the 5000 encoder pulses, then all would work great.
if you just need smooth moving from start to finish, then all would be good.
if/when you lose power, the stepper will move to a natural step and our count will be off by some tiny percentage.

Robin2

Could Arduino help to get rid of 4 pulleys and two belts?
Yes.

See Reply #14 (and Reply #1)

...R
Two or three hours spent thinking and reading documentation solves most programming problems.

lastchancename

#19
Aug 19, 2019, 11:26 pm Last Edit: Aug 19, 2019, 11:28 pm by lastchancename
I think i'd approach this a different way...
We have an encoder that always has a 'current' position.
This is moved by hand.

Arduino simply keeps track of that current position.

Motor/driver has a 'current' position, and 'target' position - which it hasn't reached (yet).

When encoder current position changes, the appropriate maths are used to determine where the motor 'should' be...

Tat values is transferred to the motor/driver function as a new 'target' position...

In the 'background' the Arduino sees the difference between the 'current' and 'target' position of the motor - and uses whatever (linear/S) profile you desire to move the motor current to match target... then motor stops until the a new difference is identified.

This latter feature is running all the time... all you need to do is change the target, and the motor will chase that goal.
Experienced responders have a nose for laziness, (they were beginners once)... Sure, there are trolls, chest-beaters, and pretenders - but the help you'll get here is about as good as it gets - if you try to help youself!.

bluejets

This code seems to work ok on my mods to the carriage feed on my miniature engine crankshaft grinder.
It is to drive a measurement display but the ratio application might be of some help.
Ended up replacing thew 16tpi feed shaft with 20tpi.

Code: [Select]

void dsPlay_16tpi() {
  lcd.clear();
  lcd.print("Counter = ");             // Display the value of the Counter
  lcd.print(counter);
  disVal = ((counter / 4.8) / 10000);  // encoder is 1200 pulses per rev, total(counter)calculated by..... feed is 16tpi (62.5 thou" per rev),
  lcd.setCursor(0, 1);                 // ratio of feed screw to encoder via belt drive is 1:2.5 so for ever rev of feed screw,
  lcd.print("Travel  ");               // encoder pulses 3000...example(3000/4.8 = 625) (625/10000 = 0.0625 or 62.5 thou)
  lcd.print(disVal, 4);                // Distance Value to 4 decimal places shows measure to 0.5 thou"
  delay(200);
  temp = counter;
}


void dsPlay_20tpi() {
  //FOR 20 tpi lead screw driven direct or at 1: 1 belt drive
  lcd.clear();
  lcd.print("Counter = ");             // Display the value of the Counter
  lcd.print(counter);
  disVal = (counter / 24000);          // If using the encoder direct drive or via 60:60 belt drive and 20 tpi feed screw
  lcd.setCursor(0, 1);                 // 20 tpi = 50 thou per turn....1200 count represent 50 thou travel
  lcd.print("Travel  ");               // calculation now becomes 1200/24 = 50 thou per turn ....
  lcd.print(disVal, 4);                // Distance Value to 4 decimal places shows measure to 0.5 thou"
  delay(200);
  temp = counter;
}





krupski

If anyone wants an example of why noobs find this forum to be antagonistic this is a perfet example
Instead of discussing the technology which the OP says works
Without understanding tte Application we question the parts being used.
Agree completely.
Gentlemen may prefer Blondes, but Real Men prefer Redheads!

Robin2

Agree completely.
If you have a complaint about the way I dealt with this Thread then please say so directly.

If you don't have a complaint about me then please explicitly exclude me from your remark.


I am always willing to try to improve my own shortcomings (they are many) but I will not be included in a sweeping complaint that may or may not be intended to cover my remarks.

...R
Two or three hours spent thinking and reading documentation solves most programming problems.

dave-in-nj

If you have a complaint about the way I dealt with this Thread then please say so directly.

If you don't have a complaint about me then please explicitly exclude me from your remark.


I am always willing to try to improve my own shortcomings (they are many) but I will not be included in a sweeping complaint that may or may not be intended to cover my remarks.

...R
On another thread discussing how we answer questions, the request was made to point out any threads where it is perceived that we as a group are not addressing the request from the OP in a relatively professional manner.
The request is simple math, nothing more.
If the OP cannot use integer math to make 5080 to into 5000, by using steps of 200 (or microsteps) then the math speaks for itself.
the OP is quite satisfied with the encoder being used, and even if he was not, the simple fact that it exists does not make it wrong, and in many cases, the poster is not authorized to alter the operation of a machine in a facility.
If the machine is operational, then the parts can be assumed to be either professionally engineered and properly selected for the process, or operation of the machine is acceptable with those parts.
I question if the OP gave enough information for the request.  I am not sure if the 5,0000 steps is motor steps, steps per device rotation, or steps per process operation (multiple rotations)

but it boils down to the perception of the OP.
based on reading all the responses, would you, as a noob, feel that the question was getting an acceptable answer, or, would you as a noob, feel that the snobs were finding fault with that parts you bring to the table ?
it all boils down to perception.
at the end of the thread, did we pull enough information out of the OP to be able to formulate an educated answer ?
at the end of the thread, did we offer an answer that helps the OP towards a resolution of their problem ?


Robin2

but it boils down to the perception of the OP.
based on reading all the responses, would you, as a noob, feel that the question was getting an acceptable answer,
I don't see the purpose of this, and you seem to have avoided expressing your own opinion.

As far as I am concerned other people (but not the OP) have complained about the responses in this Thread. The first Reply was mine. I think it, and my Reply #3 was perfectly appropriate, but it is for someone else to express a different view.

If my comments were / are appropriate then I don't like being included in a sweeping and non-specific complaint.

...R
Two or three hours spent thinking and reading documentation solves most programming problems.

krupski

No monkeys yet :). By torque I meant the stepper will be working very slow,
-even with the high microstepping I have chosen the torque is very good.
I will try to be more clear.
When my hand moves the encoder shaft
the ball screw (16 mm /turn by specs) moves 25.4 mm.
The system does what I need. But with a mechanical array.
The encoder provides 5000ppr to my driver.
With only these 5000 ppr, I need the 1:1.6 belt array to achieve 25.4 mm at the ball screw.
I need 5080 ppr to achieve 25.4 mm at the ball screw.
So I had a crazy idea:
Could Arduino help to get rid of 4 pulleys and two belts?
I think something simpler and cheaper than this:
https://www.motrona.com/en/products/signal-converters/frequency-divider-multiplier/fm260-programmable-pulse-and-frequency-multiplier.html
Thanks.

Did you miss post #6?
Gentlemen may prefer Blondes, but Real Men prefer Redheads!

krupski

If you have a complaint about the way I dealt with this Thread then please say so directly.

If you don't have a complaint about me then please explicitly exclude me from your remark.


I am always willing to try to improve my own shortcomings (they are many) but I will not be included in a sweeping complaint that may or may not be intended to cover my remarks.

...R
Did anyone mention you?  Am I now being yelled at for agreeing with someone?
Arduino forum: Damned if you do, damned if you don't.
Gentlemen may prefer Blondes, but Real Men prefer Redheads!

Robin2

#27
Aug 26, 2019, 11:29 am Last Edit: Aug 26, 2019, 11:30 am by Robin2
Did anyone mention you?
My compliant is that when names are not mentioned nobody can know whether s/he is included or excluded and human nature being what it is people are inclined to assume the worst.

...R
Two or three hours spent thinking and reading documentation solves most programming problems.

krupski

My compliant is that when names are not mentioned nobody can know whether s/he is included or excluded and human nature being what it is people are inclined to assume the worst.

...R
Quite honestly, I didn't look at the sequence of the posts and didn't get any sense that the poster I agreed with had targeted anyone in particular.
Looking back on it, I see that it could have been directed at you, but I didn't  notice it at the time.  I simply agreed with the concept that "some posters here are sarcastic and unhelpful".
If I had to compile a list of the "offenders", I would not place your name in it.
OK?
Gentlemen may prefer Blondes, but Real Men prefer Redheads!

Robin2

If I had to compile a list of the "offenders", I would not place your name in it.
OK?
That's good to know but it's not really the point I was trying to make - what about all the other "good" contributors whose names you have not mentioned?  By the way these are general comments and I especially don't want this to seem like an attack on you personally.

There have been many occasions when people have made comments such as " an example of why noobs find this forum to be antagonistic this is a perfet example" (from Reply #8) which apply the tar-brush to everyone who contributes (especially the regulars). Your version "some posters here are sarcastic and unhelpful" is better, but it can still create doubt about everyone in the mind of a reader who has very limited experience of the Forum.

In summary, I am saying that if anyone finds a Reply offensive they should point that out as a direct response to the offensive Reply and not make sweeping generalisations.

...R
Two or three hours spent thinking and reading documentation solves most programming problems.

Go Up