Current temperature express as coloured theme.

Dependencies:   N5110 TMP102 mbed

Fork of 2645_I2C_TMP102 by Craig Evans

main.cpp

Committer:
bonnyngangu
Date:
2016-05-09
Revision:
2:3789998dde80
Parent:
1:dd5fb735acf1

File content as of revision 2:3789998dde80:

/* 
 Joystick_Project
Bonny Ngangu
6 March 2016
(c) Bonny Ngangu, University of Leeds, Feb 2016

*/ 

#include "mbed.h"
// include the library header, ensure the library has been imported into the project
#include "TMP102.h"
#include "N5110.h"


//Joystick direction tolerance altering 
#define DIRECTION_TOLERANCE 0.1


// Create TMP102 object
TMP102 tmp102(I2C_SDA,I2C_SCL);  
// UART connection for PC
Serial pc(USBTX,USBRX);

// K64F on-board LEDs 
DigitalOut r_led(LED_RED);
DigitalOut g_led(LED_GREEN);
DigitalOut b_led(LED_BLUE);

//         VCC,    SCE,   RST,   D/C,   MOSI,  SCLK,   LED
N5110 lcd (PTE26 , PTA0 , PTC4 , PTD0 , PTD2 , PTD1 , PTC3);



// K64F on-board switches
InterruptIn sw2(SW2);
InterruptIn sw3(SW3);

// error function hangs flashing an LED
void error();
// setup serial port
void init_serial();
// set-up the on-board LEDs and switches
void init_K64F();

int main()
{
    // first need to initialise display
    lcd.init();
    // initialise the board and serial port
    init_K64F();
    init_serial(); 
    // call the sensor init method using dot syntax
    tmp102.init();
    
    while (1) {
        
        // these are default settings so not strictly needed
        lcd.normalMode();      // normal colour mode
        lcd.setBrightness(0.5); // put LED backlight on 50%

        // can directly print strings at specified co-ordinates
        lcd.printString("Current Temp",0,0);
        
        // read temperature and print over serial port
        float T = tmp102.get_temperature();
        pc.printf("T = %f K\n",T);
        
        char buffer[14];  // each character is 6 pixels wide, screen is 84 pixels (84/6 = 14)
        // so can display a string of a maximum 14 characters in length
        // or create formatted strings - ensure they aren't more than 14 characters long
        int length = sprintf(buffer,"T = %.2f C",T); // print formatted data to buffer
        // it is important the format specifier ensures the length will fit in the buffer
        if (length <= 14)  // if string will fit on display
            lcd.printString(buffer,0,2);
        
        // small delay - 1s to match the update rate of the sensor (1 Hz)
        wait(1.0);
        
        if(T<27){
            
            g_led = 0;
            lcd.printString("Fan OFF",0,4);
        }
        
        if (T>=30){
            
            r_led = 0;
            lcd.printString("Fan ON ",0,4);
       }

    }

}

void init_serial() {
    // set to highest baud - ensure terminal software matches
    pc.baud(115200); 
}

void init_K64F() 
{
    // on-board LEDs are active-low, so set pin high to turn them off.
    r_led = 1;
    g_led = 1;
    b_led = 1;   
    
    // since the on-board switches have external pull-ups, we should disable the internal pull-down
    // resistors that are enabled by default using InterruptIn
    sw2.mode(PullNone);
    sw3.mode(PullNone);
}