Notifications
Clear all

Arduino with Stepper and LiquidCrystal Issue

308 Posts
5 Users
12 Likes
24.5 K Views
Will
 Will
(@will)
Member
Joined: 3 years ago
Posts: 2531
 
Posted by: @voltage

edit: 3.0 DIA, 0.79 RPM- 28 seconds for 1 rev

OK, that means 28 seconds to go 3 x pi x 8 eights of an inch

so 1 eight/inch = 28/75.39  = .37 eights/sec

so .37/3 (for the chain) = .123 seconds per 1/8 inch

Sounds close to me.

Anything seems possible when you don't know what you're talking about.


   
ReplyQuote
(@voltage)
Member
Joined: 3 years ago
Posts: 187
Topic starter  
Posted by: @will
Posted by: @voltage

edit: 3.0 DIA, 0.79 RPM- 28 seconds for 1 rev

OK, that means 28 seconds to go 3 x pi x 8 eights of an inch

so 1 eight/inch = 28/75.39  = .37 eights/sec

so .37/3 (for the chain) = .123 seconds per 1/8 inch

Sounds close to me.

Wait a minute. It's supposed to be 1.00 second per 1/8" travel. You said .123?

 

Thanks,
Voltage


   
ReplyQuote
Will
 Will
(@will)
Member
Joined: 3 years ago
Posts: 2531
 

@voltage

Ouch !

85 seconds doesn't sound all that close to two minutes ! But why is it accurate for small diameters and not for large ones ? Both tests for small ones came out very close but this one resulted in an observed .36 RPM versus predicted .5 RPM ?

I'm out for my walk and now I'll have something else to think about too. Back soon.

Anything seems possible when you don't know what you're talking about.


   
ReplyQuote
(@voltage)
Member
Joined: 3 years ago
Posts: 187
Topic starter  
Posted by: @will

@voltage

Ouch !

85 seconds doesn't sound all that close to two minutes ! But why is it accurate for small diameters and not for large ones ? Both tests for small ones came out very close but this one resulted in an observed .36 RPM versus predicted .5 RPM ?

I'm out for my walk and now I'll have something else to think about too. Back soon.

Ok I will go eat my breakfast. Also look at the edited post above this one.

 

Thanks,
Voltage


   
ReplyQuote
Will
 Will
(@will)
Member
Joined: 3 years ago
Posts: 2531
 
Posted by: @voltage
Posted by: @will
Posted by: @voltage

edit: 3.0 DIA, 0.79 RPM- 28 seconds for 1 rev

OK, that means 28 seconds to go 3 x pi x 8 eights of an inch

so 1 eight/inch = 28/75.39  = .37 eights/sec

so .37/3 (for the chain) = .123 seconds per 1/8 inch

Sounds close to me.

Wait a minute. It's supposed to be 1.00 second per 1/8" travel. You said .123?

Yes, I've been for my walk, got some fresh air and coffee. It helped 🙂

That should have been

1 second = 75.39/28 =2.69 eigths 

Divide that by 3 (for the chain)

= .90 seconds per eighth

 

(See why I wanted you guys to check my calculations 🙂

Anything seems possible when you don't know what you're talking about.


   
Voltage reacted
ReplyQuote
Will
 Will
(@will)
Member
Joined: 3 years ago
Posts: 2531
 
Posted by: @voltage
Posted by: @will

@voltage @madmisha

If you can make a cardboard test circle of 4.76 inches, it should come out to close to 0.5 RPM. So if you mark it on the circumference, you should see the mark back at almost exactly two minutes. That will avoid having to glance back and forth all the time.

Ok, I will see if I can make one that size and test it. It's easy to glance back and forth on the one rev test. Counting the 1/8 or 3/8" increments a whole different story. Back to the kitchen.

edit: Made approximate 4.76" circle. Display said 4.74-4.76 (flickers a little at first) RPMs 0.49 and for 1 revolution it took 43 seconds and 2 revolutions took 1 min 25 seconds (85 secs).

OK so in 43 seconds it went 1 rotation = 4.76 x ∏ x 8 eights = 119.63 eights

in 1 second it went 119.63/43 eights = 2.78 eights

Correcting for the chain we get 

2.78/3 = .93 seconds/eighth

 

in 85 seconds it went 2 rotations = 2 x 119.63 eights = 239.26 eighths

so in 1 second it went 239.26/85 = 2.81 eights

correcting for the chain

= 2.81/3 = .94 eights.

 

I feel much better now, after the coffee and the smaller error.

 

So, it looks like we have about 8-10% undershoot. This is probably caused by measurement errors, jitter in the pot and loop delays large enough to cause the stepper to skip steps. 

Anything seems possible when you don't know what you're talking about.


   
ReplyQuote
(@voltage)
Member
Joined: 3 years ago
Posts: 187
Topic starter  
Posted by: @will
Posted by: @voltage
Posted by: @will

@voltage @madmisha

If you can make a cardboard test circle of 4.76 inches, it should come out to close to 0.5 RPM. So if you mark it on the circumference, you should see the mark back at almost exactly two minutes. That will avoid having to glance back and forth all the time.

Ok, I will see if I can make one that size and test it. It's easy to glance back and forth on the one rev test. Counting the 1/8 or 3/8" increments a whole different story. Back to the kitchen.

edit: Made approximate 4.76" circle. Display said 4.74-4.76 (flickers a little at first) RPMs 0.49 and for 1 revolution it took 43 seconds and 2 revolutions took 1 min 25 seconds (85 secs).

OK so in 43 seconds it went 1 rotation = 4.76 x ∏ x 8 eights = 119.63 eights

in 1 second it went 119.63/43 eights = 2.78 eights

Correcting for the chain we get 

2.78/3 = .93 seconds/eighth

 

in 85 seconds it went 2 rotations = 2 x 119.63 eights = 239.26 eighths

so in 1 second it went 239.26/85 = 2.81 eights

correcting for the chain

= 2.81/3 = .94 eights.

 

I feel much better now, after the coffee and the smaller error.

 

So, it looks like we have about 8-10% undershoot. This is probably caused by measurement errors, jitter in the pot and loop delays large enough to cause the stepper to skip steps. 

So I was going to ask a question maybe better now than later. If I want to up my microsteps from 400 to 1600 on my driver, will that help or hurt the missing step issue? And if I wanted to do that, how many other changes in the code would I have to make?

 

Thanks,
Voltage


   
ReplyQuote
(@voltage)
Member
Joined: 3 years ago
Posts: 187
Topic starter  
Posted by: @will
Posted by: @voltage
Posted by: @will

@voltage @madmisha

If you can make a cardboard test circle of 4.76 inches, it should come out to close to 0.5 RPM. So if you mark it on the circumference, you should see the mark back at almost exactly two minutes. That will avoid having to glance back and forth all the time.

Ok, I will see if I can make one that size and test it. It's easy to glance back and forth on the one rev test. Counting the 1/8 or 3/8" increments a whole different story. Back to the kitchen.

edit: Made approximate 4.76" circle. Display said 4.74-4.76 (flickers a little at first) RPMs 0.49 and for 1 revolution it took 43 seconds and 2 revolutions took 1 min 25 seconds (85 secs).

OK so in 43 seconds it went 1 rotation = 4.76 x ∏ x 8 eights = 119.63 eights

in 1 second it went 119.63/43 eights = 2.78 eights

Correcting for the chain we get 

2.78/3 = .93 seconds/eighth

 

in 85 seconds it went 2 rotations = 2 x 119.63 eights = 239.26 eighths

so in 1 second it went 239.26/85 = 2.81 eights

correcting for the chain

= 2.81/3 = .94 eights.

 

I feel much better now, after the coffee and the smaller error.

 

So, it looks like we have about 8-10% undershoot. This is probably caused by measurement errors, jitter in the pot and loop delays large enough to cause the stepper to skip steps. 

And the error could be due to when I start it to start counting? Anyway, that is a small error percent wise. Totally acceptable.

 

Thanks,
Voltage


   
ReplyQuote
(@voltage)
Member
Joined: 3 years ago
Posts: 187
Topic starter  

@madmisha

I figured out I have Version 1.0 of the LCD Shield by hunting down the manufacturer and looking at a V2 and it looks totally different.

https://www.dfrobot.com/product-1363.html

Thanks,
Voltage


   
ReplyQuote
Will
 Will
(@will)
Member
Joined: 3 years ago
Posts: 2531
 
Posted by: @voltage

So I was going to ask a question maybe better now than later. If I want to up my microsteps from 400 to 1600 on my driver, will that help or hurt the missing step issue? And if I wanted to do that, how many other changes in the code would I have to make?

 

Doubling the multistep rate would require twice as many steps to move the same distance, so the rate at which steps must occur to maintain the same rotational speed would double. That would make it more likely to miss steps (because the loop will operate at the same rate it does now).

I think doubling the multistep would only require changing the 5100 to 10200 and the 20290 to 40584.

My updated version moves those to the top as constants, so you'd just have to change the 5100 to 10200 and the other number will be auto calculated from that. So- only one number to change at the top of the sketch. Easy-peasy.

Anything seems possible when you don't know what you're talking about.


   
ReplyQuote
(@voltage)
Member
Joined: 3 years ago
Posts: 187
Topic starter  
Posted by: @will
Posted by: @voltage

So I was going to ask a question maybe better now than later. If I want to up my microsteps from 400 to 1600 on my driver, will that help or hurt the missing step issue? And if I wanted to do that, how many other changes in the code would I have to make?

 

Doubling the multistep rate would require twice as many steps to move the same distance, so the rate at which steps must occur to maintain the same rotational speed would double. That would make it more likely to miss steps (because the loop will operate at the same rate it does now).

I think doubling the multistep would only require changing the 5100 to 10200 and the 20290 to 40584.

My updated version moves those to the top as constants, so you'd just have to change the 5100 to 10200 and the other number will be auto calculated from that. So- only one number to change at the top of the sketch. Easy-peasy.

Ok, cool. That is why I opted to use 400 as my setting because 200 would be full steps and 400 should be half steps and 800 would be quarter steps... I think. And lower step count equals higher torque too.

 

Thanks,
Voltage


   
ReplyQuote
Will
 Will
(@will)
Member
Joined: 3 years ago
Posts: 2531
 
Posted by: @voltage

Ok, cool. That is why I opted to use 400 as my setting because 200 would be full steps and 400 should be half steps and 800 would be quarter steps... I think. And lower step count equals higher torque too.

 

Not everyone would agree about getting more torque from multi stepping, especially under heavy loading. That you'd have to verify with your final setup.

Now that you have your set of testing cardboard disks, shall I send you the latest version to test (to make sure I haven't embarrassed myself) ?

It eliminates small jitter and extracts some calculations from the loop. It calls the stepper function more often as well. All of these are intended to minimize lost steps and will hopefully reduce error percentage due to lost steps.

It also includes some extra comments.

If you look at the top of the sketch you'll find a value finalSPR which is described in the comments above it. This is the ONLY variable whose value you'd need to change if you change multi stepping. 

Anything seems possible when you don't know what you're talking about.


   
ReplyQuote
(@voltage)
Member
Joined: 3 years ago
Posts: 187
Topic starter  
Posted by: @will
Posted by: @voltage

Ok, cool. That is why I opted to use 400 as my setting because 200 would be full steps and 400 should be half steps and 800 would be quarter steps... I think. And lower step count equals higher torque too.

 

Not everyone would agree about getting more torque from multi stepping, especially under heavy loading. That you'd have to verify with your final setup.

Now that you have your set of testing cardboard disks, shall I send you the latest version to test (to make sure I haven't embarrassed myself) ?

It eliminates small jitter and extracts some calculations from the loop. It calls the stepper function more often as well. All of these are intended to minimize lost steps and will hopefully reduce error percentage due to lost steps.

It also includes some extra comments.

If you look at the top of the sketch you'll find a value finalSPR which is described in the comments above it. This is the ONLY variable whose value you'd need to change if you change multi stepping. 

Sure I am ready. And you didn't embarrass yourself if you ask me. You are doing most excellent work and I appreciate learning from you. While you are in there go ahead and add the extra space for the LCD print as I was just going to do that but in the code it already appears to have 6 spaces there. Thanks!

 

Thanks,
Voltage


   
ReplyQuote
Will
 Will
(@will)
Member
Joined: 3 years ago
Posts: 2531
 

Anything seems possible when you don't know what you're talking about.


   
ReplyQuote
(@voltage)
Member
Joined: 3 years ago
Posts: 187
Topic starter  

Thanks,
Voltage


   
ReplyQuote
Page 12 / 21