This demo uses the application board’s I2C temperature sensor to measure the board’s temperature. Pot 1 (blue dial near LCD) is used to adjust a temperature alarm setting. Alarm uses speaker and RGB LED.

Dependencies:   C12832_lcd LM75B mbed

Fork of app-board-LM75B by Chris Styles

main.cpp

Committer:
4180_1
Date:
2013-09-22
Revision:
4:d9371152f77a
Parent:
3:4d612f16ad84

File content as of revision 4:d9371152f77a:

#include "mbed.h"
#include "LM75B.h"
#include "C12832_lcd.h"

C12832_LCD lcd; //Graphics LCD
LM75B tmp(p28,p27); //I2C Temperature Sensor
PwmOut r(p23); //RGB LED with 3 PWM outputs for dimmer control
PwmOut g(p24);
PwmOut b(p25);
PwmOut speaker(p26); //Speaker with PWM driver
AnalogIn pot1(p19); //Reads Pot 1 - near LCD
AnalogIn pot2(p20); //Reads Pot 2 - near RGB LED
Serial pc(USBTX,USBRX); //used for printf to PC over USB

int main ()
{
    float board_temp;
    float alarm_temp = 0.0;
    // generate a 800Hz tone using PWM hardware output
    speaker.period(1.0/800.0); // 800hz period
    r=1.0; //RGB LED off - PWM 100% duty cycle
    g=1.0;
    b=1.0;

    while (1) {
        lcd.cls();
        lcd.locate(0,0); //clears LCD
        board_temp = tmp; //read temperature
        lcd.printf("Board Temperature = %.2f\n\r",board_temp);
        alarm_temp = 50.0 * pot1; //read alarm temp
        lcd.printf("Temp Alarm Setting = %.2f\n\r",alarm_temp);
        if(board_temp > alarm_temp) { //check temp for alarm
            r = 1.0 - pot2; //RGB LED red
            g = 1.0;
            speaker = 0.5; //alarm tone using PWM
        } else {
            g = 1.0 - pot2; //RGB LED green
            r = 1.0;
            speaker = 0.0;
        }
        wait(1.0);
        pc.printf("%.2f\n\r",board_temp); //send temp to PC
    }
}