read TI TMP102 temperature and display on SSD1306 OLED
Dependencies: Adafruit_GFX TMP102 mbed
Fork of DisplayOled by
main.cpp@3:6fd4514ca28c, 2018-06-17 (annotated)
- 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?
User | Revision | Line number | New 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 |