Hi,
I'm trying to program an arduino to basically lift an object up with a motor and pulley (and some relays to control motor polarity), when the sensorTop variable gets activated, wait a few seconds, and lower the object down. when the sensorBottom variable gets activated, wait a few seconds, turn on some lights, move a second motor, and then raise the object up. again and again and again. i just can't seem to wrap my head around the logic. here's what i have so far. Any help is much appreciated!!!
//12 . 11 - pos neg
// 10 . 9 - neg pos
int sensorBottom, sensorTop;
boolean switchTop = false;
boolean switchBottom = false;
void setup() {
pinMode(12, OUTPUT); //1st motor
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
pinMode(8, OUTPUT); //2nd motor
pinMode(7,OUTPUT);
pinMode(6,OUTPUT);
pinMode(5, OUTPUT);
pinMode(4, OUTPUT);
Serial.begin(9600);
sensorBottom = analogRead(1);
sensorTop = analogRead(0);
}
void loop() {
//start by picking up??
//digitalWrite(12, HIGH);
//digitalWrite(11, HIGH);
//digitalWrite(10, LOW);
// digitalWrite(9, LOW);
//get stuck in infinite if loops//
//if top sensor is activated wait for 4 sec and then let down
if ((sensorTop > 500)&&(switchTop == false)){
digitalWrite(12, LOW);
digitalWrite(11, LOW);
digitalWrite(10, LOW);
digitalWrite(9, LOW);
delay(4000);
//flip switch
switchBottom=false;
switchTop=true;
}
if (switchTop == true) {
//lower
digitalWrite(12, LOW);
digitalWrite(11, LOW);
digitalWrite(10, HIGH);
digitalWrite(9, HIGH);
}
if ((sensorBottom > 500)&&(switchBottom == false)) {
delay(2000);
digitalWrite(12, LOW);
digitalWrite(11, LOW);
digitalWrite(10, LOW);
digitalWrite(9, LOW);
digitalWrite(7, HIGH);
delay(200);
digitalWrite(7, LOW);
digitalWrite(6, HIGH);
delay(200);
digitalWrite(6, LOW);
digitalWrite(5, HIGH);
delay(200);
digitalWrite(5, LOW);
digitalWrite(4, HIGH);
delay(200);
digitalWrite(4, LOW);
//2) turn on all lights and spin motor
delay(200);
digitalWrite(8, HIGH);
digitalWrite(7, HIGH);
digitalWrite(6, HIGH);
digitalWrite(5, HIGH);
digitalWrite(4, HIGH);
delay(3000);
//3)turn everything off and start over again
digitalWrite(8, LOW);
digitalWrite(7, LOW);
digitalWrite(6, LOW);
digitalWrite(5, LOW);
digitalWrite(4, LOW);
switchBottom=true;
switchTop=false;
}
if (switchBottom == true) {
//pick UP
digitalWrite(12, HIGH);
digitalWrite(11, HIGH);
digitalWrite(10, LOW);
digitalWrite(9, LOW);
}
}