The problem
An elevator controller is a beautiful control problem in miniature: it must remember which floors were requested, decide direction, stop precisely at each floor, hold the doors, and never move with the doors open. Students usually meet such sequencing only as ladder-logic diagrams; building it physically makes every state transition visible. This project implements a 3-floor elevator model: a foam-board shaft tower, a cabin hung on a string over a pulley driven by a DC gear motor, floor-position sensing with IR sensors, call buttons on each floor plus cabin buttons, and a 7-segment display announcing the current floor. The Arduino firmware runs the full service logic — request queue, direction priority, floor stop, door-timing pause — so the demo behaves like the real machine it models.
How it works
- A passenger presses a landing call button or a cabin destination button; the request enters the firmware's floor queue.
- The Arduino decides direction from the queue using collective (direction-priority) logic and starts the DC gear motor via the driver.
- The cabin rises or lowers on the string hoist; the 7-segment display tracks the last passed floor and the direction LED lights.
- When the cabin reaches a requested floor, its tab triggers that floor's IR sensor and the firmware stops the motor.
- The cabin dwells for the configured door-timing interval, then the request is cleared and the next queued floor is served.
- Limit switches at shaft top and bottom provide hardware over-travel cutoffs regardless of firmware state.
Tech stack:
- Arduino Uno (ATmega328P)
- DC gear motor + L298N driver
- Pulley-and-string hoist, foam-board shaft tower
- 3 × IR position sensors, 2 × limit switches
- Floor call buttons + cabin buttons
- 7-segment floor display + direction LEDs
- Arduino IDE (C/C++ firmware)
| Parameter | Value |
|---|---|
| Floors served | 3 (design) |
| Hoist | DC gear motor, pulley and string, approximately 30–60 RPM (expected) |
| Position sensing | IR sensor per floor + top/bottom limit switches (design) |
| Display | Single 7-segment floor indicator + direction LEDs (design) |
| Dwell time | Configurable, approximately 3 s default (design target) |
| Cabin load | Design target up to approximately 200 g demo load (expected) |
| Power | 9–12 V for motor, 5 V logic (design) |
Project features
- [3-floor working lift] A cabin travels a foam-board shaft on a pulley-and-string hoist driven by a DC gear motor, stopping at three defined floors.
- [Floor call system] Call buttons on each landing plus cabin destination buttons feed a request queue, like a real elevator panel.
- [IR floor-position sensing] An IR sensor at each floor detects the cabin's arrival; the motor stops on sensor trigger for repeatable floor alignment.
- [Direction-priority logic] Firmware serves requests in the current travel direction first (collective control), the same strategy real elevators use.
- [7-segment floor display] The current floor is shown on a 7-segment display, with an arrow LED indicating travel direction.
- [Door-timing pause] The cabin dwells at each served floor for a configurable interval before continuing, modeling door open/close timing.
- [Over-travel protection] Limit switches at the top and bottom of the shaft cut the motor as a hardware safety independent of the firmware.
What is included
- 3-floor shaft tower with cabin and hoist mechanism
- DC gear motor with driver and pulley set
- IR floor sensors, limit switches, buttons, display
- Arduino with elevator-control firmware
- Wiring diagrams and assembly guide
- Project report PDF (control sequencing, sensing, collective logic, safety)
- PPT presentation for final review
- Viva Q&A preparation document
Limitations & prerequisites
- A 3-floor string-hoist model demonstrates control logic; it is not a scale replica of traction-elevator mechanics (counterweights, guide rails, safety gears).
- Floor alignment repeatability is a design target of a few millimetres; string stretch over time needs the re-tensioning step in the guide.
- The cabin load limit (~200 g) is a design target — it carries demo weights, not real payloads.
- Door motion is modeled as a timed dwell; there are no moving doors in this build (listed as future scope).
- Collective control is implemented for 3 floors; the logic would need extension for taller shafts.
Frequently Asked Questions
How does it know which floor it is at?
An IR sensor mounted at each floor detects a tab on the passing cabin; the firmware counts floors from a known home position and corrects on every sensor trigger.
What is collective (direction-priority) control?
The elevator keeps moving in its current direction serving queued requests, and only reverses when nothing remains ahead — the standard real-elevator strategy, implemented in the firmware.
What stops it crashing at the top or bottom?
Two layers: the firmware never drives past the end floors, and hardware limit switches cut motor power directly if it ever does.
Can I add a fourth floor?
The mechanics and firmware are written for three; the report's future-scope section describes exactly what changes for more floors.
Is this project suitable for a final-year project?
Yes — for Electronics, E&TC and Mechatronics programs. It is a complete control-systems build: sensing, sequencing, direction logic, timing and hardware safety. Suitable for B.E./B.Tech final-year projects in Electronics, E&TC and Mechatronics.
Components & software requirements
- Arduino Uno (ATmega328P)
- DC gear motor + L298N driver
- Pulley-and-string hoist, foam-board shaft tower
- 3 × IR position sensors, 2 × limit switches
- Floor call buttons + cabin buttons
- 7-segment floor display + direction LEDs
- Arduino IDE (C/C++ firmware)
Delivery information
Built-to-order project. Delivery timeline is shared after order confirmation based on current queue.
Support terms
Complete documentation, setup guide, and viva preparation included. Support for setup and explanation provided.