Fork JTMK PUO Tech Creavery
Dependencies: C12832_lcd LM75B USBDevice mbed
Fork of app-board-TempAlarm by
main.cpp@5:05597fda1a26, 2015-12-23 (annotated)
- Committer:
- Abumansur
- Date:
- Wed Dec 23 01:14:21 2015 +0000
- Revision:
- 5:05597fda1a26
- Parent:
- 4:d9371152f77a
Tech Creavery JTMK PUO
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
okano | 0:ce7a8546502b | 1 | #include "mbed.h" |
chris | 2:9e757151de9b | 2 | #include "LM75B.h" |
chris | 2:9e757151de9b | 3 | #include "C12832_lcd.h" |
okano | 0:ce7a8546502b | 4 | |
Abumansur | 5:05597fda1a26 | 5 | |
Abumansur | 5:05597fda1a26 | 6 | DigitalOut myled1 (LED1); |
Abumansur | 5:05597fda1a26 | 7 | DigitalOut myled2 (LED2); |
Abumansur | 5:05597fda1a26 | 8 | DigitalOut myled3 (LED3); |
Abumansur | 5:05597fda1a26 | 9 | DigitalOut myled4 (LED4); |
Abumansur | 5:05597fda1a26 | 10 | Serial pc(USBTX,USBRX); // setup terminal link |
Abumansur | 5:05597fda1a26 | 11 | LocalFileSystem local("local"); // define local file system |
Abumansur | 5:05597fda1a26 | 12 | int write_var; |
Abumansur | 5:05597fda1a26 | 13 | int read_var; |
Abumansur | 5:05597fda1a26 | 14 | C12832_LCD lcd; |
4180_1 | 4:d9371152f77a | 15 | LM75B tmp(p28,p27); //I2C Temperature Sensor |
Abumansur | 5:05597fda1a26 | 16 | |
4180_1 | 4:d9371152f77a | 17 | PwmOut r(p23); //RGB LED with 3 PWM outputs for dimmer control |
4180_1 | 4:d9371152f77a | 18 | PwmOut g(p24); |
4180_1 | 4:d9371152f77a | 19 | PwmOut b(p25); |
Abumansur | 5:05597fda1a26 | 20 | |
4180_1 | 4:d9371152f77a | 21 | PwmOut speaker(p26); //Speaker with PWM driver |
Abumansur | 5:05597fda1a26 | 22 | |
Abumansur | 5:05597fda1a26 | 23 | BusIn joy(p15,p12,p13,p16); //joystick |
Abumansur | 5:05597fda1a26 | 24 | |
Abumansur | 5:05597fda1a26 | 25 | |
4180_1 | 4:d9371152f77a | 26 | AnalogIn pot1(p19); //Reads Pot 1 - near LCD |
4180_1 | 4:d9371152f77a | 27 | AnalogIn pot2(p20); //Reads Pot 2 - near RGB LED |
okano | 0:ce7a8546502b | 28 | |
chris | 2:9e757151de9b | 29 | int main () |
okano | 0:ce7a8546502b | 30 | { |
Abumansur | 5:05597fda1a26 | 31 | |
Abumansur | 5:05597fda1a26 | 32 | |
4180_1 | 4:d9371152f77a | 33 | float board_temp; |
4180_1 | 4:d9371152f77a | 34 | float alarm_temp = 0.0; |
4180_1 | 4:d9371152f77a | 35 | // generate a 800Hz tone using PWM hardware output |
4180_1 | 4:d9371152f77a | 36 | speaker.period(1.0/800.0); // 800hz period |
4180_1 | 4:d9371152f77a | 37 | r=1.0; //RGB LED off - PWM 100% duty cycle |
4180_1 | 4:d9371152f77a | 38 | g=1.0; |
4180_1 | 4:d9371152f77a | 39 | b=1.0; |
Abumansur | 5:05597fda1a26 | 40 | |
Abumansur | 5:05597fda1a26 | 41 | //zakuan |
Abumansur | 5:05597fda1a26 | 42 | lcd.cls(); |
Abumansur | 5:05597fda1a26 | 43 | lcd.locate(1,1); //clears LCD |
Abumansur | 5:05597fda1a26 | 44 | lcd.printf("Welcome to Heat Monitoring System"); |
Abumansur | 5:05597fda1a26 | 45 | wait(3.0); |
Abumansur | 5:05597fda1a26 | 46 | |
Abumansur | 5:05597fda1a26 | 47 | // |
chris | 2:9e757151de9b | 48 | while (1) { |
chris | 2:9e757151de9b | 49 | lcd.cls(); |
4180_1 | 4:d9371152f77a | 50 | lcd.locate(0,0); //clears LCD |
4180_1 | 4:d9371152f77a | 51 | board_temp = tmp; //read temperature |
4180_1 | 4:d9371152f77a | 52 | lcd.printf("Board Temperature = %.2f\n\r",board_temp); |
Abumansur | 5:05597fda1a26 | 53 | alarm_temp = 50 * pot1; //read alarm temp |
Abumansur | 5:05597fda1a26 | 54 | lcd.printf("Temperature Limit = %.2f\n\r",alarm_temp); |
Abumansur | 5:05597fda1a26 | 55 | |
4180_1 | 4:d9371152f77a | 56 | if(board_temp > alarm_temp) { //check temp for alarm |
Abumansur | 5:05597fda1a26 | 57 | r = 1.0 - pot2; |
Abumansur | 5:05597fda1a26 | 58 | wait(0.1); //RGB LED red |
Abumansur | 5:05597fda1a26 | 59 | |
Abumansur | 5:05597fda1a26 | 60 | |
Abumansur | 5:05597fda1a26 | 61 | speaker = 0.9; |
Abumansur | 5:05597fda1a26 | 62 | |
Abumansur | 5:05597fda1a26 | 63 | lcd.cls(); |
Abumansur | 5:05597fda1a26 | 64 | lcd.locate(0,0); |
Abumansur | 5:05597fda1a26 | 65 | lcd.printf("!!! ...WARNING OVERHEAT... !!!"); |
Abumansur | 5:05597fda1a26 | 66 | wait(3.0); |
Abumansur | 5:05597fda1a26 | 67 | |
Abumansur | 5:05597fda1a26 | 68 | myled1 = 1; |
Abumansur | 5:05597fda1a26 | 69 | myled2 = 0; |
Abumansur | 5:05597fda1a26 | 70 | myled3 = 0; |
Abumansur | 5:05597fda1a26 | 71 | myled4 = 0; |
Abumansur | 5:05597fda1a26 | 72 | wait(0.1); |
Abumansur | 5:05597fda1a26 | 73 | |
Abumansur | 5:05597fda1a26 | 74 | myled1 = 0; |
Abumansur | 5:05597fda1a26 | 75 | myled2 = 1; |
Abumansur | 5:05597fda1a26 | 76 | myled3 = 0; |
Abumansur | 5:05597fda1a26 | 77 | myled4 = 0; |
Abumansur | 5:05597fda1a26 | 78 | wait(0.2); |
Abumansur | 5:05597fda1a26 | 79 | |
Abumansur | 5:05597fda1a26 | 80 | myled1 = 0; |
Abumansur | 5:05597fda1a26 | 81 | myled2 = 0; |
Abumansur | 5:05597fda1a26 | 82 | myled3 = 1; |
Abumansur | 5:05597fda1a26 | 83 | myled4 = 0; |
Abumansur | 5:05597fda1a26 | 84 | wait(0.1); |
Abumansur | 5:05597fda1a26 | 85 | |
Abumansur | 5:05597fda1a26 | 86 | myled1 = 0; |
Abumansur | 5:05597fda1a26 | 87 | myled2 = 0; |
Abumansur | 5:05597fda1a26 | 88 | myled3 = 0; |
Abumansur | 5:05597fda1a26 | 89 | myled4 = 1; |
Abumansur | 5:05597fda1a26 | 90 | wait(0.1); |
Abumansur | 5:05597fda1a26 | 91 | |
Abumansur | 5:05597fda1a26 | 92 | r=1.0; |
Abumansur | 5:05597fda1a26 | 93 | g=1.0; |
Abumansur | 5:05597fda1a26 | 94 | b=1.0; |
Abumansur | 5:05597fda1a26 | 95 | } |
Abumansur | 5:05597fda1a26 | 96 | else { |
4180_1 | 4:d9371152f77a | 97 | g = 1.0 - pot2; //RGB LED green |
4180_1 | 4:d9371152f77a | 98 | r = 1.0; |
4180_1 | 4:d9371152f77a | 99 | speaker = 0.0; |
4180_1 | 4:d9371152f77a | 100 | } |
chris | 2:9e757151de9b | 101 | wait(1.0); |
4180_1 | 4:d9371152f77a | 102 | pc.printf("%.2f\n\r",board_temp); //send temp to PC |
Abumansur | 5:05597fda1a26 | 103 | FILE* File1 = fopen("/local/datafile.txt","w"); |
Abumansur | 5:05597fda1a26 | 104 | write_var=0x23; // example data |
Abumansur | 5:05597fda1a26 | 105 | fputc(write_var, File1); |
Abumansur | 5:05597fda1a26 | 106 | fclose(File1); |
chris | 2:9e757151de9b | 107 | } |
okano | 0:ce7a8546502b | 108 | } |