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 Armaan Mehta

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?

UserRevisionLine numberNew 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 }