Arduino Indexing (Dividing) Head - Page 3


Page 3 of 3 FirstFirst 123
Results 41 to 53 of 53

Thread: Arduino Indexing (Dividing) Head

  1. #41
    Member
    Join Date
    Jun 2005
    Location
    USA
    Posts
    260
    Downloads
    0
    Uploads
    0

    Default Re: Arduino Indexing (Dividing) Head

    I am am writing a Arduino terminal sketch for a semi-manual divider. I should think that if one has a manual mill with a DRO, then it should be a handy addition.
    The only issue is: it was written for Vexta steppers, which are different in that they have a forward pulse and a reverse pulse, and not pulse and sign pins.

    The code is still young, and I still need to implement an find home routine for a optical/hall sensor, I will post the code, which should be easy to modify. All the setup information is saved to EEPROM which is handy for multiple motors. Location is kept in double precision variables. Most moves are done with a sinusoidal smooth stepping routine. I was testing it last night on an old Vexta harmonic drive with 100,000 steps per revolution.

    These are the commands:
    Use Command

    Set Pulsewidth: setpulse
    Set Delay: setdelay
    Set Home Delay: sethomedelay
    Set Smoothing: setsmoothing
    Set Smooth Length setsmoothlength
    Set Speed 1/x: setspeed
    Set Home: sethome
    Settings? settings
    Find Home: fh
    Go Home: h
    Divide: divide
    End Division: divend
    Next Division: +
    Previous Division: -
    Seek Division: /
    Move Turn: t
    Move Degree: d
    Move Radian: r
    Current position? @
    Help ?




  2. #42
    Member revwarguy's Avatar
    Join Date
    Feb 2009
    Location
    USA
    Posts
    499
    Downloads
    0
    Uploads
    0

    Default Re: Arduino Indexing (Dividing) Head

    Quote Originally Posted by BrendaEM View Post
    I am am writing a Arduino terminal sketch for a semi-manual divider.
    Hi Brenda,

    Looks like an interesting project. It will be interesting to see what you come up with!

    "72.6 per cent of all statistics are made up on the spot." - Steven Wright


  3. #43
    Member
    Join Date
    Feb 2006
    Location
    USA
    Posts
    174
    Downloads
    0
    Uploads
    0

    Default Re: Arduino Indexing (Dividing) Head

    Two questions if possible
    1. does the program as written have, or can it have Accel/Decel for the driver ?
    2. can we get a pulse from the Arduino at the end of the move , to show acknowledgement or completion of the move
    My very old CNC mill has no 4th axis , but can send a pulse move an external function, and requires a response before it continues code .
    Thanks
    Rich



  4. #44
    Member revwarguy's Avatar
    Join Date
    Feb 2009
    Location
    USA
    Posts
    499
    Downloads
    0
    Uploads
    0

    Default Re: Arduino Indexing (Dividing) Head

    Quote Originally Posted by Rich Carlstedt View Post
    Two questions if possible
    1. does the program as written have, or can it have Accel/Decel for the driver ?
    It could, but it would be a fair amount of work, so I think I would need to be convinced as to why this is needed. Typically, there is so little movement as well as so little load in going from one gear tooth position to the next that the effect of using a accel/decel curve would be negligible. What's the application you have in mind?

    2. can we get a pulse from the Arduino at the end of the move , to show acknowledgement or completion of the move
    My very old CNC mill has no 4th axis , but can send a pulse move an external function, and requires a response before it continues code .
    Thanks
    Rich
    This would be fairly easy to do - how about two parameters you specify at compile time - the pin number of the arduino to raise high when the move is complete (you'll have to choose from amongst the ones that are unused), and the number of milliseconds this pulse remains high before the program continues. Would that work?

    "72.6 per cent of all statistics are made up on the spot." - Steven Wright


  5. #45
    Member
    Join Date
    Feb 2006
    Location
    USA
    Posts
    174
    Downloads
    0
    Uploads
    0

    Default Re: Arduino Indexing (Dividing) Head

    Thank you revwarguy for the comments
    1.
    I want to run an indexing head (40:1) for making gears I will direct drive the B&S Head (coupled) with a 460 In/oz # 34 stepper at either 24 or 48 volts.
    Since any over stepping would destroy my angle requirement, I thought an accel/decel would assure a non-error move in critical rotation
    I thought of using 1/8th steps as well .
    2.
    Yes, I believe it would . As a newbie with this arduino stuff, can I ask if the arduino tells the driver to move by drip feed ?
    If it does, then a pulse of some length could trigger my CNC axis driver properly . If the number of pulses is "dumped" on the stepper driver, then I would have to delay the signal somehow to prevent a CNC move before the stepper completes it's assignment ?

    Thanks again for the time and expertise

    Rich

    Previously all my gears were manually cut. I wish to speed that process up by using a arduino



  6. #46
    Member revwarguy's Avatar
    Join Date
    Feb 2009
    Location
    USA
    Posts
    499
    Downloads
    0
    Uploads
    0

    Default Re: Arduino Indexing (Dividing) Head

    Quote Originally Posted by Rich Carlstedt View Post
    Thank you revwarguy for the comments
    1.
    I want to run an indexing head (40:1) for making gears I will direct drive the B&S Head (coupled) with a 460 In/oz # 34 stepper at either 24 or 48 volts.
    Since any over stepping would destroy my angle requirement, I thought an accel/decel would assure a non-error move in critical rotation
    I thought of using 1/8th steps as well .
    Increasing the microstepping might help a bit here due to the resulting increase in wait time, but accel/decel would not, I believe. Adding additional gearing in front of the 40:1 (like a 2:1 ratio gear that would make it 80:1) would cut any per step movement uncertainty in half. That is a very powerful motor you are specifying. Are you planning on using the holding torque of the motor to lock the material in place during milling? I imagine the 40:1 comes from a worm gear, which provides some holding within its backlash uncertainty, which is usually a lot worse that the motor's positioning error.

    Most of the time when I have seen "overstepping" is when the motor being used is underpowered during rotation. In this application there should be very little torque needed during the positioning period - how hard is it to turn the indexing head? I take it your stepper has a +/- positioning error of 5%?

    2.
    Yes, I believe it would . As a newbie with this arduino stuff, can I ask if the arduino tells the driver to move by drip feed ?
    If it does, then a pulse of some length could trigger my CNC axis driver properly . If the number of pulses is "dumped" on the stepper driver, then I would have to delay the signal somehow to prevent a CNC move before the stepper completes it's assignment ?
    The arduino moves the motor one step at a time. With the cheap driver I used, if you send it 5 steps "all at once" without waiting for the motor to complete each one, you will loose 4 steps, so yes, it is "drip feed." Only after the last pulse is positioned and the motor has had time to move would the POSITION_COMPLETE pin go high. The arduino spends its life waiting on either the motor, or you, but hey - what else does it have to do? Which driver would you be planning on using?

    "72.6 per cent of all statistics are made up on the spot." - Steven Wright


  7. #47
    Member
    Join Date
    Feb 2006
    Location
    USA
    Posts
    174
    Downloads
    0
    Uploads
    0

    Default Re: Arduino Indexing (Dividing) Head

    Yes, The Dividing head has a worm drive and the backlash is zero ( adjustable)
    The holding torque will be used while cutting gears. I will start with a 24 volt power supply and if the holding is not enough, then go with a 48 supply ( to be built)
    It is not difficult to rotate the Dividing head. I do not know what you mean by 5 %?

    Thats great news about the drip feed ....I will use a ST-M 5045 for a driver

    thanks
    Rich



  8. #48
    Member revwarguy's Avatar
    Join Date
    Feb 2009
    Location
    USA
    Posts
    499
    Downloads
    0
    Uploads
    0

    Default Re: Arduino Indexing (Dividing) Head

    Quote Originally Posted by Rich Carlstedt View Post
    Yes, The Dividing head has a worm drive and the backlash is zero ( adjustable)
    The holding torque will be used while cutting gears. I will start with a 24 volt power supply and if the holding is not enough, then go with a 48 supply ( to be built)
    It is not difficult to rotate the Dividing head. I do not know what you mean by 5 %?
    Depending on the material (stainless would be far worse than brass or aluminum for example) or depending on the angle of the cut (a straight cut would be a bit less problematic than an angled cut) and the type of cutter (a regular gear tooth cutter would not provide much in the way of rotary forces than, say, a milling bit) the holding torque of the motor should work out well.

    The -/+ 5% is a number common to the vast majority of stepper motors in use. It means that when you tell it to move a native step (this is its base step movement before microstepping) it moves to that position with an error of +/- 5%. This is why (again, for most steppers) there is a 10% window of where the end position will actually be. It is also why, for most steppers, anything more than 10 microsteps is asking the motor to move with a precision that it is simply not capable of. This all assumes that microstepping provides a reliable, evenly spaced positioning within a native step, which it does not. In general, if you are really worried about positioning accuracy, microstepping will not solve that problem. One thing you can easily do is buy a stepper with 400 steps per rev instead of 200, which will still have the +/- 5% number with it, but its error is then cut in half. The 400 step/rev motors are more expensive, and you can effect the same error reduction by using a 2:1 gear ratio on the stepper. You've already gone quite a ways by using the 40:1 head. You just have to do the math to make sure that the positioning error that results after all the gearing is smaller than your needed tolerance on the part.

    You might want to use a greater microstep value to make the motor run smoothly, but in my experience when you, say, go from 1/8 stepping to 1/32 stepping the resulting measured noise drop in db is negligible, as well as the vibration, especially in a shop environment. You are, however making the processor work 4 times as hard, since it has to generate 4 times as many pulses, which can often exceed the speed of some of these $10 computers, and the top movement speed will be limited by this, so you have to watch out for that as well.

    Hope this helps.

    "72.6 per cent of all statistics are made up on the spot." - Steven Wright


  9. #49
    Member revwarguy's Avatar
    Join Date
    Feb 2009
    Location
    USA
    Posts
    499
    Downloads
    0
    Uploads
    0

    Default Re: Arduino Indexing (Dividing) Head

    Rich,

    I have made a 2.4 version that has the changes to produce an output pulse on A3 (the analog in lines can be used as digital outputs - there are very few pins left on the Uno) for a duration (which you can change) that defaults to 10 milliseconds. There is no pulse on the non-movement commands or on the continuous run command.

    I would like you to test it to make sure it is what you needed before releasing it. Please PM me with your email so we can communicate for beta testing, ok?

    "72.6 per cent of all statistics are made up on the spot." - Steven Wright


  10. #50
    Member 1875's Avatar
    Join Date
    Mar 2012
    Location
    USA
    Posts
    192
    Downloads
    0
    Uploads
    0

    Default Re: Arduino Indexing (Dividing) Head

    This seems like an interesting project. I created an Arduino based setup using almost the exact same pieces for a rotary table. The DM site is confusing to me, so I just wanted to compare the code.

    Rebuilding my Bridgeport Boss3...


  11. #51
    Member
    Join Date
    Jun 2005
    Location
    USA
    Posts
    260
    Downloads
    0
    Uploads
    0

    Default Re: Arduino Indexing (Dividing) Head

    Hi, I finally uploaded my smooth stepping code in serial port command-line sketch called RDL,
    RDL - Serial-Port Stepper Command-Line Utility with Smooth Stepping




  12. #52
    Registered
    Join Date
    Sep 2017
    Location
    New Zealand
    Posts
    1
    Downloads
    0
    Uploads
    0

    Default Arduino Indexing (Dividing) Head -Technical advice please

    Hello Mr Liming,

    May I please request your assistance?

    I'm attempting to use your Step indexer 2.3 code to control my indexing head. I've had to change the board values at the end of the code to suit my version of keypad shield. I have not as yet been able to get movement from the stepper motor using the original code, or my modification of your code.

    I'm using:

    Arduino UNO
    Nema23 stepper motor 4.2V DC, 2 Amp
    TB6560 Stepper motor controller
    Duinotech LCD keypad shield
    12V 1.25 Amp transformer with Japanese Jack

    I have successfully tested the stepper motor with the Arduino library stepper example: stepper_oneRevolution.ino, powered with my transformer.

    Running the Stepper23 program, with power on, the stepper motor is energised and locked. The program works fine on the keypad shield, but the stepper motor won't turn.

    The stepper motor is connected to the TB6560 correctly with the VIN (supplying 11.25 V) wired to the +24V input. And grounded.

    EN+, CW+, CLK+, are connected to 5V output (measuring 4.9V)

    CLK- connected to DO pin 2

    CW- connected to DO pin 3

    EN- connected to DO pin 11


    I'm assuming I'm not getting a signal from the keypad shield to the stepper controller. Could be my wiring, could be a compatibility issue with the keypad shield, or could be something else, but I don't know.

    Can you please give me your opinion? This is my first time experimenting with Arduino and I would really appreciate your advice.

    I won't be able to reply for 4 days if you need anymore information.

    Thank you for your time.

    Kind regards,
    Michael Macgregor (New Zealand)

    Attached Thumbnails Attached Thumbnails Arduino Indexing (Dividing) Head-4-jpg   Arduino Indexing (Dividing) Head-transformer1-jpg   Arduino Indexing (Dividing) Head-circuit1-jpg   Arduino Indexing (Dividing) Head-duinotech-board-values-jpg  



  13. #53
    Member revwarguy's Avatar
    Join Date
    Feb 2009
    Location
    USA
    Posts
    499
    Downloads
    0
    Uploads
    0

    Default Re: Arduino Indexing (Dividing) Head -Technical advice please

    Quote Originally Posted by productofnz View Post
    Hello Mr Liming,

    May I please request your assistance?
    I responded to Michael on the Digital Machinist forum.

    However, as Michael (and others) have pointed out, sometimes the keys on the inexpensive 1602 LCD shield does not work as well as we would like.
    This is often due to the fact that there are many manufacturers of those shields now, and they use resistors that are often 10% (or worse) tolerance. This means that for your particular board, the values returned by the Uno's A/D converter vary from board to board.

    To mitigate this, I've written a simple program called Showkeys that loads into the Uno and displays the values of each pressed key. To get this program, go here, and about halfway down the page is a link that will download it for you. Instructions are in the zip file. Once you've run this program, just reload the Step Index program into the Uno.

    "72.6 per cent of all statistics are made up on the spot." - Steven Wright


Page 3 of 3 FirstFirst 123

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  


About CNCzone.com

    We are the largest and most active discussion forum for manufacturing industry. The site is 100% free to join and use, so join today!

Follow us on


Our Brands

Arduino Indexing (Dividing) Head

Arduino Indexing (Dividing) Head