Files
Arduino/Projects/28BYJ Stepper/Third_WithButtons/Third_WithButtons.ino

87 lines
1.5 KiB
C++

int leftCCW[] = {8, 9, 10, 11};
int leftCW[] = {11, 10, 9, 8};
int leftButtons[] = {2, 3};
int rightCCW[] = {4, 5, 6, 7};
int rightCW[] = {7, 6, 5, 4};
int rightButtons[] = {0, 1};
const int motorSteps[8][4] = {
{1, 0, 0, 0},
{1, 1, 0, 0},
{0, 1, 0, 0},
{0, 1, 1, 0},
{0, 0, 0, 1},
{0, 0, 1, 1},
{0, 0, 0, 1},
{1, 0, 0, 1}
};
int motorSpeed = 0;
void setup() {
for (int i=0; i < 4; i++) {
pinMode(leftCW[i], OUTPUT);
pinMode(rightCW[i], OUTPUT);
}
for (int i = 0; i < 2; i++) {
pinMode(leftButtons[i], INPUT);
pinMode(rightButtons[i], INPUT);
}
}
void loop() {
if (analogRead(leftButtons[0]) == 0) {
leftUp();
} else if(analogRead(leftButtons[1]) == 1){
leftDown();
}
if (analogRead(leftButtons[0]) == 0) {
rightUp();
} else if(analogRead(leftButtons[1]) == 1){
rightDown();
}
}
void leftUp() {
for(int i=0; i < 8; i++){
for(int j=0; j < 4; j++){
// Left motor
digitalWrite(leftCW[j], motorSteps[j][i]);
delay(1);
}
}
}
void leftDown() {
for(int i=0; i < 8; i++){
for(int j=0; j < 4; j++){
// Left motor
digitalWrite(leftCCW[j], motorSteps[j][i]);
delay(1);
}
}
}
void rightUp() {
for(int i=0; i < 8; i++){
for(int j=0; j < 4; j++){
// Right motor
digitalWrite(rightCCW[j], motorSteps[j][i]);
delay(1);
}
}
}
void rightDown() {
for(int i=0; i < 8; i++){
for(int j=0; j < 4; j++){
// Right motor
digitalWrite(rightCW[j], motorSteps[j][i]);
delay(1);
}
}
}