// Pin Definitions
const int lt_pins[] = {2, 3, 4};
const int lt_modes[] = {12, 11, 10};
const int lt_switches[] = {6, 7, 8};
const int up_pin = 5;
const int down_pin = 13;
// Variables
int lt_position = 1;
int lt_destination = 1;
bool stop = true;
void setup() {
// Set pin modes dynamically
for (int i = 0; i < 3; i++) {
pinMode(lt_pins[i], INPUT);
pinMode(lt_switches[i], INPUT);
}
pinMode(up_pin, OUTPUT);
pinMode(down_pin, OUTPUT);
// Serial.begin(9600);
}
void loop() {
for (int i = 0; i < 3; i++) {
if (digitalRead(lt_pins[i])) {
lt_destination = i + 1;
}
}
// Update `lt_position` based on switch states
for (int i = 0; i < 3; i++) {
if (digitalRead(lt_switches[i])) {
lt_position = i + 1;
}
}
// Control lift movement
if (lt_position > lt_destination) {
digitalWrite(down_pin, HIGH);
digitalWrite(up_pin, LOW);
} else if (lt_position < lt_destination) {
digitalWrite(down_pin, LOW);
digitalWrite(up_pin, HIGH);
} else { // Stop when positions match or `stop` is true
digitalWrite(down_pin, LOW);
digitalWrite(up_pin, LOW);
}
}