A teaching model of a 5-floor passenger elevator controlled by an ATmega328P microcontroller (Arduino Uno). It implements collective control (the SCAN algorithm) with call memory: the controller remembers every requested floor and, while travelling, stops at each call along the way, then continues.
Buttons and indication. 5 hall-call buttons on the landings (outside) and 5 car buttons in the cabin (inside). To fit the ATmega328P pin count, each button group is read as a resistor «ladder» on one analog input (hall — A1, car — A0): a press produces a distinct voltage and analogRead() identifies the floor. Beside every button is an LED that stays lit until the call is served (hall — D0…D4, car — D9…D13).
Power stage. The cabin is raised and lowered by a powerful three-phase induction motor with an electromagnetic brake; direction is set by a reversing pair of power contactors (KM_UP=D5 / KM_DN=D6, reversal by swapping two phases). The spring-applied brake releases automatically while moving (a diode-OR of UP+DN energises the 24 V brake coil). A separate three-phase induction motor opens and closes the doors through reversing contactors (KM_OPEN=D7 / KM_CLOSE=D8). The contactors are solid-state (analog switches) driven directly by the MCU pins; the 3-phase lines are coloured by voltage.
How to use. Press hall and car buttons while the model runs: calls are memorised (the LED lights), the cabin starts moving, stops at the requested floors, opens and closes the doors, and serves pending calls along the way. The setup()/loop() sketch is shown and editable below the schematic.
This page is a utility for simulating 5-floor elevator on atmega328p — memorised calls and reversing ac drives online with specified initial values.
Make your changes if necessary








Comments