Difference between revisions of "Team:UMaryland/Design"
Line 125: | Line 125: | ||
background-color:red; | background-color:red; | ||
danger:wow; | danger:wow; | ||
− | height: | + | height:150px; |
top:-220px; | top:-220px; | ||
text-align:center; | text-align:center; | ||
Line 273: | Line 273: | ||
<font color="#000000">#include</font> <font color="#434f54"><</font><b><font color="#d35400">LiquidCrystal</font></b><font color="#434f54">.</font><font color="#000000">h</font><font color="#434f54">></font> | <font color="#000000">#include</font> <font color="#434f54"><</font><b><font color="#d35400">LiquidCrystal</font></b><font color="#434f54">.</font><font color="#000000">h</font><font color="#434f54">></font> | ||
− | <font color="# | + | <font color="#7e7e7e">/*The PID functions by adjusting a certain output in order to </font><font color="#7e7e7e"> * minimize the error between two values, which are the setpoint </font><font color="#7e7e7e"> * and the input.</font><font color="#7e7e7e"> * The PID function itself creates a PID controller and takes </font><font color="#7e7e7e"> * five parameters:</font><font color="#7e7e7e"> * Input: The value that needs to be controlled</font><font color="#7e7e7e"> * Output: The value that the PID will adjust</font><font color="#7e7e7e"> * Setpoint: The value that the input will be maintained at</font><font color="#7e7e7e"> * Kp,Ki,KD: Parameters that will affect how the output is adjusted</font><font color="#7e7e7e"> * Direct: Defines which direction the output will proceed given an error</font><font color="#7e7e7e"> */</font> |
− | <font color="# | + | |
− | <font color="# | + | |
− | <font color="# | + | |
− | <font color="# | + | |
− | <font color="# | + | |
− | <font color="# | + | |
− | <font color="# | + | |
− | <font color="# | + | |
− | <font color="# | + | |
− | + | ||
<font color="#434f54">// Define PID varaibles</font> | <font color="#434f54">// Define PID varaibles</font> | ||
Line 373: | Line 363: | ||
<font color="#000000">{</font> | <font color="#000000">{</font> | ||
<font color="#5e6d03">if</font> <font color="#000000">(</font><font color="#000000">stepnow</font> <font color="#434f54"><</font> <font color="#000000">cyclenum</font><font color="#000000">)</font> <font color="#000000">{</font> | <font color="#5e6d03">if</font> <font color="#000000">(</font><font color="#000000">stepnow</font> <font color="#434f54"><</font> <font color="#000000">cyclenum</font><font color="#000000">)</font> <font color="#000000">{</font> | ||
− | <font color="# | + | <font color="#7e7e7e">/**The following code is only implemented once as the first cycle of the PCR</font><font color="#7e7e7e"> * This allows for the user to set conditions which may be different from the subsequent </font><font color="#7e7e7e"> * cycles. The code, however, works in much the same way as the other cycles</font><font color="#7e7e7e"> * at the most basic level. It divides each cycle into subcycles: activation, pcr and extension</font><font color="#7e7e7e"> * and enters each step based on stepnow(which denotes how many subcyles the program has entered) divisiblity by 3. </font><font color="#7e7e7e"> * The remainder for activation will always be 1, </font><font color="#7e7e7e"> * the remainder for pcr will be 2 and the remainder for extension will be 3</font><font color="#7e7e7e"> */</font> |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
<font color="#434f54">//Begins activation of the PCR by checking that this is the first cycle and that the current subcycle is activation </font> | <font color="#434f54">//Begins activation of the PCR by checking that this is the first cycle and that the current subcycle is activation </font> | ||
<font color="#5e6d03">if</font> <font color="#000000">(</font><font color="#000000">(</font><font color="#000000">(</font><font color="#000000">stepnow</font> <font color="#434f54">%</font> <font color="#000000">3</font><font color="#000000">)</font> <font color="#434f54">==</font> <font color="#000000">1</font><font color="#000000">)</font> <font color="#434f54">&&</font> <font color="#000000">(</font><font color="#000000">cycle</font> <font color="#434f54">==</font> <font color="#000000">2</font><font color="#000000">)</font><font color="#000000">)</font> <font color="#000000">{</font> | <font color="#5e6d03">if</font> <font color="#000000">(</font><font color="#000000">(</font><font color="#000000">(</font><font color="#000000">stepnow</font> <font color="#434f54">%</font> <font color="#000000">3</font><font color="#000000">)</font> <font color="#434f54">==</font> <font color="#000000">1</font><font color="#000000">)</font> <font color="#434f54">&&</font> <font color="#000000">(</font><font color="#000000">cycle</font> <font color="#434f54">==</font> <font color="#000000">2</font><font color="#000000">)</font><font color="#000000">)</font> <font color="#000000">{</font> | ||
Line 394: | Line 377: | ||
<font color="#000000">laststep</font><font color="#434f54">++</font><font color="#000000">;</font> | <font color="#000000">laststep</font><font color="#434f54">++</font><font color="#000000">;</font> | ||
<font color="#000000">}</font> | <font color="#000000">}</font> | ||
− | <font color="#434f54">//If the pcr has maintained the setpoint for the desired amount | + | <font color="#434f54">//If the pcr has maintained the setpoint for the desired amount of time, it will enter this loop and begin cooling</font> |
− | + | ||
<font color="#5e6d03">if</font> <font color="#000000">(</font><font color="#000000">(</font><font color="#d35400">millis</font><font color="#000000">(</font><font color="#000000">)</font> <font color="#434f54">></font> <font color="#000000">(</font><font color="#000000">t1Melt</font> <font color="#434f54">+</font> <font color="#000000">cycleStart</font><font color="#000000">)</font><font color="#000000">)</font> <font color="#434f54">&&</font> <font color="#000000">(</font><font color="#000000">laststep</font> <font color="#434f54">==</font> <font color="#000000">stepnow</font><font color="#000000">)</font><font color="#000000">)</font> <font color="#000000">{</font> | <font color="#5e6d03">if</font> <font color="#000000">(</font><font color="#000000">(</font><font color="#d35400">millis</font><font color="#000000">(</font><font color="#000000">)</font> <font color="#434f54">></font> <font color="#000000">(</font><font color="#000000">t1Melt</font> <font color="#434f54">+</font> <font color="#000000">cycleStart</font><font color="#000000">)</font><font color="#000000">)</font> <font color="#434f54">&&</font> <font color="#000000">(</font><font color="#000000">laststep</font> <font color="#434f54">==</font> <font color="#000000">stepnow</font><font color="#000000">)</font><font color="#000000">)</font> <font color="#000000">{</font> | ||
<font color="#000000">stepnow</font><font color="#434f54">++</font><font color="#000000">;</font> | <font color="#000000">stepnow</font><font color="#434f54">++</font><font color="#000000">;</font> | ||
Line 414: | Line 396: | ||
<font color="#000000">laststep</font><font color="#434f54">++</font><font color="#000000">;</font> | <font color="#000000">laststep</font><font color="#434f54">++</font><font color="#000000">;</font> | ||
<font color="#000000">}</font> | <font color="#000000">}</font> | ||
− | <font color="#434f54">//checks if the machine has maintained the temperature for | + | <font color="#434f54">//checks if the machine has maintained the temperature for the desired amount of time, and begins the next step</font> |
− | + | ||
<font color="#5e6d03">if</font> <font color="#000000">(</font><font color="#000000">(</font><font color="#d35400">millis</font><font color="#000000">(</font><font color="#000000">)</font> <font color="#434f54">></font> <font color="#000000">(</font><font color="#000000">t1PCR</font> <font color="#434f54">+</font> <font color="#000000">cycleStart</font><font color="#000000">)</font><font color="#000000">)</font> <font color="#434f54">&&</font> <font color="#000000">(</font><font color="#000000">laststep</font> <font color="#434f54">==</font> <font color="#000000">stepnow</font><font color="#000000">)</font> <font color="#434f54">&&</font> <font color="#000000">(</font><font color="#000000">cycle</font> <font color="#434f54">==</font> <font color="#000000">2</font><font color="#000000">)</font><font color="#000000">)</font> <font color="#000000">{</font> | <font color="#5e6d03">if</font> <font color="#000000">(</font><font color="#000000">(</font><font color="#d35400">millis</font><font color="#000000">(</font><font color="#000000">)</font> <font color="#434f54">></font> <font color="#000000">(</font><font color="#000000">t1PCR</font> <font color="#434f54">+</font> <font color="#000000">cycleStart</font><font color="#000000">)</font><font color="#000000">)</font> <font color="#434f54">&&</font> <font color="#000000">(</font><font color="#000000">laststep</font> <font color="#434f54">==</font> <font color="#000000">stepnow</font><font color="#000000">)</font> <font color="#434f54">&&</font> <font color="#000000">(</font><font color="#000000">cycle</font> <font color="#434f54">==</font> <font color="#000000">2</font><font color="#000000">)</font><font color="#000000">)</font> <font color="#000000">{</font> | ||
<font color="#000000">stepnow</font><font color="#434f54">++</font><font color="#000000">;</font> | <font color="#000000">stepnow</font><font color="#434f54">++</font><font color="#000000">;</font> | ||
Line 433: | Line 414: | ||
<font color="#000000">laststep</font><font color="#434f54">++</font><font color="#000000">;</font> | <font color="#000000">laststep</font><font color="#434f54">++</font><font color="#000000">;</font> | ||
<font color="#000000">}</font> | <font color="#000000">}</font> | ||
− | <font color="#434f54">//checks if the machine has maintained the temperature | + | <font color="#434f54">//checks if the machine has maintained the temperature for the desired amount of time, and begins the next step</font> |
− | + | ||
<font color="#5e6d03">if</font> <font color="#000000">(</font><font color="#000000">(</font><font color="#d35400">millis</font><font color="#000000">(</font><font color="#000000">)</font> <font color="#434f54">></font> <font color="#000000">(</font><font color="#000000">textension1</font> <font color="#434f54">+</font> <font color="#000000">cycleStart</font><font color="#000000">)</font><font color="#000000">)</font> <font color="#434f54">&&</font> <font color="#000000">(</font><font color="#000000">laststep</font> <font color="#434f54">==</font> <font color="#000000">stepnow</font><font color="#000000">)</font><font color="#000000">)</font> <font color="#000000">{</font> | <font color="#5e6d03">if</font> <font color="#000000">(</font><font color="#000000">(</font><font color="#d35400">millis</font><font color="#000000">(</font><font color="#000000">)</font> <font color="#434f54">></font> <font color="#000000">(</font><font color="#000000">textension1</font> <font color="#434f54">+</font> <font color="#000000">cycleStart</font><font color="#000000">)</font><font color="#000000">)</font> <font color="#434f54">&&</font> <font color="#000000">(</font><font color="#000000">laststep</font> <font color="#434f54">==</font> <font color="#000000">stepnow</font><font color="#000000">)</font><font color="#000000">)</font> <font color="#000000">{</font> | ||
<font color="#000000">pcr</font> <font color="#434f54">=</font> <font color="#00979c">"heating to melt "</font><font color="#000000">;</font> | <font color="#000000">pcr</font> <font color="#434f54">=</font> <font color="#00979c">"heating to melt "</font><font color="#000000">;</font> | ||
Line 443: | Line 423: | ||
<font color="#000000">}</font> | <font color="#000000">}</font> | ||
− | + | <font color="#7e7e7e">/**</font><font color="#7e7e7e"> * Begins the intermediate steps which work in an identical manner to the startup cycle </font><font color="#7e7e7e"> * and may differ only in the alloted temperatures and times for each subcycle</font><font color="#7e7e7e"> */</font> | |
− | + | ||
− | + | ||
− | + | ||
<font color="#5e6d03">if</font> <font color="#000000">(</font><font color="#000000">(</font><font color="#000000">(</font><font color="#000000">stepnow</font> <font color="#434f54">%</font> <font color="#000000">3</font><font color="#000000">)</font> <font color="#434f54">==</font> <font color="#000000">1</font><font color="#000000">)</font> <font color="#434f54">&&</font> <font color="#000000">(</font><font color="#000000">cycle</font> <font color="#434f54">!</font><font color="#434f54">=</font> <font color="#000000">2</font><font color="#000000">)</font><font color="#000000">)</font> <font color="#000000">{</font> | <font color="#5e6d03">if</font> <font color="#000000">(</font><font color="#000000">(</font><font color="#000000">(</font><font color="#000000">stepnow</font> <font color="#434f54">%</font> <font color="#000000">3</font><font color="#000000">)</font> <font color="#434f54">==</font> <font color="#000000">1</font><font color="#000000">)</font> <font color="#434f54">&&</font> <font color="#000000">(</font><font color="#000000">cycle</font> <font color="#434f54">!</font><font color="#434f54">=</font> <font color="#000000">2</font><font color="#000000">)</font><font color="#000000">)</font> <font color="#000000">{</font> | ||
<font color="#000000">Setpoint</font> <font color="#434f54">=</font> <font color="#000000">meltT</font><font color="#000000">;</font> | <font color="#000000">Setpoint</font> <font color="#434f54">=</font> <font color="#000000">meltT</font><font color="#000000">;</font> | ||
Line 491: | Line 468: | ||
<font color="#000000">}</font> | <font color="#000000">}</font> | ||
<font color="#000000">}</font> | <font color="#000000">}</font> | ||
− | + | <font color="#7e7e7e">/*</font><font color="#7e7e7e"> * Begins the last step, which again works in a similar fashion to the other steps, but may differ in the </font><font color="#7e7e7e"> * final extension temperature</font><font color="#7e7e7e"> */</font> | |
− | <font color="# | + | |
− | + | ||
− | + | ||
<font color="#000000">}</font> <font color="#5e6d03">else</font> <font color="#5e6d03">if</font> <font color="#000000">(</font><font color="#000000">(</font><font color="#000000">stepnow</font> <font color="#434f54">></font><font color="#434f54">=</font> <font color="#000000">cyclenum</font> <font color="#434f54">&&</font> <font color="#000000">stepnow</font> <font color="#434f54"><</font><font color="#434f54">=</font> <font color="#000000">cyclenum</font> <font color="#434f54">+</font> <font color="#000000">2</font> <font color="#000000">)</font><font color="#000000">)</font> <font color="#000000">{</font> | <font color="#000000">}</font> <font color="#5e6d03">else</font> <font color="#5e6d03">if</font> <font color="#000000">(</font><font color="#000000">(</font><font color="#000000">stepnow</font> <font color="#434f54">></font><font color="#434f54">=</font> <font color="#000000">cyclenum</font> <font color="#434f54">&&</font> <font color="#000000">stepnow</font> <font color="#434f54"><</font><font color="#434f54">=</font> <font color="#000000">cyclenum</font> <font color="#434f54">+</font> <font color="#000000">2</font> <font color="#000000">)</font><font color="#000000">)</font> <font color="#000000">{</font> | ||
<font color="#5e6d03">if</font> <font color="#000000">(</font><font color="#000000">(</font><font color="#000000">(</font><font color="#000000">stepnow</font> <font color="#434f54">%</font> <font color="#000000">3</font><font color="#000000">)</font> <font color="#434f54">==</font> <font color="#000000">1</font><font color="#000000">)</font><font color="#000000">)</font> <font color="#000000">{</font> | <font color="#5e6d03">if</font> <font color="#000000">(</font><font color="#000000">(</font><font color="#000000">(</font><font color="#000000">stepnow</font> <font color="#434f54">%</font> <font color="#000000">3</font><font color="#000000">)</font> <font color="#434f54">==</font> <font color="#000000">1</font><font color="#000000">)</font><font color="#000000">)</font> <font color="#000000">{</font> | ||
Line 541: | Line 515: | ||
<font color="#000000">}</font> | <font color="#000000">}</font> | ||
<font color="#000000">}</font> | <font color="#000000">}</font> | ||
− | + | <font color="#7e7e7e">/**</font><font color="#7e7e7e"> * Once the last step has been completed, determined by stepnow being greater than cyclenum+2,</font><font color="#7e7e7e"> * the code will tell the pcr to hold at 4 C. It will continue looping at this step indefinitely</font><font color="#7e7e7e"> * because the conditions will no longer satisfy any of the other if statement</font><font color="#7e7e7e"> */</font> | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
<font color="#000000">}</font> <font color="#5e6d03">else</font> <font color="#000000">{</font> | <font color="#000000">}</font> <font color="#5e6d03">else</font> <font color="#000000">{</font> | ||
<font color="#00979c">int</font> <font color="#000000">strt</font> <font color="#434f54">=</font> <font color="#000000">1</font><font color="#000000">;</font> | <font color="#00979c">int</font> <font color="#000000">strt</font> <font color="#434f54">=</font> <font color="#000000">1</font><font color="#000000">;</font> | ||
Line 561: | Line 530: | ||
<font color="#000000">}</font> | <font color="#000000">}</font> | ||
− | <font color="#434f54">//Once the pcr has reached 37 C, the pcr will | + | <font color="#434f54">//Once the pcr has reached 37 C, the pcr will print out that the pcr has shutt off</font> |
− | + | ||
<font color="#5e6d03">if</font> <font color="#000000">(</font><font color="#000000">(</font><font color="#000000">Input</font> <font color="#434f54">-</font> <font color="#000000">38</font> <font color="#434f54">+</font> <font color="#000000">1</font><font color="#000000">)</font> <font color="#434f54"><</font> <font color="#000000">0</font><font color="#000000">)</font> <font color="#000000">{</font> | <font color="#5e6d03">if</font> <font color="#000000">(</font><font color="#000000">(</font><font color="#000000">Input</font> <font color="#434f54">-</font> <font color="#000000">38</font> <font color="#434f54">+</font> <font color="#000000">1</font><font color="#000000">)</font> <font color="#434f54"><</font> <font color="#000000">0</font><font color="#000000">)</font> <font color="#000000">{</font> | ||
<font color="#d35400">digitalWrite</font><font color="#000000">(</font><font color="#000000">signalr1</font><font color="#434f54">,</font> <font color="#00979c">HIGH</font><font color="#000000">)</font><font color="#000000">;</font> | <font color="#d35400">digitalWrite</font><font color="#000000">(</font><font color="#000000">signalr1</font><font color="#434f54">,</font> <font color="#00979c">HIGH</font><font color="#000000">)</font><font color="#000000">;</font> | ||
Line 585: | Line 553: | ||
<font color="#d35400">digitalWrite</font><font color="#000000">(</font><font color="#000000">signalr2</font><font color="#434f54">,</font> <font color="#00979c">LOW</font><font color="#000000">)</font><font color="#000000">;</font> | <font color="#d35400">digitalWrite</font><font color="#000000">(</font><font color="#000000">signalr2</font><font color="#434f54">,</font> <font color="#00979c">LOW</font><font color="#000000">)</font><font color="#000000">;</font> | ||
<b><font color="#d35400">Serial</font></b><font color="#434f54">.</font><font color="#d35400">println</font><font color="#000000">(</font><font color="#00979c">"COOLING"</font><font color="#000000">)</font><font color="#000000">;</font> | <b><font color="#d35400">Serial</font></b><font color="#434f54">.</font><font color="#d35400">println</font><font color="#000000">(</font><font color="#00979c">"COOLING"</font><font color="#000000">)</font><font color="#000000">;</font> | ||
− | <font color="#434f54">// if the pcr machine's temperature reaches 97, cooling will | + | <font color="#434f54">// if the pcr machine's temperature reaches 97, cooling will automatically be initiated and a death message will be displayed</font> |
− | + | ||
<font color="#000000">}</font><font color="#5e6d03">else</font> <font color="#5e6d03">if</font> <font color="#000000">(</font><font color="#000000">(</font><font color="#000000">Input</font> <font color="#434f54">-</font> <font color="#000000">deathT</font> <font color="#434f54">+</font><font color="#000000">1</font><font color="#000000">)</font> <font color="#434f54">></font> <font color="#000000">0</font><font color="#000000">)</font><font color="#000000">{</font> | <font color="#000000">}</font><font color="#5e6d03">else</font> <font color="#5e6d03">if</font> <font color="#000000">(</font><font color="#000000">(</font><font color="#000000">Input</font> <font color="#434f54">-</font> <font color="#000000">deathT</font> <font color="#434f54">+</font><font color="#000000">1</font><font color="#000000">)</font> <font color="#434f54">></font> <font color="#000000">0</font><font color="#000000">)</font><font color="#000000">{</font> | ||
<font color="#d35400">digitalWrite</font><font color="#000000">(</font><font color="#000000">signalr1</font><font color="#434f54">,</font> <font color="#00979c">HIGH</font><font color="#000000">)</font><font color="#000000">;</font> | <font color="#d35400">digitalWrite</font><font color="#000000">(</font><font color="#000000">signalr1</font><font color="#434f54">,</font> <font color="#00979c">HIGH</font><font color="#000000">)</font><font color="#000000">;</font> | ||
Line 592: | Line 559: | ||
<b><font color="#d35400">Serial</font></b><font color="#434f54">.</font><font color="#d35400">println</font><font color="#000000">(</font><font color="#00979c">"DEATH"</font><font color="#000000">)</font><font color="#000000">;</font> | <b><font color="#d35400">Serial</font></b><font color="#434f54">.</font><font color="#d35400">println</font><font color="#000000">(</font><font color="#00979c">"DEATH"</font><font color="#000000">)</font><font color="#000000">;</font> | ||
− | <font color="# | + | <font color="#7e7e7e">/* these two statements work on the maintaining the temperature, by controlling heating and cooling when there is overshoot or undershoot </font><font color="#7e7e7e"> in the temperature*/</font> |
− | + | ||
− | <font color="# | + | |
<font color="#000000">}</font> <font color="#5e6d03">else</font> <font color="#5e6d03">if</font> <font color="#000000">(</font><font color="#000000">Output</font> <font color="#434f54">></font> <font color="#000000">now</font> <font color="#434f54">-</font> <font color="#000000">windowStartTime</font> <font color="#434f54">-</font> <font color="#000000">1</font><font color="#000000">)</font> <font color="#000000">{</font> | <font color="#000000">}</font> <font color="#5e6d03">else</font> <font color="#5e6d03">if</font> <font color="#000000">(</font><font color="#000000">Output</font> <font color="#434f54">></font> <font color="#000000">now</font> <font color="#434f54">-</font> <font color="#000000">windowStartTime</font> <font color="#434f54">-</font> <font color="#000000">1</font><font color="#000000">)</font> <font color="#000000">{</font> | ||
<font color="#d35400">digitalWrite</font><font color="#000000">(</font><font color="#000000">signalr1</font><font color="#434f54">,</font> <font color="#00979c">HIGH</font><font color="#000000">)</font><font color="#000000">;</font> | <font color="#d35400">digitalWrite</font><font color="#000000">(</font><font color="#000000">signalr1</font><font color="#434f54">,</font> <font color="#00979c">HIGH</font><font color="#000000">)</font><font color="#000000">;</font> |
Revision as of 03:02, 19 September 2015