Automated Liquid Dispensary Machine



2013Southeastern Louisiana UniversityJason GreenleafMechanical Engineering Technology Dr. Mohammad SaadehDr. Cris KoutsougerasSenior Design I, Spring 2013[Automated Liquid Dispensary Machine] This project aims to identify electric fluid pumps for use in an automated fluid dispenser. This dispenser has an input control panel that allows the user to input preset fluid amounts, then a microcontroller will command three pumps to dispense the exact amount of each fluid to prepare the specified concoction. Various engineering concepts will be covered in this project, including: mechanical and electrical design, system control theory, electronics and actuators, and system identification techniques.Table of Contents TOC \o "1-3" \h \z \u Background PAGEREF _Toc355918462 \h 2Procedure Overview PAGEREF _Toc355918463 \h 2Methodology PAGEREF _Toc355918464 \h 2Testing - Assembly and Wiring PAGEREF _Toc355918465 \h 2Testing - Arduino Programming PAGEREF _Toc355918466 \h 3Testing - Microsoft Excel Documentation PAGEREF _Toc355918467 \h 3Problems Encountered and Accomplishments PAGEREF _Toc355918468 \h 4Deliverables PAGEREF _Toc355918469 \h 5Data PAGEREF _Toc355918470 \h 5BackgroundElectrically powered fluid pumps are used in many applications to circulate fluid, such as in fish tanks, and fluid cooled computers and engines. However, these pumps can’t be used to pump a controlled volume of fluid. This project proposes a method to identify these pumps so they can be used to output precise volume of fluid. The flow rate of a pump can change due to many factors, such as the height of the liquid, the cross sectional area of the inlet/outlet, the input voltage, etc. Many of these factors will be controlled through proper mechanical and electrical design so that only few factors are left to be identified. The size of the container plays a large role in the pressure that is entering the pump. A higher liquid level will produce more force and cause the pump to move more volume in the same amount of time as a container holding less liquid. Another will be calibrating every pump. If every pump is different, they must be calibrated periodically to make sure the proper volume is pumped. Procedure OverviewAn Arduino Uno Board will be used as a controller unit for this project. It has sufficient input/output that cover the needs of this project. Education of the programming language of this board and how it can be configured to accept inputs and deliver outputs is the first goal. A code that will program the machine to turn the pump on for a certain period of time must be created. With this, pumps can be tested to find out the fail percentage. When this is known, the following step will be learning ways to decrease this percentage as much as possible. Next, the machine control code must be developed to include preset outputs. This code will allow for some sort of input method that will allow the user to communicate with the machine. Lastly, a frame will be designed and fabricated in order to hold reservoirs, pumps, and controls. Methodology After a few weeks of planning and researching, the pump variables were decided. The pumps needed to be cost efficient, dependable, small, and compatible with an Arduino microprocessor. Pumps were then ordered and shipped. During the research and order timeframe, practice with the Arduino microprocessor begun. Simple programs were written to understand basic working principles of both C++ design software and hardware (pushbuttons, LEDs, potentiometers, DC motors, and transistors). Once the pumps were delivered, plans for testing were drawn.Testing - Assembly and WiringThe first step in testing was to build a frame out of 2x4 lumbers. The purpose of this frame was to ensure repeatability of pump height. Once the frame was assembled, pumps were mounted and hoses were purchased. Next, the hose was measured, cut, and attached to the pump to both inlet and outlet nipples. In order to run the pump, the pump had to be wired to a 12 volt power supply. Two graduated cylinder served as both a reservoir and an outlet container. Once the reservoir was filled (1250 mL) and the inlet hose was inserted, the pump could then be wired to the 12 volt power supply in order to test the pump. When power was connected the pump made a loud, squealing sound. It was later determined that these pumps were not self-siphoning pumps. In order to fix this problem, check valves were researched, priced, and ordered. 4241165-309880pump12 V00pump12 VWith the newly ordered check valves on both the inlet and outlet hose, a siphon was pulled on the system. At rest, the siphon was held reassuring that the check valves were the right solution. 12 volts were then sent to the pumps, which then returned a positive result, the pump works! In order to activate the pump with specific time variables, a transistor interrupting the ground wire was assembled on a breadboard. If the 12 volt wire was interrupted, the pump would not work. The reason of this was because the transistor had a draw that limited the power to the pump. The last step in wiring was to connect the base of the transistor to the Arduino Uno output pin 10. Testing - Arduino ProgrammingAfter the pump was correctly wired, a program that specified “time-on” and “time-off” values was written. Logical translation of the program follows: (1) Throw power to transistor’s base. (2) Delay “time-on” milliseconds. (3) Turn power off to transistor’s base. (4) Delay “time-off” milliseconds. Setting the “time-off” value to 20000 milliseconds ensured enough time to turn the power supply off in order to measure the milliliters of output. Now was time to get a hint of the rate of flow this pump could produce. An initial “time-on” value of 10000 milliseconds (10 seconds) was assigned and program was uploaded. The pump then turned on for 10 seconds and off with ample time to disconnect the circuit! The first output volume was recorded at 145 milliliters. Testing - Microsoft Excel Documentation3505200100330A Microsoft Excel spreadsheet was created to help organize data and predict “time-on” values. Firstly, the pumps “time-on” value was recorded followed by the output volume. With these two numbers, Flow rate (volume/unit time) was calculated as milliliters per millisecond. This ratio gave a good basis to select the next estimated “time-on” value by simply dividing the “goal volume” by the flow rate of the last test.For test 2, a target goal of 50 milliliters was set. The corresponding time found by the rate of flow was 3448.276 milliliters. After the Arduino program’s value of “time-on” was changed to the new estimate, the pump cycled producing 52 milliliters. This value is 2 milliliters off from the goal volume; however when recorded into excel, a newer, more accurate flow rate emerged. This process was repeated until the goal was reached three times consecutively. After this, the new goal volume was then incremented 50 milliliters. This progression occurred until 400 milliliters. Over 400 milliliters requires “time-on” values to exceed the 32,256, which is the maximum capacity of bits on the Arduino microprocessor. When all results were recorded, a simple scatter plot of flow rate per unit time brought about another challenge. Why is the flow rate not constant? Could the force be the motor’s start up time? No, because the flow rate would initially start lower than the average. Since all other factors are constant, this leaves only one option, pressure.2867025-916305002867025181800500Pressure is defined as P=density*g*height. Density of 60 degree Fahrenheit water is 983.2 while g=9.81m/s. Height was measured with a tape measure in cm then recorded. With this, pressure was also found and recorded. Every test started with an initial volume of 1250 milliliters. If the pumped volume was 250 milliliters then the final pressure would be equal to that of 1000 milliliters. The average pressures were calculated and then plotted per unit time on a scatter plot. The values were the exact inverse of the above graph! This proves that pressure is a factor in regards to the pump’s outputProblems Encountered and AccomplishmentsOver the course of the semester many things seemed to be challenging. Some challenges were simple and only took a few minutes to understand; however, some took days, even weeks to comprehend. It is hard to call these “problems” because they always promote gaining knowledge and awareness. The top two challenges that stood out were fluctuation in flow rate and siphoning. Without these temporary delays, critical knowledge about these pumps would have never been known, and could have produced error in the final product. 488632560325000In addition to the knowledge gain by factoring out the two dependent variables above, this semester project instituted a firm foundation in both Arduino and Solid Work software. Arduinos are extremely powerful tools that can be assembled to do just about any electrical project. However, the capabilities of the hardware seem minute to the problem solving skills that were acquired by just fixing erroneous coding and wiring. Solid Works is a three dimensional drawing program that almost every innovative engineer uses today. The fundamentals of this program were completely self-taught through a tedious process of failure, which in return produced accomplishment!Deliverables Data ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download