I am having problems applying the brake in the code on Brake A - Pin 9 Brake B - Pin 8
FUNCTION REQUIRED.
STEEPPER MOTOR 200 STEPS
ARDUNIO MOTOR SHEILD R3 ON A UNO BOARD
PUSH BUTTON NO1.
ROTATE 90 DEGREES RIGHT HOLD/ (BRAKE 2 SECONDS THEN RELEARSE BRAKE) THEN ROTATE LEFT 90 DEGREES
APPLY BRAKE.
PUSH BUTTON NO2.
ROTATE 90 DEGREES LEFT HOLD/ (BRAKE 2 SECONDS THEN RELARSE BRAKE) THEN ROTATE RIGHT 90 DEGREES
APPLY BRAKE
#include <Stepper.h>
const int stepsPerRevolution = 200;
int delaylegnth = 30;
Stepper myStepper(stepsPerRevolution, 8, 9, 12, 13);
const int pwmA = 3;
const int pwmB = 11;
const int brakeA = 9;
const int brakeB = 8;
const int dirA = 12;
const int dirB = 13;
int bt1 = 4;
int bt2 = 5;
boolean bt1g;
boolean bt2g;
void setup () {
Serial.begin(9600);
pinMode(dirA, OUTPUT);
pinMode(dirB, OUTPUT);
pinMode(brakeA, OUTPUT);
pinMode(brakeB, OUTPUT);
digitalWrite(pwmA, HIGH);
digitalWrite(pwmB, HIGH);
digitalWrite(brakeA, HIGH);
digitalWrite(brakeB, HIGH);
Serial.begin(9600);
pinMode(bt1, INPUT_PULLUP);
pinMode(bt2, INPUT_PULLUP);
bt1g = false;
bt2g = false;
Serial.begin(9600);
myStepper.setSpeed(80);
}
void loop() {
int bt1val1 = digitalRead(bt1);
int bt1val2 = digitalRead(bt2);
if (!bt1g){
if (bt1val1 == 0){
Serial.println(bt1val1);
for (int i = 0; i < 13; i++){
digitalWrite(9, LOW); //ENABLE CH A
digitalWrite(8, HIGH); //DISABLE CH B
digitalWrite(12, HIGH); //Sets direction of CH A
analogWrite(3, 255); //Moves CH A
delay(delaylegnth);
digitalWrite(9, HIGH); //DISABLE CH A
digitalWrite(8, LOW); //ENABLE CH B
digitalWrite(13, HIGH); //Sets direction of CH B
analogWrite(11, 255); //Moves CH B
delay(delaylegnth);
digitalWrite(9, LOW); //ENABLE CH A
digitalWrite(8, HIGH); //DISABLE CH B
digitalWrite(12, LOW); //Sets direction of CH A
analogWrite(3, 255); //Moves CH A
delay(delaylegnth);
digitalWrite(9, HIGH); //DISABLE CH A
digitalWrite(8, LOW); //ENABLE CH B
digitalWrite(13, LOW); //Sets direction of CH B
analogWrite(11, 255); //Moves CH B
delay(delaylegnth);
}
for (int i = 0; i < 13; i++){
digitalWrite(9, LOW); //ENABLE CH A
digitalWrite(8, HIGH); //DISABLE CH B
digitalWrite(12, HIGH); //Sets direction of CH A
analogWrite(3, 255); //Moves CH A
delay(delaylegnth);
digitalWrite(9, HIGH); //DISABLE CH A
digitalWrite(8, LOW); //ENABLE CH B
digitalWrite(13, LOW); //Sets direction of CH B
analogWrite(11, 255); //Moves CH B
delay(delaylegnth);
digitalWrite(9, LOW); //ENABLE CH A
digitalWrite(8, HIGH); //DISABLE CH B
digitalWrite(12, LOW); //Sets direction of CH A
analogWrite(3, 255); //Moves CH A
delay(delaylegnth);
digitalWrite(9, HIGH); //DISABLE CH A
digitalWrite(8, LOW); //ENABLE CH B
digitalWrite(13, HIGH); //Sets direction of CH B
analogWrite(11, 255); //Moves CH B
delay(delaylegnth);
}
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
bt1g = true;
}
}
else{
if (bt1val1 == 1){
Serial.println(bt1val1);
bt1g = false;
}
}
delay(15);
if (!bt2g){
if (bt1val2 == 0){
Serial.println(bt1val2);
for (int i = 0; i < 13; i++){
digitalWrite(9, LOW); //ENABLE CH A
digitalWrite(8, HIGH); //DISABLE CH B
digitalWrite(12, HIGH); //Sets direction of CH A
analogWrite(3, 255); //Moves CH A
delay(delaylegnth);
digitalWrite(9, HIGH); //DISABLE CH A
digitalWrite(8, LOW); //ENABLE CH B
digitalWrite(13, LOW); //Sets direction of CH B
analogWrite(11, 255); //Moves CH B
delay(delaylegnth);
digitalWrite(9, LOW); //ENABLE CH A
digitalWrite(8, HIGH); //DISABLE CH B
digitalWrite(12, LOW); //Sets direction of CH A
analogWrite(3, 255); //Moves CH A
delay(delaylegnth);
digitalWrite(9, HIGH); //DISABLE CH A
digitalWrite(8, LOW); //ENABLE CH B
digitalWrite(13, HIGH); //Sets direction of CH B
analogWrite(11, 255); //Moves CH B
delay(delaylegnth);
}
for (int i = 0; i < 13; i++){
digitalWrite(9, LOW); //ENABLE CH A
digitalWrite(8, HIGH); //DISABLE CH B
digitalWrite(12, HIGH); //Sets direction of CH A
analogWrite(3, 255); //Moves CH A
delay(delaylegnth);
digitalWrite(9, HIGH); //DISABLE CH A
digitalWrite(8, LOW); //ENABLE CH B
digitalWrite(13, HIGH); //Sets direction of CH B
analogWrite(11, 255); //Moves CH B
delay(delaylegnth);
digitalWrite(9, LOW); //ENABLE CH A
digitalWrite(8, HIGH); //DISABLE CH B
digitalWrite(12, LOW); //Sets direction of CH A
analogWrite(3, 255); //Moves CH A
delay(delaylegnth);
digitalWrite(9, HIGH); //DISABLE CH A
digitalWrite(8, LOW); //ENABLE CH B
digitalWrite(13, LOW); //Sets direction of CH B
analogWrite(11, 255); //Moves CH B
delay(delaylegnth);
}
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
bt2g = true;
}
}
else{
if (bt1val2 == 1){
Serial.println(bt1val2);
bt2g = false;
}
}
}