Control Unit Schematic:




The code executed on the Arduino was written, compiled, and uploaded from within the 1.5.4 release of the Arduino IDE.  The Arduino’s bootloader will then execute the program. 

The code, Auto_Shelf.ino, can be downloaded here Auto_Shelf.ino.

A plain text version of the code can be viewed here text.

A copy of the NewPing library will need to be copied into the Arduino IDE’s libraries folder.  A copy of v1.5 can be downloaded here NewPing.


  • Unzip and copy the NewPing folder into …\Arduino\libraries\ folder.
  • Open Auto_Shelf.ino into the Arduino IDE.
  • A USB cable must be connected to the Arduino before uploading.
  • Select the Upload button.  This will verify/compile the code and upload to Arduino.   


Parts List:

Qnty Part Description Mfg Part Num Supplier Price/Unit
 1  24″ Pull Down Shelf  Rev-A-Shelf  5PC-24CR Menards 183.99
* 1 12VDC 6″ Stroke Linear Actuator  MPC LA-6 (0726) Amazon


1 Arduino Uno R3 Smart Projects N/A Adafruit


1 315MHz 4 Button Keyfob RF Transmitter Adafruit N/A Adafruit $6.95
1 315MHz RF Receiver – Toggle Type Adafruit N/A Adafruit $4.95
3 Ultrasonic Distance Measuring Sensor Czb Electronic  HC-SR04  Czb (thru Ebay) Lot of 5 – $7.40
2 Diode, 1A, 400V NTE Electronics 1N4004 RadioShack $0.10
2 NPN Transistor Farnell TIP-31A RadioShack $1.05
1 Relay, 5V, 2A Omron Electronic G5V-2 RadioShack $2.95
4 Cable Organizer Clips Command 17301CLR WalMart Package of 4 $3.95
          Total: $309.39

* The actuator used for project was recycled from a power wheelchair from CPRF.  The actuator listed above would be a better fit as the power supply is 12VDC and the Arduino is not recommended to use a supply over 16VDC.  This one also seemed to have a better load capacity which would allow for more weight on shelf.