const int floor1Button = 2; // Pin for floor 1 button
const int floor2Button = 3; // Pin for floor 2 button
const int floor3Button = 4; // Pin for floor 3 button
const int led1 = 5; // Pin for floor 1 LED
const int led2 = 6; // Pin for floor 2 LED
const int led3 = 7; // Pin for floor 3 LED
const int relayPin = 8; // Pin for relay module
int currentFloor = 1; // Initial floor
void setup() {
pinMode(floor1Button, INPUT);
pinMode(floor2Button, INPUT);
pinMode(floor3Button, INPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(relayPin, OUTPUT);
}
void loop() {
// Check for button presses
if (digitalRead(floor1Button) == HIGH) {
gotoFloor(1);
} else if (digitalRead(floor2Button) == HIGH) {
gotoFloor(2);
} else if (digitalRead(floor3Button) == HIGH) {
gotoFloor(3);
}
}
void gotoFloor(int floor) {
// Turn off all LEDs
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
// Turn on LED for destination floor
switch (floor) {
case 1:
digitalWrite(led1, HIGH);
break;
case 2:
digitalWrite(led2, HIGH);
break;
case 3:
digitalWrite(led3, HIGH);
break;
}
// Control elevator motor using relay
if (currentFloor < floor) {
// Move elevator up
digitalWrite(relayPin, HIGH);
delay(1000); // Adjust delay for elevator travel time
digitalWrite(relayPin, LOW);
} else if (currentFloor > floor) {
// Move elevator down
digitalWrite(relayPin, LOW);
delay(1000); // Adjust delay for elevator travel time
digitalWrite(relayPin, HIGH);
}
currentFloor = floor;
}