Automated Tea Maker made by Armaan Mehta and Jason Lukose, more information at https://os.mbed.com/users/4180Team/notebook/automated-tea-pot/
Dependencies: 4DGL-uLCD-SE PinDetect Servo mbed
Fork of 4180FinalProject_Fall2017_ArmaanMehta_JasonLukose by
main.cpp@12:18986b2f67d5, 2017-12-13 (annotated)
- Committer:
- amehta64
- Date:
- Wed Dec 13 08:45:03 2017 +0000
- Revision:
- 12:18986b2f67d5
- Parent:
- 11:91fe365dbcf4
finalized all the details, ready for presenting
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
4180_1 | 8:31e63caf37e2 | 1 | // uLCD-144-G2 demo program for uLCD-4GL LCD driver library |
4180_1 | 0:cfcf73272647 | 2 | // |
4180_1 | 0:cfcf73272647 | 3 | #include "mbed.h" |
4180_1 | 2:75727e89a717 | 4 | #include "uLCD_4DGL.h" |
amehta64 | 10:2191110c7e49 | 5 | #include "PinDetect.h" |
amehta64 | 10:2191110c7e49 | 6 | #include "Servo.h" |
4180_1 | 0:cfcf73272647 | 7 | |
amehta64 | 10:2191110c7e49 | 8 | |
amehta64 | 10:2191110c7e49 | 9 | uLCD_4DGL uLCD(p28,p27,p29); // serial tx, serial rx, reset pin; |
amehta64 | 10:2191110c7e49 | 10 | |
amehta64 | 10:2191110c7e49 | 11 | int mode = 0; |
amehta64 | 10:2191110c7e49 | 12 | int enter = 0; |
amehta64 | 10:2191110c7e49 | 13 | int menu = 0; |
amehta64 | 10:2191110c7e49 | 14 | int temp = 70; |
amehta64 | 10:2191110c7e49 | 15 | |
amehta64 | 10:2191110c7e49 | 16 | Timer t; |
amehta64 | 10:2191110c7e49 | 17 | |
amehta64 | 10:2191110c7e49 | 18 | //DigitalIn prog(p5); |
amehta64 | 10:2191110c7e49 | 19 | //DigitalIn onoff(p6); |
amehta64 | 10:2191110c7e49 | 20 | //DigitalIn up(p7); |
amehta64 | 10:2191110c7e49 | 21 | //DigitalIn down(p8); |
amehta64 | 10:2191110c7e49 | 22 | |
amehta64 | 10:2191110c7e49 | 23 | DigitalOut progo(p9); |
amehta64 | 10:2191110c7e49 | 24 | DigitalOut myled1(LED1); |
amehta64 | 10:2191110c7e49 | 25 | DigitalOut onoffo(p10); |
amehta64 | 10:2191110c7e49 | 26 | DigitalOut myled2(LED2); |
amehta64 | 10:2191110c7e49 | 27 | DigitalOut upo(p11); |
amehta64 | 10:2191110c7e49 | 28 | DigitalOut myled3(LED3); |
amehta64 | 10:2191110c7e49 | 29 | DigitalOut downo(p12); |
amehta64 | 10:2191110c7e49 | 30 | DigitalOut myled4(LED4); |
amehta64 | 10:2191110c7e49 | 31 | |
amehta64 | 10:2191110c7e49 | 32 | AnalogIn ain(p20); |
amehta64 | 10:2191110c7e49 | 33 | |
amehta64 | 10:2191110c7e49 | 34 | InterruptIn button1(p5); |
amehta64 | 10:2191110c7e49 | 35 | InterruptIn button2(p6); |
amehta64 | 10:2191110c7e49 | 36 | InterruptIn button3(p7); |
amehta64 | 10:2191110c7e49 | 37 | InterruptIn button4(p8); |
amehta64 | 10:2191110c7e49 | 38 | |
amehta64 | 10:2191110c7e49 | 39 | Servo myservo(p22); |
amehta64 | 10:2191110c7e49 | 40 | |
amehta64 | 10:2191110c7e49 | 41 | //PinDetect button1(p5); |
amehta64 | 10:2191110c7e49 | 42 | //PinDetect button2(p6); |
amehta64 | 10:2191110c7e49 | 43 | //PinDetect button3(p7); |
amehta64 | 10:2191110c7e49 | 44 | //PinDetect button4(p8); |
amehta64 | 10:2191110c7e49 | 45 | |
amehta64 | 10:2191110c7e49 | 46 | void bisr1() |
amehta64 | 10:2191110c7e49 | 47 | { |
amehta64 | 10:2191110c7e49 | 48 | myled1 = 1; |
amehta64 | 10:2191110c7e49 | 49 | if (mode < 1) { |
amehta64 | 10:2191110c7e49 | 50 | menu = menu++; |
amehta64 | 10:2191110c7e49 | 51 | } else if (mode < 2) { |
amehta64 | 10:2191110c7e49 | 52 | menu = menu++; |
amehta64 | 12:18986b2f67d5 | 53 | if (temp > 70) |
amehta64 | 12:18986b2f67d5 | 54 | temp = temp -5; |
amehta64 | 10:2191110c7e49 | 55 | else |
amehta64 | 12:18986b2f67d5 | 56 | temp = 70; |
amehta64 | 10:2191110c7e49 | 57 | } else if (mode < 3) { |
amehta64 | 10:2191110c7e49 | 58 | menu = menu++; |
amehta64 | 10:2191110c7e49 | 59 | } else { |
amehta64 | 10:2191110c7e49 | 60 | } |
amehta64 | 10:2191110c7e49 | 61 | } |
amehta64 | 10:2191110c7e49 | 62 | void bisr2() |
amehta64 | 10:2191110c7e49 | 63 | { |
amehta64 | 10:2191110c7e49 | 64 | myled2 = 1; |
amehta64 | 10:2191110c7e49 | 65 | if (mode < 1) { |
amehta64 | 10:2191110c7e49 | 66 | enter = 1 - enter; |
amehta64 | 10:2191110c7e49 | 67 | } else if (mode < 2) { |
amehta64 | 10:2191110c7e49 | 68 | enter = 1 - enter; |
amehta64 | 10:2191110c7e49 | 69 | } else if (mode < 3) { |
amehta64 | 10:2191110c7e49 | 70 | enter = 1 - enter; |
amehta64 | 10:2191110c7e49 | 71 | } else { |
amehta64 | 10:2191110c7e49 | 72 | } |
amehta64 | 10:2191110c7e49 | 73 | } |
amehta64 | 10:2191110c7e49 | 74 | void bisr3() |
amehta64 | 10:2191110c7e49 | 75 | { |
amehta64 | 10:2191110c7e49 | 76 | myled3 = 1; |
amehta64 | 10:2191110c7e49 | 77 | if (mode < 1) { |
amehta64 | 10:2191110c7e49 | 78 | menu = menu--; |
amehta64 | 10:2191110c7e49 | 79 | } else if (mode < 2) { |
amehta64 | 10:2191110c7e49 | 80 | menu = menu--; |
amehta64 | 12:18986b2f67d5 | 81 | if (temp < 212) |
amehta64 | 12:18986b2f67d5 | 82 | temp = temp +5; |
amehta64 | 10:2191110c7e49 | 83 | else |
amehta64 | 12:18986b2f67d5 | 84 | temp = 215; |
amehta64 | 10:2191110c7e49 | 85 | } else if (mode < 3) { |
amehta64 | 10:2191110c7e49 | 86 | menu = menu--; |
amehta64 | 10:2191110c7e49 | 87 | } else { |
amehta64 | 10:2191110c7e49 | 88 | } |
amehta64 | 10:2191110c7e49 | 89 | } |
amehta64 | 10:2191110c7e49 | 90 | void bisr4() |
amehta64 | 10:2191110c7e49 | 91 | { |
amehta64 | 10:2191110c7e49 | 92 | myled4 =1; |
amehta64 | 10:2191110c7e49 | 93 | progo = !progo; |
amehta64 | 10:2191110c7e49 | 94 | if (mode < 1) { |
amehta64 | 10:2191110c7e49 | 95 | } else if (mode < 2) { |
amehta64 | 10:2191110c7e49 | 96 | } else if (mode < 3) { |
amehta64 | 10:2191110c7e49 | 97 | } else { |
amehta64 | 10:2191110c7e49 | 98 | } |
amehta64 | 10:2191110c7e49 | 99 | } |
amehta64 | 10:2191110c7e49 | 100 | |
amehta64 | 10:2191110c7e49 | 101 | float readain(int res) |
amehta64 | 10:2191110c7e49 | 102 | { |
amehta64 | 11:91fe365dbcf4 | 103 | float boil = 1.0; |
amehta64 | 11:91fe365dbcf4 | 104 | float calib = 0.606; |
amehta64 | 10:2191110c7e49 | 105 | float tmp[res]; |
amehta64 | 10:2191110c7e49 | 106 | for (int i = 0; i < res; i++) { |
amehta64 | 11:91fe365dbcf4 | 107 | tmp[i] = ((((ain.read()-calib)/(boil-calib))*142)+70);//ain.read();//((ain.read()-0.89)*1410+60); |
amehta64 | 10:2191110c7e49 | 108 | } |
amehta64 | 10:2191110c7e49 | 109 | float sum = 0; |
amehta64 | 10:2191110c7e49 | 110 | for (int i = 0; i < res; i++) { |
amehta64 | 10:2191110c7e49 | 111 | sum = sum + tmp[i]; |
amehta64 | 10:2191110c7e49 | 112 | } |
amehta64 | 10:2191110c7e49 | 113 | return sum/res; |
amehta64 | 10:2191110c7e49 | 114 | } |
amehta64 | 10:2191110c7e49 | 115 | |
amehta64 | 10:2191110c7e49 | 116 | bool TimerDone(Timer &timerobj, float endTime) |
amehta64 | 10:2191110c7e49 | 117 | { |
amehta64 | 10:2191110c7e49 | 118 | float timeNow = timerobj.read(); |
amehta64 | 10:2191110c7e49 | 119 | //printf("The time taken was %f seconds\n", timeNow); |
amehta64 | 10:2191110c7e49 | 120 | |
amehta64 | 10:2191110c7e49 | 121 | if (timeNow >= endTime) { |
amehta64 | 10:2191110c7e49 | 122 | return true; |
amehta64 | 10:2191110c7e49 | 123 | } else { |
amehta64 | 10:2191110c7e49 | 124 | return false; |
amehta64 | 10:2191110c7e49 | 125 | } |
amehta64 | 10:2191110c7e49 | 126 | |
amehta64 | 10:2191110c7e49 | 127 | } |
amehta64 | 10:2191110c7e49 | 128 | |
amehta64 | 10:2191110c7e49 | 129 | int menumain() |
amehta64 | 10:2191110c7e49 | 130 | { |
amehta64 | 10:2191110c7e49 | 131 | mode = 0; |
amehta64 | 10:2191110c7e49 | 132 | enter = 0; |
amehta64 | 10:2191110c7e49 | 133 | menu = 0; |
amehta64 | 10:2191110c7e49 | 134 | uLCD.printf("\n Welcome to your tea maker\n"); //Default Green on black text |
amehta64 | 10:2191110c7e49 | 135 | uLCD.printf("\n Please choose an option: \n"); |
amehta64 | 10:2191110c7e49 | 136 | uLCD.color(RED); |
amehta64 | 10:2191110c7e49 | 137 | while(1) { |
amehta64 | 10:2191110c7e49 | 138 | if (menu < 1) { |
amehta64 | 10:2191110c7e49 | 139 | uLCD.locate(3,7); |
amehta64 | 10:2191110c7e49 | 140 | uLCD.textbackground_color(BLUE); |
amehta64 | 10:2191110c7e49 | 141 | uLCD.printf("\n Heat Water \n"); |
amehta64 | 10:2191110c7e49 | 142 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 143 | uLCD.printf("\n Make a Tea \n"); |
amehta64 | 10:2191110c7e49 | 144 | } else { |
amehta64 | 10:2191110c7e49 | 145 | uLCD.locate(3,7); |
amehta64 | 10:2191110c7e49 | 146 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 147 | uLCD.printf("\n Heat Water \n"); |
amehta64 | 10:2191110c7e49 | 148 | uLCD.textbackground_color(BLUE); |
amehta64 | 10:2191110c7e49 | 149 | uLCD.printf("\n Make a Tea \n"); |
amehta64 | 10:2191110c7e49 | 150 | } |
amehta64 | 10:2191110c7e49 | 151 | if (enter) |
amehta64 | 10:2191110c7e49 | 152 | return menu; |
amehta64 | 10:2191110c7e49 | 153 | } |
amehta64 | 10:2191110c7e49 | 154 | } |
amehta64 | 10:2191110c7e49 | 155 | |
amehta64 | 10:2191110c7e49 | 156 | int menutwo(int response) |
amehta64 | 10:2191110c7e49 | 157 | { |
amehta64 | 10:2191110c7e49 | 158 | mode = 1; |
amehta64 | 10:2191110c7e49 | 159 | enter = 0; |
amehta64 | 10:2191110c7e49 | 160 | menu = 0; |
amehta64 | 10:2191110c7e49 | 161 | uLCD.cls(); |
amehta64 | 10:2191110c7e49 | 162 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 163 | if (response < 1) { |
amehta64 | 10:2191110c7e49 | 164 | uLCD.locate(3,3); |
amehta64 | 10:2191110c7e49 | 165 | uLCD.printf("\n Please choose a temperature: \n"); |
amehta64 | 10:2191110c7e49 | 166 | uLCD.color(RED); |
amehta64 | 10:2191110c7e49 | 167 | float temporary = 0; |
amehta64 | 10:2191110c7e49 | 168 | while (1) { |
amehta64 | 10:2191110c7e49 | 169 | uLCD.locate(3,7); |
amehta64 | 10:2191110c7e49 | 170 | temporary = readain(5000); |
amehta64 | 10:2191110c7e49 | 171 | uLCD.printf("%d \n %f", temp, temporary); |
amehta64 | 10:2191110c7e49 | 172 | if (temporary < (temp - 7)) { |
amehta64 | 11:91fe365dbcf4 | 173 | progo = 1; |
amehta64 | 10:2191110c7e49 | 174 | } else if (temporary > (temp - 5)) { |
amehta64 | 11:91fe365dbcf4 | 175 | progo = 0; |
amehta64 | 10:2191110c7e49 | 176 | } |
amehta64 | 10:2191110c7e49 | 177 | } |
amehta64 | 10:2191110c7e49 | 178 | } else { |
amehta64 | 10:2191110c7e49 | 179 | uLCD.printf("\n Please choose a tea type: \n"); |
amehta64 | 10:2191110c7e49 | 180 | uLCD.color(RED); |
amehta64 | 10:2191110c7e49 | 181 | while(1) { |
amehta64 | 10:2191110c7e49 | 182 | if (menu < 1) { |
amehta64 | 10:2191110c7e49 | 183 | uLCD.locate(3,7); |
amehta64 | 10:2191110c7e49 | 184 | uLCD.textbackground_color(BLUE); |
amehta64 | 10:2191110c7e49 | 185 | uLCD.printf(" White \n"); |
amehta64 | 10:2191110c7e49 | 186 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 187 | uLCD.printf(" Yellow \n"); |
amehta64 | 10:2191110c7e49 | 188 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 189 | uLCD.printf(" Green \n"); |
amehta64 | 10:2191110c7e49 | 190 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 191 | uLCD.printf(" Red \n"); |
amehta64 | 10:2191110c7e49 | 192 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 193 | uLCD.printf(" Black \n"); |
amehta64 | 10:2191110c7e49 | 194 | } else if (menu < 2) { |
amehta64 | 10:2191110c7e49 | 195 | uLCD.locate(3,7); |
amehta64 | 10:2191110c7e49 | 196 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 197 | uLCD.printf(" White \n"); |
amehta64 | 10:2191110c7e49 | 198 | uLCD.textbackground_color(BLUE); |
amehta64 | 10:2191110c7e49 | 199 | uLCD.printf(" Yellow \n"); |
amehta64 | 10:2191110c7e49 | 200 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 201 | uLCD.printf(" Green \n"); |
amehta64 | 10:2191110c7e49 | 202 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 203 | uLCD.printf(" Red \n"); |
amehta64 | 10:2191110c7e49 | 204 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 205 | uLCD.printf(" Black \n"); |
amehta64 | 10:2191110c7e49 | 206 | } else if (menu < 3) { |
amehta64 | 10:2191110c7e49 | 207 | uLCD.locate(3,7); |
amehta64 | 10:2191110c7e49 | 208 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 209 | uLCD.printf(" White \n"); |
amehta64 | 10:2191110c7e49 | 210 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 211 | uLCD.printf(" Yellow \n"); |
amehta64 | 10:2191110c7e49 | 212 | uLCD.textbackground_color(BLUE); |
amehta64 | 10:2191110c7e49 | 213 | uLCD.printf(" Green \n"); |
amehta64 | 10:2191110c7e49 | 214 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 215 | uLCD.printf(" Red \n"); |
amehta64 | 10:2191110c7e49 | 216 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 217 | uLCD.printf(" Black \n"); |
amehta64 | 10:2191110c7e49 | 218 | } else if (menu < 4) { |
amehta64 | 10:2191110c7e49 | 219 | uLCD.locate(3,7); |
amehta64 | 10:2191110c7e49 | 220 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 221 | uLCD.printf(" White \n"); |
amehta64 | 10:2191110c7e49 | 222 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 223 | uLCD.printf(" Yellow \n"); |
amehta64 | 10:2191110c7e49 | 224 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 225 | uLCD.printf(" Green \n"); |
amehta64 | 10:2191110c7e49 | 226 | uLCD.textbackground_color(BLUE); |
amehta64 | 10:2191110c7e49 | 227 | uLCD.printf(" Red \n"); |
amehta64 | 10:2191110c7e49 | 228 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 229 | uLCD.printf(" Black \n"); |
amehta64 | 10:2191110c7e49 | 230 | } else { |
amehta64 | 10:2191110c7e49 | 231 | uLCD.locate(3,7); |
amehta64 | 10:2191110c7e49 | 232 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 233 | uLCD.printf(" White \n"); |
amehta64 | 10:2191110c7e49 | 234 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 235 | uLCD.printf(" Yellow \n"); |
amehta64 | 10:2191110c7e49 | 236 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 237 | uLCD.printf(" Green \n"); |
amehta64 | 10:2191110c7e49 | 238 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 239 | uLCD.printf(" Red \n"); |
amehta64 | 10:2191110c7e49 | 240 | uLCD.textbackground_color(BLUE); |
amehta64 | 10:2191110c7e49 | 241 | uLCD.printf(" Black \n"); |
amehta64 | 10:2191110c7e49 | 242 | } |
amehta64 | 10:2191110c7e49 | 243 | if (enter) |
amehta64 | 10:2191110c7e49 | 244 | return menu; |
amehta64 | 10:2191110c7e49 | 245 | } |
amehta64 | 10:2191110c7e49 | 246 | } |
amehta64 | 10:2191110c7e49 | 247 | } |
amehta64 | 10:2191110c7e49 | 248 | |
amehta64 | 10:2191110c7e49 | 249 | int menuthree(int response) |
amehta64 | 10:2191110c7e49 | 250 | { |
amehta64 | 10:2191110c7e49 | 251 | if (response == 2) { |
amehta64 | 10:2191110c7e49 | 252 | return menu; //170 2 |
amehta64 | 10:2191110c7e49 | 253 | } |
amehta64 | 10:2191110c7e49 | 254 | mode = 2; |
amehta64 | 10:2191110c7e49 | 255 | enter = 0; |
amehta64 | 10:2191110c7e49 | 256 | menu = 0; |
amehta64 | 10:2191110c7e49 | 257 | uLCD.cls(); |
amehta64 | 10:2191110c7e49 | 258 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 259 | uLCD.printf("\n Please choose a tea: \n"); |
amehta64 | 10:2191110c7e49 | 260 | uLCD.color(RED); |
amehta64 | 10:2191110c7e49 | 261 | uLCD.locate(3,7); |
amehta64 | 10:2191110c7e49 | 262 | uLCD.textbackground_color(BLUE); |
amehta64 | 10:2191110c7e49 | 263 | if (response < 1) { |
amehta64 | 10:2191110c7e49 | 264 | uLCD.printf(" Bai Mudan \n"); //158, 4 |
amehta64 | 10:2191110c7e49 | 265 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 266 | uLCD.printf(" WhitHairSilvNeed\n"); //167, 5 |
amehta64 | 10:2191110c7e49 | 267 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 268 | uLCD.printf(" Shoumei \n"); //180, 2 |
amehta64 | 10:2191110c7e49 | 269 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 270 | uLCD.printf(" Darjeeling \n"); //195, 3 |
amehta64 | 10:2191110c7e49 | 271 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 272 | uLCD.printf(" Other/Fruity \n"); //212, 5 |
amehta64 | 10:2191110c7e49 | 273 | while(1) { |
amehta64 | 10:2191110c7e49 | 274 | if (menu < 1) { |
amehta64 | 10:2191110c7e49 | 275 | uLCD.locate(3,7); |
amehta64 | 10:2191110c7e49 | 276 | uLCD.textbackground_color(BLUE); |
amehta64 | 10:2191110c7e49 | 277 | uLCD.printf(" Bai Mudan \n"); |
amehta64 | 10:2191110c7e49 | 278 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 279 | uLCD.printf(" WhitHairSilvNeed\n"); |
amehta64 | 10:2191110c7e49 | 280 | } else if (menu < 2) { |
amehta64 | 10:2191110c7e49 | 281 | uLCD.locate(3,7); |
amehta64 | 10:2191110c7e49 | 282 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 283 | uLCD.printf(" Bai Mudan \n"); |
amehta64 | 10:2191110c7e49 | 284 | uLCD.textbackground_color(BLUE); |
amehta64 | 10:2191110c7e49 | 285 | uLCD.printf(" WhitHairSilvNeed\n"); |
amehta64 | 10:2191110c7e49 | 286 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 287 | uLCD.printf(" Shoumei \n"); |
amehta64 | 10:2191110c7e49 | 288 | } else if (menu < 3) { |
amehta64 | 10:2191110c7e49 | 289 | uLCD.locate(3,8); |
amehta64 | 10:2191110c7e49 | 290 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 291 | uLCD.printf(" WhitHairSilvNeed\n"); |
amehta64 | 10:2191110c7e49 | 292 | uLCD.textbackground_color(BLUE); |
amehta64 | 10:2191110c7e49 | 293 | uLCD.printf(" Shoumei \n"); |
amehta64 | 10:2191110c7e49 | 294 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 295 | uLCD.printf(" Darjeeling \n"); |
amehta64 | 10:2191110c7e49 | 296 | } else if (menu < 4) { |
amehta64 | 10:2191110c7e49 | 297 | uLCD.locate(3,9); |
amehta64 | 10:2191110c7e49 | 298 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 299 | uLCD.printf(" Shoumei \n"); |
amehta64 | 10:2191110c7e49 | 300 | uLCD.textbackground_color(BLUE); |
amehta64 | 10:2191110c7e49 | 301 | uLCD.printf(" Darjeeling \n"); |
amehta64 | 10:2191110c7e49 | 302 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 303 | uLCD.printf(" Other/Fruity \n"); |
amehta64 | 10:2191110c7e49 | 304 | } else { |
amehta64 | 10:2191110c7e49 | 305 | uLCD.locate(3,10); |
amehta64 | 10:2191110c7e49 | 306 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 307 | uLCD.printf(" Darjeeling \n"); |
amehta64 | 10:2191110c7e49 | 308 | uLCD.textbackground_color(BLUE); |
amehta64 | 10:2191110c7e49 | 309 | uLCD.printf(" Other/Fruity \n"); |
amehta64 | 10:2191110c7e49 | 310 | } |
amehta64 | 10:2191110c7e49 | 311 | if (enter) |
amehta64 | 10:2191110c7e49 | 312 | return menu; |
amehta64 | 10:2191110c7e49 | 313 | } |
amehta64 | 10:2191110c7e49 | 314 | } else if (response < 2) { |
amehta64 | 10:2191110c7e49 | 315 | uLCD.printf(" Silver Needle \n"); //175 3 |
amehta64 | 10:2191110c7e49 | 316 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 317 | uLCD.printf(" Huoshan \n"); //180 2 |
amehta64 | 10:2191110c7e49 | 318 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 319 | uLCD.printf(" Other \n"); //170 3 |
amehta64 | 10:2191110c7e49 | 320 | while(1) { |
amehta64 | 10:2191110c7e49 | 321 | if (menu < 1) { |
amehta64 | 10:2191110c7e49 | 322 | uLCD.locate(3,7); |
amehta64 | 10:2191110c7e49 | 323 | uLCD.textbackground_color(BLUE); |
amehta64 | 10:2191110c7e49 | 324 | uLCD.printf(" Silver Needle \n"); |
amehta64 | 10:2191110c7e49 | 325 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 326 | uLCD.printf(" Huoshan \n"); |
amehta64 | 10:2191110c7e49 | 327 | } else if (menu < 2) { |
amehta64 | 10:2191110c7e49 | 328 | uLCD.locate(3,7); |
amehta64 | 10:2191110c7e49 | 329 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 330 | uLCD.printf(" Silver Needle \n"); |
amehta64 | 10:2191110c7e49 | 331 | uLCD.textbackground_color(BLUE); |
amehta64 | 10:2191110c7e49 | 332 | uLCD.printf(" Huoshan \n"); |
amehta64 | 10:2191110c7e49 | 333 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 334 | uLCD.printf(" Other \n"); |
amehta64 | 10:2191110c7e49 | 335 | } else if (menu < 3) { |
amehta64 | 10:2191110c7e49 | 336 | uLCD.locate(3,8); |
amehta64 | 10:2191110c7e49 | 337 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 338 | uLCD.printf(" Huoshan \n"); |
amehta64 | 10:2191110c7e49 | 339 | uLCD.textbackground_color(BLUE); |
amehta64 | 10:2191110c7e49 | 340 | uLCD.printf(" Other \n"); |
amehta64 | 10:2191110c7e49 | 341 | } |
amehta64 | 10:2191110c7e49 | 342 | if (enter) |
amehta64 | 10:2191110c7e49 | 343 | return menu; |
amehta64 | 10:2191110c7e49 | 344 | } |
amehta64 | 10:2191110c7e49 | 345 | } else if (response < 4) { |
amehta64 | 10:2191110c7e49 | 346 | uLCD.printf(" Chinese \n"); //212 3 |
amehta64 | 10:2191110c7e49 | 347 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 348 | uLCD.printf(" Thai \n"); //212 5 |
amehta64 | 10:2191110c7e49 | 349 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 350 | uLCD.printf(" Rooibos \n"); //212 5 |
amehta64 | 10:2191110c7e49 | 351 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 352 | uLCD.printf(" Other \n"); //212 3 |
amehta64 | 10:2191110c7e49 | 353 | while(1) { |
amehta64 | 10:2191110c7e49 | 354 | if (menu < 1) { |
amehta64 | 10:2191110c7e49 | 355 | uLCD.locate(3,7); |
amehta64 | 10:2191110c7e49 | 356 | uLCD.textbackground_color(BLUE); |
amehta64 | 10:2191110c7e49 | 357 | uLCD.printf(" Chinese \n"); |
amehta64 | 10:2191110c7e49 | 358 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 359 | uLCD.printf(" Thai \n"); |
amehta64 | 10:2191110c7e49 | 360 | } else if (menu < 2) { |
amehta64 | 10:2191110c7e49 | 361 | uLCD.locate(3,7); |
amehta64 | 10:2191110c7e49 | 362 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 363 | uLCD.printf(" Chinese \n"); |
amehta64 | 10:2191110c7e49 | 364 | uLCD.textbackground_color(BLUE); |
amehta64 | 10:2191110c7e49 | 365 | uLCD.printf(" Thai \n"); |
amehta64 | 10:2191110c7e49 | 366 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 367 | uLCD.printf(" Rooibos \n"); |
amehta64 | 10:2191110c7e49 | 368 | } else if (menu < 3) { |
amehta64 | 10:2191110c7e49 | 369 | uLCD.locate(3,8); |
amehta64 | 10:2191110c7e49 | 370 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 371 | uLCD.printf(" Thai \n"); |
amehta64 | 10:2191110c7e49 | 372 | uLCD.textbackground_color(BLUE); |
amehta64 | 10:2191110c7e49 | 373 | uLCD.printf(" Rooibos \n"); |
amehta64 | 10:2191110c7e49 | 374 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 375 | uLCD.printf(" Other \n"); |
amehta64 | 10:2191110c7e49 | 376 | } else { |
amehta64 | 10:2191110c7e49 | 377 | uLCD.locate(3,9); |
amehta64 | 10:2191110c7e49 | 378 | uLCD.textbackground_color(BLACK); |
amehta64 | 10:2191110c7e49 | 379 | uLCD.printf(" Rooibos \n"); |
amehta64 | 10:2191110c7e49 | 380 | uLCD.textbackground_color(BLUE); |
amehta64 | 10:2191110c7e49 | 381 | uLCD.printf(" Other \n"); |
amehta64 | 10:2191110c7e49 | 382 | } |
amehta64 | 10:2191110c7e49 | 383 | if (enter) |
amehta64 | 10:2191110c7e49 | 384 | return menu; |
amehta64 | 10:2191110c7e49 | 385 | } |
amehta64 | 10:2191110c7e49 | 386 | } else { |
amehta64 | 10:2191110c7e49 | 387 | menu = 1; |
amehta64 | 10:2191110c7e49 | 388 | return menu; |
amehta64 | 10:2191110c7e49 | 389 | } |
amehta64 | 10:2191110c7e49 | 390 | } |
amehta64 | 10:2191110c7e49 | 391 | |
amehta64 | 10:2191110c7e49 | 392 | void maketea(int response, int action) |
amehta64 | 10:2191110c7e49 | 393 | { |
amehta64 | 10:2191110c7e49 | 394 | int templ = 0; |
amehta64 | 10:2191110c7e49 | 395 | int time = 0; |
amehta64 | 10:2191110c7e49 | 396 | if (response == 2) { |
amehta64 | 10:2191110c7e49 | 397 | templ = 170; |
amehta64 | 10:2191110c7e49 | 398 | time = 2; |
amehta64 | 10:2191110c7e49 | 399 | } else if (response == 4) { |
amehta64 | 10:2191110c7e49 | 400 | templ = 212; |
amehta64 | 10:2191110c7e49 | 401 | time = 1; |
amehta64 | 10:2191110c7e49 | 402 | } else if (response == 3) { |
amehta64 | 10:2191110c7e49 | 403 | templ = 212; |
amehta64 | 10:2191110c7e49 | 404 | if (action == 0 || action == 3) { |
amehta64 | 10:2191110c7e49 | 405 | time = 3; |
amehta64 | 10:2191110c7e49 | 406 | } else { |
amehta64 | 10:2191110c7e49 | 407 | time = 5; |
amehta64 | 10:2191110c7e49 | 408 | } |
amehta64 | 10:2191110c7e49 | 409 | } else if (response == 1) { |
amehta64 | 10:2191110c7e49 | 410 | if (action == 0) { |
amehta64 | 10:2191110c7e49 | 411 | templ = 175; |
amehta64 | 10:2191110c7e49 | 412 | time = 3; |
amehta64 | 10:2191110c7e49 | 413 | } else if (action == 1) { |
amehta64 | 10:2191110c7e49 | 414 | templ = 180; |
amehta64 | 10:2191110c7e49 | 415 | time = 2; |
amehta64 | 10:2191110c7e49 | 416 | } else { |
amehta64 | 10:2191110c7e49 | 417 | templ = 170; |
amehta64 | 10:2191110c7e49 | 418 | time = 3; |
amehta64 | 10:2191110c7e49 | 419 | } |
amehta64 | 10:2191110c7e49 | 420 | } else { |
amehta64 | 10:2191110c7e49 | 421 | if (action == 0) { |
amehta64 | 10:2191110c7e49 | 422 | templ = 158; |
amehta64 | 10:2191110c7e49 | 423 | time = 1; |
amehta64 | 10:2191110c7e49 | 424 | } else if (action == 1) { |
amehta64 | 10:2191110c7e49 | 425 | templ = 167; |
amehta64 | 10:2191110c7e49 | 426 | time = 5; |
amehta64 | 10:2191110c7e49 | 427 | } else if (action == 2) { |
amehta64 | 10:2191110c7e49 | 428 | templ = 180; |
amehta64 | 10:2191110c7e49 | 429 | time = 2; |
amehta64 | 10:2191110c7e49 | 430 | } else if (action == 3) { |
amehta64 | 10:2191110c7e49 | 431 | templ = 195; |
amehta64 | 10:2191110c7e49 | 432 | time = 3; |
amehta64 | 10:2191110c7e49 | 433 | } else { |
amehta64 | 10:2191110c7e49 | 434 | templ = 212; |
amehta64 | 10:2191110c7e49 | 435 | time = 5; |
amehta64 | 10:2191110c7e49 | 436 | } |
amehta64 | 10:2191110c7e49 | 437 | } |
amehta64 | 10:2191110c7e49 | 438 | float temporary = 0; |
amehta64 | 10:2191110c7e49 | 439 | uLCD.cls(); |
amehta64 | 10:2191110c7e49 | 440 | uLCD.printf("heating..."); |
amehta64 | 10:2191110c7e49 | 441 | while (1) { |
amehta64 | 10:2191110c7e49 | 442 | temporary = readain(5000); |
amehta64 | 10:2191110c7e49 | 443 | uLCD.locate(3,1); |
amehta64 | 11:91fe365dbcf4 | 444 | uLCD.printf("heat to: %i \n current: %5.2f", templ, temporary); |
amehta64 | 10:2191110c7e49 | 445 | if (temporary < (templ - 7)) { |
amehta64 | 11:91fe365dbcf4 | 446 | progo = 1; |
amehta64 | 11:91fe365dbcf4 | 447 | } else if (temporary > (templ - 5)) { |
amehta64 | 10:2191110c7e49 | 448 | progo = 0; |
amehta64 | 10:2191110c7e49 | 449 | break; |
amehta64 | 10:2191110c7e49 | 450 | } |
amehta64 | 10:2191110c7e49 | 451 | } |
amehta64 | 10:2191110c7e49 | 452 | uLCD.cls(); |
amehta64 | 11:91fe365dbcf4 | 453 | uLCD.printf("brewing... \n"); |
amehta64 | 10:2191110c7e49 | 454 | for(int i = 180; i > 110; i--) { |
amehta64 | 10:2191110c7e49 | 455 | myservo = i/180.0; |
amehta64 | 10:2191110c7e49 | 456 | wait(0.05); |
amehta64 | 10:2191110c7e49 | 457 | } |
amehta64 | 10:2191110c7e49 | 458 | t.start(); |
amehta64 | 10:2191110c7e49 | 459 | while(!TimerDone(t, time*60)) { |
amehta64 | 10:2191110c7e49 | 460 | } |
amehta64 | 10:2191110c7e49 | 461 | for(int i = 110; i < 180; i++) { |
amehta64 | 10:2191110c7e49 | 462 | myservo = i/180.0; |
amehta64 | 10:2191110c7e49 | 463 | wait(0.05); |
amehta64 | 10:2191110c7e49 | 464 | } |
amehta64 | 10:2191110c7e49 | 465 | uLCD.cls(); |
amehta64 | 10:2191110c7e49 | 466 | uLCD.printf("Done..."); |
amehta64 | 10:2191110c7e49 | 467 | } |
4180_1 | 0:cfcf73272647 | 468 | |
4180_1 | 2:75727e89a717 | 469 | int main() |
4180_1 | 2:75727e89a717 | 470 | { |
amehta64 | 10:2191110c7e49 | 471 | wait(1); |
amehta64 | 10:2191110c7e49 | 472 | button1.mode( PullUp ); |
amehta64 | 10:2191110c7e49 | 473 | button2.mode( PullUp ); |
amehta64 | 10:2191110c7e49 | 474 | button3.mode( PullUp ); |
amehta64 | 10:2191110c7e49 | 475 | button4.mode( PullUp ); |
4180_1 | 7:7bd7397ab89f | 476 | |
amehta64 | 10:2191110c7e49 | 477 | // button1.attach_deasserted(&bisr1); |
amehta64 | 10:2191110c7e49 | 478 | // button2.attach_deasserted(&bisr2); |
amehta64 | 10:2191110c7e49 | 479 | // button3.attach_deasserted(&bisr3); |
amehta64 | 10:2191110c7e49 | 480 | // button4.attach_deasserted(&bisr4); |
amehta64 | 10:2191110c7e49 | 481 | |
amehta64 | 10:2191110c7e49 | 482 | button1.rise(&bisr1); |
amehta64 | 10:2191110c7e49 | 483 | button2.rise(&bisr2); |
amehta64 | 10:2191110c7e49 | 484 | button3.rise(&bisr3); |
amehta64 | 10:2191110c7e49 | 485 | button4.rise(&bisr4); |
amehta64 | 10:2191110c7e49 | 486 | |
amehta64 | 11:91fe365dbcf4 | 487 | progo = 0; |
amehta64 | 10:2191110c7e49 | 488 | for(int i = 110; i < 180; i++) { |
amehta64 | 10:2191110c7e49 | 489 | myservo = i/180.0; |
amehta64 | 10:2191110c7e49 | 490 | wait(0.05); |
4180_1 | 4:25a266a74a4c | 491 | } |
amehta64 | 10:2191110c7e49 | 492 | wait(1); |
amehta64 | 10:2191110c7e49 | 493 | |
amehta64 | 10:2191110c7e49 | 494 | int response; |
amehta64 | 10:2191110c7e49 | 495 | response = menumain(); |
amehta64 | 10:2191110c7e49 | 496 | response = menutwo(response); |
amehta64 | 10:2191110c7e49 | 497 | int action = menuthree(response); |
amehta64 | 10:2191110c7e49 | 498 | maketea(response, action); |
amehta64 | 10:2191110c7e49 | 499 | |
amehta64 | 10:2191110c7e49 | 500 | while(1) { |
amehta64 | 10:2191110c7e49 | 501 | // progo = prog; |
amehta64 | 10:2191110c7e49 | 502 | myled1 = progo; |
amehta64 | 10:2191110c7e49 | 503 | // onoffo = onoff; |
amehta64 | 10:2191110c7e49 | 504 | myled2 = onoffo; |
amehta64 | 10:2191110c7e49 | 505 | // upo = up; |
amehta64 | 10:2191110c7e49 | 506 | myled3 = upo; |
amehta64 | 10:2191110c7e49 | 507 | // downo = down; |
amehta64 | 10:2191110c7e49 | 508 | myled4 = downo; |
amehta64 | 10:2191110c7e49 | 509 | // uLCD.locate(3,3); |
amehta64 | 10:2191110c7e49 | 510 | //uLCD.printf("TxtLine %f \n and %f",ain.read(), abs(ain.read()-ain.read())); |
4180_1 | 3:454d1f4c8fd7 | 511 | } |
4180_1 | 7:7bd7397ab89f | 512 | |
amehta64 | 10:2191110c7e49 | 513 | } |