Pages: [1]   Go Down
Author Topic: Beginner - Help please  (Read 404 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hey, would really appreciate any help

Basically, i have got an Aquino Uno board, 2 stepper motors and 2 stepper drivers.

I have got the Arduino environment ready for use, but would like some assistance in the programming. The motors will be representing the x and y axis, so i just need to programme so that the motors work in a sweeping action, so that x motor moves across the full legnth, then the y motor moves it a row, then the x motor moves across the full length again, And so on until the whole area has been covered (scanned).
Any help would be really appreciated.

Thanks
Jack
Logged

Massachusetts, USA
Offline Offline
Tesla Member
***
Karma: 208
Posts: 8821
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
const unsigned long int X_STEPS_MAX = 745683;
const unsigned long int Y_STEPS_MAX = 87346;

unsigned long int X_position = 0;
unsigned long int Y_position = 0;

boolean X_increasing = true;

void loop() {
    if (X_increasing) {
        if (X_position == X_STEPS_MAX) {
             Y_position ++;
             Y_step_down();
             X_increasing = false;
         } else {
            X_position++;
            X_step_right();
         }
    } else { // decreasing
        if (X_position == 0) {
             Y_position ++;
             Y_step_down();
             X_increasing = true;
         } else {
            X_position--;
            X_step_left();
         }
     }

   while (Y_position == Y_STEPS_MAX);  // stop everything
}
Logged

Send Bitcoin tips to: 1L3CTDoTgrXNA5WyF77uWqt4gUdye9mezN
Send Litecoin tips to : LVtpaq6JgJAZwvnVq3ftVeHafWkcpmuR1e

0
Offline Offline
Shannon Member
****
Karma: 206
Posts: 12092
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

And implicit in that code is that the X_step_right() etc functions will delay appropriately to step at the desired rate!
Logged

[ I won't respond to messages, use the forum please ]

Massachusetts, USA
Offline Offline
Tesla Member
***
Karma: 208
Posts: 8821
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

And implicit in that code is that the X_step_right() etc functions will delay appropriately to step at the desired rate!

Actually, implicit in that code is that no step rate was specified. smiley
Logged

Send Bitcoin tips to: 1L3CTDoTgrXNA5WyF77uWqt4gUdye9mezN
Send Litecoin tips to : LVtpaq6JgJAZwvnVq3ftVeHafWkcpmuR1e

Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
[quote]
#include <[color=#CC6600]Stepper[/color].h>

[color=#7E7E7E]// initialize the stepper library on pins 8 through 11:[/color]
[color=#CC6600]Stepper[/color] myStepper(stepsPerRevolution, 8,9,10,11); 

[color=#CC6600]const[/color] [color=#CC6600]unsigned[/color] [color=#CC6600]long[/color] [color=#CC6600]int[/color] X_STEPS_MAX = 745683;
[color=#CC6600]const[/color] [color=#CC6600]unsigned[/color] [color=#CC6600]long[/color] [color=#CC6600]int[/color] Y_STEPS_MAX = 87346;

[color=#CC6600]unsigned[/color] [color=#CC6600]long[/color] [color=#CC6600]int[/color] X_position = 0;
[color=#CC6600]unsigned[/color] [color=#CC6600]long[/color] [color=#CC6600]int[/color] Y_position = 0;

[color=#CC6600]boolean[/color] X_increasing = [color=#CC6600]true[/color];

[color=#CC6600]void[/color] [color=#CC6600][b]loop[/b][/color]() {
    [color=#CC6600]if[/color] (X_increasing) {
        [color=#CC6600]if[/color] (X_position == X_STEPS_MAX) {
             Y_position ++;
             Y_step_down();
             X_increasing = [color=#CC6600]false[/color];
         } [color=#CC6600]else[/color] {
            X_position++;
            X_step_right();
         }
    } [color=#CC6600]else[/color] { [color=#7E7E7E]// decreasing[/color]
        [color=#CC6600]if[/color] (X_position == 0) {
             Y_position ++;
             Y_step_down();
             X_increasing = [color=#CC6600]true[/color];
         } [color=#CC6600]else[/color] {
            X_position--;
            X_step_left();
         }
     }

   [color=#CC6600]while[/color] (Y_position == Y_STEPS_MAX);  [color=#7E7E7E]// stop everything[/color]
}

[/quote]

Would this do it then?
Or do I need to add somthing else to get it working?

Also, would it help if i told you here are the components I have:

http://www.technobotsonline.com/arduino-uno-main-board-r3.html  x1
http://www.technobotsonline.com/stepper-motor-20x30mm-3.9v-600ma.html x2
http://www.technobotsonline.com/pololu-a4988-stepper-motor-driver-carrier--voltage-reg.html x2

Finally, probably a stupid question, but how do I link the arduino to the drivers and the drivers to the motors. I am assuming wires as the use of a protoboard was suggested?

Apologies about all of the questions, new to all this Arduino programming but it needs to be done for a team project.

Cheers
Jack

Logged

Pages: [1]   Go Up
Jump to: