Arduino Uno, MA860H

It pains me to write this. I feel dumb and ready to explode as I know nothing. Where is a basic dictionary for this program? I cannot create anything from searches that yield zero results.

Dronebot Workshop Big stepper motor video- I watched, I liked, I recreated. That's it. I can follow his actions but I have no idea how he got to the result. Can someone break this down a little more elementary for us dumb people?

If you notice his videos, the stepper motor never is at a complete zero RPM.

So I complete the tutorial together with the video. Easy. Now how on earth do I achieve zero RPM's with the pot turned all the way to the left? Now how do I get 160 RPM with the pot turned all the way up to the right?

I am a machinist and welder. Electronics and this lingo is not my forte but you guys write and speak as if it is as easy as taking out the trash, or brushing your teeth. Please don't tell me some calculation I have no ability to decipher. Speak to me like I am stupid. Why in the big stepper motor video (by dronebotworkshop) does speed ,0 ,1023 ,2000 ,50 speed it up to an unknown speed and slow it down, but changing these from ,0 ,160 ,160, 0? I need it to start at zero RPM with 160 rpm max. Please help me experiment step by step at a slow pace to where I can understand this!!!

Show me how to get a stepper to start in a paused/zero state, then show me how to elevate it up from say zero to 10 RPM, then zero to 80 RPM. Etc. And again, A dictionary would be nice.
How can I decipher when one person is speaking RPM's, another is speaking steps per revolution, another is speaking increments? What is the standard set of values?

I have no code I don't know where to start I'm lost.

Working with
NEMA 23
23HS30-2804S Stepper Motor
MA860H Driver U

I got everything in the above video to work with his guidance, but I cannot evolve my motor from zero rpm to 160 RPM.

Below this line is my best guess of what I anticipate my feeds and speeds and actions should be. AKA (Parameters)

Using 23HS30-2804S Stepper Motor

MA860H Driver

Arduino UNO Board

Potentiometer for speed control

Push button switch CW/CCW

The weld positioner has a 40:1 ratio-the stepper motor needs to spin 40 revolutions for the table of the weld positioner to spin 1 revolution

The stepper motor has to complete 200 steps to make a full revolution.

Arduino speaks in milliseconds only… SO EVEN AFTER WE DO MATH ABOVE, IT HAS TO BE THEN CONVERTED TO MILLISECONDS

Welding Positioner Parameters

The only parameter is that the welding positioners table makes at least 1 full revolution. In order to complete a full revolution, the stepper motor must complete 40 revolutions.

Therefor the ratio is 40:1

We will speed up or slow down the revolutions of this by adjusting the stepper motors parameters.

Stepper Motor Parameters

1 revolution per 1 minute=200 steps per minute

200 steps multiplied by 40 revolutions=8000 steps 40 revolutions or 8000 steps is required for one complete revolution of the welding table

8000 steps per 60 seconds=133.333333 steps per 1 second or 40 RPM-- 1:1 this is now the constant. To speed up revolutions per minute, multiply, to slow down revolutions per minute, divide. It is unknown whether Arduino code recognizes RPM or SPR. Either way, there are formulas built into the program, but inputting them correctly is an unknown variable because none of us know the program well enough.

16000 steps per 60 seconds=266.666666 steps per 1 second or 80 RPM-- 2:1 2 times multiplier

24000 steps per 60 seconds=399.999999 steps per 1 second or 120 RPM-- 3:1 3 times multiplier

32000 steps per 60 seconds=533.333332 steps per 1 second or 160 RPM-- 4:1 4 times multiplier

At its fastest speed, 533.333 steps per second should suffice. The Stepper Motor will be at 160 RPM. This is equal to 1 revolution of the welding table/40 revolution of stepper motor every 15 seconds.

At its slowest speed, 22.222222 steps per second should suffice. This is equal to 6.66666 RPM. This will only be needed if welding something that exceeds 6 inches in diameter.

Now we have MAX HIGH AND MAX LOW- we need speeds in between for a happy medium… Best case guess is we need between 10 RPM and 160 RPM. Below are the parameters for the Speed Code. If 40 RPM is the Constant, within the code, dividing or multiplying within the parenthesis should provide results.

1 RPM=200 Steps

SPD Dial Turned all the way down to the left-

1=0 RPM 0 STEPS

2=10 RPM or 2000 Steps

3=20 RPM or 4000 Steps

4=30 RPM or 6000 Steps

5=40 RPM or 8000 STEPS

6=80 RPM or 16000 Steps

7=100 RPM or 20000 Steps

8=120 RPM or 24000 Steps

9=140 RPM or 28000 Steps

10=160 RPM or 32000 Steps

SPD Dial Turned all the way up to the right-

The closest thing you'll find to a "standard" is steps per second. Most NEMA-sized motors are built to provide 200 steps per revolution.

This is the problem. Without code, Arduino hardware is useless. I don't know how people learn to code by watching videos, but clearly some manage to accomplish it. And if you don't understand code you find online, it will be all but impossible to figure out why something doesn't work.

Post the code that you have and maybe we can help (probably).

Alternately, there is pre-built software that might help you. grbl is a stepper motor controller that runs on Arduino and there are PC software programs that let you control grbl from a user interface using mouse/keyboard/control pendants, etc. That might be a better fit for what you're trying to do.

@cedarlakeinstruments and everyone else, please have mercy on me as I try to learn something new...

The thing is I have no code whatsoever. In the lower portion of the original message are the parameters I expect to tell the program if only I knew how.

It's all as clear as muddy water. I know my motor does 200 steps per revolution. I provided the stepper driver I will use. I'm not looking for anyone to do it for me. I want to learn how to do it.

What I don't know is how Arduino receives that information. The way people speak in these videos make it seem like Arduino is an infinite parameter that understands infinite parameters.

The only thing Arduino seems to agree on is milliseconds. Everything is in milliseconds. How about RPM? Some speak of code in RPM, some speak of code in steps per revolution, some speak in micro steps, some speak in increments, WHAT IS IT? For me to begin to understand this program I need to understand the constants that make up the foundation. Is the constant RPM, steps per revolution, micro steps, or increments, or is it just some free for all that you create with each new code? And as long as you define that as a constant, then boom, you have a constant. Is that the case? Constants can be made/defined from anything and everything that has a repeatable value that can be multiplied or divided?

I'm simply looking for an easy way to understand this so I can build my application. And all I want my application to do is spin 10 rpm when the pot is turned to the left and 160 rpm when turned to the right. It seems so simple, especially since I have already done it following along to a video, and I've run CNC machines as my daily job for almost 30 years, BUT I HAVE SIMPLY TAKEN THE INTERNAL MOTIONS/PROGRAMMING FOR GRANTED UP UNTIL NOW.

A bigger part of the problem I have been dealing with is based on droneBOTworkshops video, his speed is ,0 ,1023 ,2000 ,50 where do these magical numbers come from? He says it's a calculation based off arduinos 10 byt processors calculation. Based on these numbers, it does not have a zero. It never stops. It creeps, but never stops.

All I need is code:
Start 0 rpm
Turn pot right 160 rpm max
Push button CCW
Push button CW

How can I understand this simple logic that is going over my head?

Because it only seems simple, but really isn't. Those of us who've been writing code for decades take it for granted, but the reality is that it's not an easy thing to learn to do well.

The reason I mentioned grbl is that it "speaks" G-code and as a machinist, you're probably already familiar with that.

I'm a good engineer, but a terrible teacher and the only way I know to learn is how I did: start really small and slowly learn bit by bit.

If you're looking to learn to code for machine control, the best suggestion I can offer is to install the Arduino IDE, download the AccelStepper library and try to understand what the examples do. If you can make it through that, you'll be able to build this thing yourself.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.