Drink Vending Machine
|List of All Documented Equipment|
|Hive13 Asset Tag: HV0001|
|Make/Model: Dixie Narco 501E (google)|
|Does it work?: Yes|
|Certification Needed?: No|
|Floorplan: General Area 1|
The Vending machine takes cash as well as swipes from Hive13 RFID Member cards. Credits can be loaded onto cards via https://intweb.at.hive13.org.
- Dr. Pepper
- Mountain Dew
- Diet Coke
- Diet Mountain Dew
- Coke Zero
- Random Slot (Contains assortment below. Button triggers randomized selection from all slots. Can access this slot by holding down buttons 1 & 3.)
- Currently Dispensing
- Vanilla Coke
- Cherry Coke
- Cherry Vanilla Pepsi
- Orange Crush
- Mug Root Beer
- Mountain Dew Pitch Black
- Mountain Dew Code Red
- Mountain Dew Voltage
- Currently Dispensing
- Mars 2000 series bill acceptor
- Coinco 9370-S coin acceptor/control board
- Coinco 9360-S coin acceptor/control board
- Capacity: 5 Single Column Slots (45 Cans each) and 3 Double Column Slots (87 Cans Each)
- Label Dimensions: 1.375"x3.5" (3.125" visible). Punch hole in upper left corner for light.
The Coinco box is what controls the actual dispensing for the most part. What happens is when money is inserted in either coin or bill form a signal is sent to the main controller board of the Coinco box (control board from here on). The control board has various power distribution pieces on it, but more importantly it has a microcontroller on it. The microcontroller is what tallies up the money inserted and sends the vend signal when the amount is high enough. It also dispenses coins if exact change is not inserted.
When the micro sends out the vend signal it triggers a relay which provides power to all of the switches (buttons) on the front of the machine and the user then presses a button, sending power to a motor inside the cold part of the machine, which then rotates a certain amount to dispense a drink.
Arduino Control System
The code running on the Arduino is on our GitHub.
How it talks to the server
- Press buttons 1 & 2 to display the current temperature. Each light from the top down is a range of two degrees, with the top one being thirty-two degrees. Anything below or above the range is indicated by a green light on that end of the range. Blue is closer to the base temperature, and red is closer to the next button's base temperature.
- Press buttons 2 & 3 or 2 & 4 to turn on and off a Larsen scanner. This code is basically the idle loop of the MCU.
- Press buttons 5 & 6 to dispense a random diet soda.
- Press buttons 7 & 8 to dispense a random regular soda.
- Hunt through the code to find more! Don't abuse them.
- Jon Neal
- Add yourself here if you want to join this project
- Have the Arduino control the temperature.
- There's a temperature sensor already installed.
- Need to have strong protections against fluttering the relay that'll drive the compressor.
- Need a relay to drive the compressor.
- Slot 3's timing cam needs some adjustment, as it jams or erroneously dispenses on occasion.
- Put an LCD display or something on it to display temps and credits remaining or whatever.
- Mount the Arduino Mega on an actual mount and re-do the wiring so it's comprehensible.
- Maybe mount the relay board better, too. It's shorted out before, and it's switching 120 V.A.C.
Sold Out wiring
It's a piece of Cat 5 running from the sold-out switches to the Arduino, with another loose wire serving as a common. Note that the wire is hooked up to the NC contact, and the switch is pressed when there is no soda in the slot. This means a defect will cause it to not vend, so it won't eat your money.
|Soda Slot||Wire Color||Arduino Pin||ATmega Pin|