No I'm powering with external 5V
[code]
#include <MobaTools.h>
#include <Servo.h>
// Define servo motor
Servo Servo1;
Servo Servo2;
int ang1 = 90;
int ang2 = 90;
int val;
long steps = 20;
const byte enablePin = 8; // for my CNC shield stepper enable
//Define stepper motor
MoToStepper StepperX(steps, STEPDIR);
MoToStepper StepperY(steps, STEPDIR);
MoToStepper StepperZ(steps, STEPDIR);
MoToStepper StepperA(steps, STEPDIR);
void setup() {
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
pinMode(14, OUTPUT);
pinMode(15, OUTPUT);
Serial.begin(9600);
Servo1.attach(14);
Servo2.attach(15);
Servo1.write(ang1);
Servo2.write(ang2);
//Define stepper motor
StepperX.attach(2, 5);
StepperY.attach(3, 6);
StepperZ.attach(4, 7);
StepperA.attach(12, 13);
StepperX.setSpeed(200);
StepperY.setSpeed(200);
StepperZ.setSpeed(200);
StepperA.setSpeed(200);
StepperX.setRampLen(1);
StepperY.setRampLen(1);
StepperZ.setRampLen(1);
StepperA.setRampLen(1);
}
void loop() {
if (Serial.available())
{
val = Serial.read();
if (val == 'y') {
ang1 += 3;
Servo1.write(ang1);
}
if (val == 'h') {
ang1 -= 3;
Servo1.write(ang1);
}
if (val == 't') {
ang2 += 3;
Servo2.write(ang2);
}
if (val == 'g') {
ang2 -= 3;
Servo2.write(ang2);
}
//Adding stepper motor comad
//Stepper 4 (arm3)a
if (val == 'r') {
StepperA.doSteps(steps);
}
if (val == 'f') {
StepperA.doSteps(-steps);
}
//Stepper 3 (arm2)z
if (val == 'e') {
StepperZ.doSteps(steps);
}
if (val == 'd') {
StepperZ.doSteps(-steps);
}
//Stepper 2 (arm1)y
if (val == 'w') {
StepperY.doSteps(steps);
}
if (val == 's') {
StepperY.doSteps(-steps);
}
//Stepper 1 (base)x
if (val == 'q') {
StepperX.doSteps(steps);
}
if (val == 'a') {
StepperX.doSteps(-steps);
}
}
}
[/code]
This code work with keyboard and Tera Term but unfortunately motor not have the strenght to work correctly on the arm.
Code work very well. Now I'll try your code with serial monitor.