Soooo.... I got help from Robin2 with trying to wire up three motors to an Arduino, and it was finished in a way that let power go through the whole thing, but based on my wiring and my code- the motor drivers don't light up as they should- and the motors aren't moving.
I'm pretty sure it's a wiring problem and not a code problem, because the orange light on the Arduino lights up as if to say it's trying to use them. The aim of the project is to have three different buttons activate 3 different motors, but as of now- it's not working so great. I've attached an image of a sketch of what the circuit looks like now, and heres the code:
int Pin1 = 10;
int Pin2 = 11;
int Pin3 = 12;
int Pin4 = 13;
int Pin5 = 6;
int Pin6 = 7;
int Pin7 = 8;
int Pin8 = 9;
int Pin9 = 2;
int Pin10 = 3;
int Pin11 = 4;
int Pin12 = 5;
int _step = 0;
boolean dir = false;// false=clockwise, true=counter clockwise
int count=0;
unsigned long previousMillis = 0;
unsigned long interval = 10000;
void setup()
{
Serial.begin(9600);
boolean dir = false;
pinMode(Pin1, OUTPUT);
pinMode(Pin2, OUTPUT);
pinMode(Pin3, OUTPUT);
pinMode(Pin4, OUTPUT);
pinMode(Pin5, OUTPUT);
pinMode(Pin6, OUTPUT);
pinMode(Pin7, OUTPUT);
pinMode(Pin8, OUTPUT);
pinMode(Pin9, OUTPUT);
pinMode(Pin10, OUTPUT);
pinMode(Pin11, OUTPUT);
pinMode(Pin12, OUTPUT);
}
void loop()
{
int value = analogRead(A1);
if (value > 650 && value < 1000) {
Serial.println("Button1");
motor1();
} else if (value > 480 && value < 650) {
Serial.println("Button2");
motor2();
} else if (value < 480) {
Serial.println("Button3");
motor3();
}
delay(2);
}
void motor1() {
unsigned long currentMillis = millis();
switch(_step){
case 0:
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, LOW);
digitalWrite(Pin4, HIGH);
break;
case 1:
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, HIGH);
digitalWrite(Pin4, HIGH);
break;
case 2:
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, HIGH);
digitalWrite(Pin4, LOW);
break;
case 3:
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, HIGH);
digitalWrite(Pin3, HIGH);
digitalWrite(Pin4, LOW);
break;
case 4:
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, HIGH);
digitalWrite(Pin3, LOW);
digitalWrite(Pin4, LOW);
break;
case 5:
digitalWrite(Pin1, HIGH);
digitalWrite(Pin2, HIGH);
digitalWrite(Pin3, LOW);
digitalWrite(Pin4, LOW);
break;
case 6:
digitalWrite(Pin1, HIGH);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, LOW);
digitalWrite(Pin4, LOW);
break;
case 7:
digitalWrite(Pin1, HIGH);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, LOW);
digitalWrite(Pin4, HIGH);
break;
default:
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, LOW);
digitalWrite(Pin4, LOW);
break;
}
if (currentMillis - previousMillis > interval) {
previousMillis = currentMillis;
if (dir == false)
dir = true;
else
delay(99999999999999999999999999999999999999999999999);
}
if(dir){
_step++;
}else{
_step--;
}
if(_step>7){
_step=0;
}
if(_step<0){
_step=7;
}
}
void motor2(){
unsigned long currentMillis = millis();
switch(_step){
case 0:
digitalWrite(Pin5, LOW);
digitalWrite(Pin6, LOW);
digitalWrite(Pin7, LOW);
digitalWrite(Pin8, HIGH);
break;
case 1:
digitalWrite(Pin5, LOW);
digitalWrite(Pin6, LOW);
digitalWrite(Pin7, HIGH);
digitalWrite(Pin8, HIGH);
break;
case 2:
digitalWrite(Pin5, LOW);
digitalWrite(Pin6, LOW);
digitalWrite(Pin7, HIGH);
digitalWrite(Pin8, LOW);
break;
case 3:
digitalWrite(Pin5, LOW);
digitalWrite(Pin6, HIGH);
digitalWrite(Pin7, HIGH);
digitalWrite(Pin8, LOW);
break;
case 4:
digitalWrite(Pin5, LOW);
digitalWrite(Pin6, HIGH);
digitalWrite(Pin7, LOW);
digitalWrite(Pin8, LOW);
break;
case 5:
digitalWrite(Pin5, HIGH);
digitalWrite(Pin6, HIGH);
digitalWrite(Pin7, LOW);
digitalWrite(Pin8, LOW);
break;
case 6:
digitalWrite(Pin5, HIGH);
digitalWrite(Pin6, LOW);
digitalWrite(Pin7, LOW);
digitalWrite(Pin8, LOW);
break;
case 7:
digitalWrite(Pin5, HIGH);
digitalWrite(Pin6, LOW);
digitalWrite(Pin7, LOW);
digitalWrite(Pin8, HIGH);
break;
default:
digitalWrite(Pin5, LOW);
digitalWrite(Pin6, LOW);
digitalWrite(Pin7, LOW);
digitalWrite(Pin8, LOW);
break;
}
if (currentMillis - previousMillis > interval) {
previousMillis = currentMillis;
if (dir == false)
dir = true;
else
delay(99999999999999999999999999999999999999999999999);
}
if(dir){
_step++;
}else{
_step--;
}
if(_step>7){
_step=0;
}
if(_step<0){
_step=7;
}
}
void motor3(){
unsigned long currentMillis = millis();
switch(_step){
case 0:
digitalWrite(Pin9, LOW);
digitalWrite(Pin10, LOW);
digitalWrite(Pin11, LOW);
digitalWrite(Pin12, HIGH);
break;
case 1:
digitalWrite(Pin9, LOW);
digitalWrite(Pin10, LOW);
digitalWrite(Pin11, HIGH);
digitalWrite(Pin12, HIGH);
break;
case 2:
digitalWrite(Pin9, LOW);
digitalWrite(Pin10, LOW);
digitalWrite(Pin11, HIGH);
digitalWrite(Pin12, LOW);
break;
case 3:
digitalWrite(Pin9, LOW);
digitalWrite(Pin10, HIGH);
digitalWrite(Pin11, HIGH);
digitalWrite(Pin12, LOW);
break;
case 4:
digitalWrite(Pin9, LOW);
digitalWrite(Pin10, HIGH);
digitalWrite(Pin11, LOW);
digitalWrite(Pin12, LOW);
break;
case 5:
digitalWrite(Pin9, HIGH);
digitalWrite(Pin10, HIGH);
digitalWrite(Pin11, LOW);
digitalWrite(Pin12, LOW);
break;
case 6:
digitalWrite(Pin9, HIGH);
digitalWrite(Pin10, LOW);
digitalWrite(Pin11, LOW);
digitalWrite(Pin12, LOW);
break;
case 7:
digitalWrite(Pin9, HIGH);
digitalWrite(Pin10, LOW);
digitalWrite(Pin11, LOW);
digitalWrite(Pin12, HIGH);
break;
default:
digitalWrite(Pin9, LOW);
digitalWrite(Pin10, LOW);
digitalWrite(Pin11, LOW);
digitalWrite(Pin12, LOW);
break;
}
if (currentMillis - previousMillis > interval) {
previousMillis = currentMillis;
if (dir == false)
dir = true;
else
delay(99999999999999999999999999999999999999999999999);
}
if(dir){
_step++;
}else{
_step--;
}
if(_step>7){
_step=0;
}
if(_step<0){
_step=7;
}
}