Fork JTMK PUO Tech Creavery

Dependencies:   C12832_lcd LM75B USBDevice mbed

Fork of app-board-TempAlarm by jim hamblen

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?

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