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

96 lines
1.8 KiB
C++

int leftCCW[] = {8, 9, 10, 11};
int leftCW[] = {11, 10, 9, 8};
int leftButtons[] = {0, 1};
int rightCCW[] = {4, 5, 6, 7};
int rightCW[] = {7, 6, 5, 4};
int rightButtons[] = {2, 3};
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);
}
pinMode(12, INPUT);
Serial.begin(9600);
}
void loop()
{
if (digitalRead(12) == LOW)
{ windUp(); }
else { windDown(); }
}
void windUp() {
while(digitalRead(rightButtons[1]) == LOW || digitalRead(leftButtons[1] == LOW)){
if (digitalRead(rightButtons[1] == LOW))
{
for(int i=0; i < 8; i++){
for(int j=0; j < 4; j++){
// Right motor
digitalWrite(rightCCW[j], motorSteps[j][i]);
delay(1);
}
}
}
if (digitalRead(leftButtons[1] == LOW))
{
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 windDown() {
while(digitalRead(rightButtons[0]) == LOW || digitalRead(leftButtons[0] == LOW)){
if (digitalRead(rightButtons[0] == LOW)) {
for(int i=0; i < 8; i++){
for(int j=0; j < 4; j++){
// Right motor
digitalWrite(rightCW[j], motorSteps[j][i]);
delay(1);
}
}
}
if (digitalRead(leftButtons[0] == LOW)) {
for(int i=0; i < 8; i++){
for(int j=0; j < 4; j++){
// Left motor
digitalWrite(leftCCW[j], motorSteps[j][i]);
delay(1);
}
}
}
}
}