Current temperature express as coloured theme.
Dependencies: N5110 TMP102 mbed
Fork of 2645_I2C_TMP102 by
main.cpp@1:dd5fb735acf1, 2016-02-05 (annotated)
- Committer:
- eencae
- Date:
- Fri Feb 05 17:25:03 2016 +0000
- Revision:
- 1:dd5fb735acf1
- Parent:
- 0:21a200b880d7
- Child:
- 2:3789998dde80
Initial commit.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
eencae | 0:21a200b880d7 | 1 | /* |
eencae | 0:21a200b880d7 | 2 | |
eencae | 1:dd5fb735acf1 | 3 | 2645_I2C_TMP102_Library |
eencae | 0:21a200b880d7 | 4 | |
eencae | 0:21a200b880d7 | 5 | Sample code from ELEC2645 Week 17 Lab |
eencae | 0:21a200b880d7 | 6 | |
eencae | 1:dd5fb735acf1 | 7 | Demonstrates how to re-factor the TMP102 code into a library |
eencae | 0:21a200b880d7 | 8 | |
eencae | 0:21a200b880d7 | 9 | (c) Craig A. Evans, University of Leeds, Feb 2016 |
eencae | 0:21a200b880d7 | 10 | |
eencae | 0:21a200b880d7 | 11 | */ |
eencae | 0:21a200b880d7 | 12 | |
eencae | 0:21a200b880d7 | 13 | #include "mbed.h" |
eencae | 1:dd5fb735acf1 | 14 | // include the library header, ensure the library has been imported into the project |
eencae | 1:dd5fb735acf1 | 15 | #include "TMP102.h" |
eencae | 0:21a200b880d7 | 16 | |
eencae | 1:dd5fb735acf1 | 17 | // Create TMP102 object |
eencae | 1:dd5fb735acf1 | 18 | TMP102 tmp102(I2C_SDA,I2C_SCL); |
eencae | 0:21a200b880d7 | 19 | // UART connection for PC |
eencae | 0:21a200b880d7 | 20 | Serial pc(USBTX,USBRX); |
eencae | 0:21a200b880d7 | 21 | |
eencae | 0:21a200b880d7 | 22 | // K64F on-board LEDs |
eencae | 0:21a200b880d7 | 23 | DigitalOut r_led(LED_RED); |
eencae | 0:21a200b880d7 | 24 | DigitalOut g_led(LED_GREEN); |
eencae | 0:21a200b880d7 | 25 | DigitalOut b_led(LED_BLUE); |
eencae | 0:21a200b880d7 | 26 | // K64F on-board switches |
eencae | 0:21a200b880d7 | 27 | InterruptIn sw2(SW2); |
eencae | 0:21a200b880d7 | 28 | InterruptIn sw3(SW3); |
eencae | 0:21a200b880d7 | 29 | |
eencae | 0:21a200b880d7 | 30 | // error function hangs flashing an LED |
eencae | 0:21a200b880d7 | 31 | void error(); |
eencae | 0:21a200b880d7 | 32 | // setup serial port |
eencae | 0:21a200b880d7 | 33 | void init_serial(); |
eencae | 0:21a200b880d7 | 34 | // set-up the on-board LEDs and switches |
eencae | 0:21a200b880d7 | 35 | void init_K64F(); |
eencae | 0:21a200b880d7 | 36 | |
eencae | 0:21a200b880d7 | 37 | int main() |
eencae | 0:21a200b880d7 | 38 | { |
eencae | 1:dd5fb735acf1 | 39 | // initialise the board and serial port |
eencae | 0:21a200b880d7 | 40 | init_K64F(); |
eencae | 0:21a200b880d7 | 41 | init_serial(); |
eencae | 1:dd5fb735acf1 | 42 | // call the sensor init method using dot syntax |
eencae | 1:dd5fb735acf1 | 43 | tmp102.init(); |
eencae | 0:21a200b880d7 | 44 | |
eencae | 0:21a200b880d7 | 45 | while (1) { |
eencae | 0:21a200b880d7 | 46 | |
eencae | 0:21a200b880d7 | 47 | // read temperature and print over serial port |
eencae | 1:dd5fb735acf1 | 48 | float T = tmp102.get_temperature(); |
eencae | 0:21a200b880d7 | 49 | pc.printf("T = %f K\n",T); |
eencae | 0:21a200b880d7 | 50 | // small delay - 1s to match the update rate of the sensor (1 Hz) |
eencae | 0:21a200b880d7 | 51 | wait(1.0); |
eencae | 0:21a200b880d7 | 52 | |
eencae | 0:21a200b880d7 | 53 | } |
eencae | 0:21a200b880d7 | 54 | |
eencae | 0:21a200b880d7 | 55 | } |
eencae | 0:21a200b880d7 | 56 | |
eencae | 0:21a200b880d7 | 57 | void init_serial() { |
eencae | 0:21a200b880d7 | 58 | // set to highest baud - ensure terminal software matches |
eencae | 0:21a200b880d7 | 59 | pc.baud(115200); |
eencae | 0:21a200b880d7 | 60 | } |
eencae | 0:21a200b880d7 | 61 | |
eencae | 0:21a200b880d7 | 62 | void init_K64F() |
eencae | 0:21a200b880d7 | 63 | { |
eencae | 0:21a200b880d7 | 64 | // on-board LEDs are active-low, so set pin high to turn them off. |
eencae | 0:21a200b880d7 | 65 | r_led = 1; |
eencae | 0:21a200b880d7 | 66 | g_led = 1; |
eencae | 0:21a200b880d7 | 67 | b_led = 1; |
eencae | 0:21a200b880d7 | 68 | |
eencae | 0:21a200b880d7 | 69 | // since the on-board switches have external pull-ups, we should disable the internal pull-down |
eencae | 0:21a200b880d7 | 70 | // resistors that are enabled by default using InterruptIn |
eencae | 0:21a200b880d7 | 71 | sw2.mode(PullNone); |
eencae | 0:21a200b880d7 | 72 | sw3.mode(PullNone); |
eencae | 0:21a200b880d7 | 73 | |
eencae | 0:21a200b880d7 | 74 | } |