A model boom-gate using an Arduino, servo-motor and a reed-switch. (Oh, yeah... and a little plastic truck!)


The project I am on at work at the moment is a large Physical Access Control System (PACS). We have automated some of the testing of physical devices with an I/O interface and API into the control system.

As a bit of fun I built this to hang of the controller rather than watching events and status updates at a computer console.

The code / state machine, very accurately, simulates the behaviour programmed into the PLCs of the actual boom-gates that are controlling access on several mine-sites and ports all across Queensland.


The implementation of this project is very simple. (Though the application is a little novel, I think.)


  • Open Request: I have a push-button switch with a pull-down on the breadboard to test (play) with the application, but in reality this digital input is connected to a (normally-open) relay output of the PACS controller board that takes its direction from the overall system after assessing things like: driver ID (RFID); vehicle ID (RFID); qulaifications; fitness for work; fatigue (external systems).
  • Reed Switch: This is to simulate the operation of an induction / safety loop as the vehicle passes over it. (This is a very noisy device and really should be debounced through code or hardware.)


  • Open State: The boom-gate is considered open the moment it starts to move upward and closed the moment it starts to move down. This is used in monitoring to know whether the gate is open without the "consent" of the control system, which will then raise an alert.
  • Safety: This prevents the boom-gate (locally in its PLC / control) from closing while there is a vehicle under it. This is exposed as an output so the system can determine if the vehicle granted access actually drove through the gate or not.
  • Servo Position: To open / close the boom arm.


I have blogged about the build and code design here