read TI TMP102 temperature and display on SSD1306 OLED

Dependencies:   Adafruit_GFX TMP102 mbed

Fork of DisplayOled by Frank Girald

Committer:
poushen
Date:
Sun Jun 17 07:28:51 2018 +0000
Revision:
3:6fd4514ca28c
Parent:
1:c636842ce79c
a test program read TMP102's temperature and display on OLED SSD1306.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
poushen 1:c636842ce79c 1 /*
franni 0:3b87797f65fc 2 #include "mbed.h"
franni 0:3b87797f65fc 3 #include "Adafruit_SSD1306.h"
franni 0:3b87797f65fc 4
franni 0:3b87797f65fc 5 DigitalOut led1(LED_RED);
franni 0:3b87797f65fc 6
franni 0:3b87797f65fc 7 // SPI sub-class that provides a constructed default
franni 0:3b87797f65fc 8 class I2CPreInit : public I2C
franni 0:3b87797f65fc 9 {
franni 0:3b87797f65fc 10 public:
franni 0:3b87797f65fc 11 I2CPreInit(PinName sda, PinName scl) : I2C(sda, scl)
franni 0:3b87797f65fc 12 {
poushen 1:c636842ce79c 13 frequency(1000000);
poushen 1:c636842ce79c 14 //frequency(100000);
poushen 1:c636842ce79c 15 //start();
franni 0:3b87797f65fc 16 };
franni 0:3b87797f65fc 17 };
franni 0:3b87797f65fc 18
poushen 1:c636842ce79c 19 I2CPreInit myI2C(PB_9,PB_8);
franni 0:3b87797f65fc 20 Adafruit_SSD1306_I2c myOled(myI2C,NC,0x78,64,128);
franni 0:3b87797f65fc 21
franni 0:3b87797f65fc 22 int main()
franni 0:3b87797f65fc 23 {
franni 0:3b87797f65fc 24 uint16_t x=0;
franni 0:3b87797f65fc 25
franni 0:3b87797f65fc 26 myOled.begin();
franni 0:3b87797f65fc 27 myOled.printf("%ux%u Hellow World\r\n", myOled.width(), myOled.height());
franni 0:3b87797f65fc 28 myOled.display();
franni 0:3b87797f65fc 29
franni 0:3b87797f65fc 30 while(1)
franni 0:3b87797f65fc 31 {
franni 0:3b87797f65fc 32 led1 = !led1;
franni 0:3b87797f65fc 33 myOled.printf("%u\r",x);
franni 0:3b87797f65fc 34 myOled.display();
franni 0:3b87797f65fc 35 x = x + 1;
franni 0:3b87797f65fc 36 wait(1.0);
franni 0:3b87797f65fc 37 }
franni 0:3b87797f65fc 38 }
franni 0:3b87797f65fc 39
poushen 1:c636842ce79c 40 */
franni 0:3b87797f65fc 41
franni 0:3b87797f65fc 42
franni 0:3b87797f65fc 43
franni 0:3b87797f65fc 44
franni 0:3b87797f65fc 45
franni 0:3b87797f65fc 46 #include "mbed.h"
franni 0:3b87797f65fc 47 #include "Adafruit_SSD1306.h"
poushen 1:c636842ce79c 48 #include "test_TMP102.h"
franni 0:3b87797f65fc 49
franni 0:3b87797f65fc 50 class I2CPreInit : public I2C
franni 0:3b87797f65fc 51 {
franni 0:3b87797f65fc 52 public:
franni 0:3b87797f65fc 53 I2CPreInit(PinName sda, PinName scl) : I2C(sda, scl)
franni 0:3b87797f65fc 54 {
poushen 1:c636842ce79c 55 frequency(1000000);
poushen 1:c636842ce79c 56 //start();
franni 0:3b87797f65fc 57 };
franni 0:3b87797f65fc 58 };
franni 0:3b87797f65fc 59
poushen 3:6fd4514ca28c 60 //I2CPreInit myI2C(PB_9,PB_8);
poushen 3:6fd4514ca28c 61 I2CPreInit myI2C(I2C_SDA, I2C_SCL);
poushen 3:6fd4514ca28c 62 //I2CPreInit myI2C(dp5, dp27);
franni 0:3b87797f65fc 63 Adafruit_SSD1306_I2c myOled(myI2C,NC,0x78,64,128);
poushen 1:c636842ce79c 64
poushen 1:c636842ce79c 65 test_TMP102 temp1(myI2C);
franni 0:3b87797f65fc 66
franni 0:3b87797f65fc 67 int main()
franni 0:3b87797f65fc 68 {
poushen 1:c636842ce79c 69 uint16_t x=0;
franni 0:3b87797f65fc 70
poushen 1:c636842ce79c 71 // ------------ tmp102 --------------
poushen 1:c636842ce79c 72 temp1.setExtendedMode(1);
poushen 1:c636842ce79c 73 temp1.setConversionRate(2);
poushen 1:c636842ce79c 74 temp1.sleep();
poushen 1:c636842ce79c 75
poushen 1:c636842ce79c 76 // ------------ oled --------------
poushen 1:c636842ce79c 77 myOled.begin();
poushen 1:c636842ce79c 78 myOled.clearDisplay();
poushen 1:c636842ce79c 79 myOled.display();
poushen 1:c636842ce79c 80 wait(0.1);
poushen 1:c636842ce79c 81
poushen 1:c636842ce79c 82 myOled.fillCircle(64, 42, 10, 1);
poushen 1:c636842ce79c 83 myOled.display();
poushen 1:c636842ce79c 84 wait(1);
poushen 1:c636842ce79c 85 myOled.fillCircle(64, 42, 5, 0);
poushen 1:c636842ce79c 86 myOled.display();
poushen 1:c636842ce79c 87 wait(1);
poushen 1:c636842ce79c 88
poushen 1:c636842ce79c 89 myOled.clearDisplay();
poushen 1:c636842ce79c 90 myOled.display();
poushen 1:c636842ce79c 91 wait(0.1);
poushen 1:c636842ce79c 92
poushen 1:c636842ce79c 93 myOled.printf("\r\n OLED %ux%u \r\n\r\n Hello World\r\n\n", myOled.width(), myOled.height());
poushen 1:c636842ce79c 94
poushen 1:c636842ce79c 95 myOled.drawRect(0, 0, 128, 64,1);
poushen 1:c636842ce79c 96 myOled.display();
poushen 1:c636842ce79c 97 wait(0.5);
poushen 1:c636842ce79c 98 while(1)
poushen 1:c636842ce79c 99 {
poushen 1:c636842ce79c 100 temp1.oneShot();
poushen 1:c636842ce79c 101 float t1 = temp1;
poushen 1:c636842ce79c 102
poushen 1:c636842ce79c 103 //myOled.printf("%u\r ",x);
poushen 1:c636842ce79c 104 myOled.printf(" Temp: %.3f ~c\r", t1);
franni 0:3b87797f65fc 105
poushen 1:c636842ce79c 106 myOled.drawRect(0, 0, 128, 64,1);
poushen 1:c636842ce79c 107
poushen 1:c636842ce79c 108 myOled.display();
poushen 1:c636842ce79c 109 x = x + 1;
poushen 1:c636842ce79c 110 wait(0.5);
poushen 1:c636842ce79c 111 }
franni 0:3b87797f65fc 112 }
franni 0:3b87797f65fc 113
franni 0:3b87797f65fc 114
franni 0:3b87797f65fc 115
franni 0:3b87797f65fc 116
poushen 1:c636842ce79c 117