temperature sensor with uOLED 96 g1
Dependencies: OLED160G1 mbed uOLED
Fork of DS18B20 by
Revision 1:b2ea1e9d90df, committed 2012-10-31
- Comitter:
- Renato
- Date:
- Wed Oct 31 12:26:00 2012 +0000
- Parent:
- 0:03ec282c2908
- Commit message:
- Test v1
Changed in this revision
diff -r 03ec282c2908 -r b2ea1e9d90df DS18B20.cpp --- a/DS18B20.cpp Fri Jan 29 19:01:56 2010 +0000 +++ b/DS18B20.cpp Wed Oct 31 12:26:00 2012 +0000 @@ -6,6 +6,7 @@ // Device byte commands over 1-wire serial enum COMMANDS { READ_ROM = 0x33, CONVERT = 0x44, READ_SCRATCHPAD = 0xBE, SKIP_ROM = 0xCC }; + // device onboard register layout typedef struct { uint8_t LSB; @@ -76,11 +77,12 @@ } // temperature is store as 7.4 fixed point format (assuming 12 bit conversion) -void displayTemperature(Serial& s) { +void showTemperature(float *f) { DoConversion(); uint32_t temp = GetTemperature(); - float f = (temp & 0x0F) * 0.0625; // calculate .4 part - f += (temp >> 4); // add 7.0 part to it - s.printf("Temp is %2.1fC\n\r", f); // display in 2.1 format + *f = (temp & 0x0F) * 0.0625; // calculate .4 part + *f += (temp >> 4); // add 7.0 part to it + //return(f); + //s.printf("Temp is %2.1fC\n\r", f); // display in 2.1 format }
diff -r 03ec282c2908 -r b2ea1e9d90df DS18B20.h --- a/DS18B20.h Fri Jan 29 19:01:56 2010 +0000 +++ b/DS18B20.h Wed Oct 31 12:26:00 2012 +0000 @@ -1,22 +1,23 @@ -#ifndef _DS18B20_ -#define _DS18B20_ - -#include <stdint.h> -#include "mbed.h" - -// Device Faimly ID and Setial number information -typedef union { - uint8_t rom[8]; - struct { - uint8_t familyCode; - uint8_t serialNo[6]; - uint8_t CRC; - } BYTES; -} ROM_Code_t; - -ROM_Code_t ReadROM() ; - -// temperature is store as 7.4 fixed point format (assuming 12 bit conversion) -void displayTemperature(Serial& s) ; - +#ifndef _DS18B20_ +#define _DS18B20_ + +#include <stdint.h> +#include "mbed.h" + +// Device Faimly ID and Setial number information +typedef union { + uint8_t rom[8]; + struct { + uint8_t familyCode; + uint8_t serialNo[6]; + uint8_t CRC; + } BYTES; +} ROM_Code_t; + +ROM_Code_t ReadROM() ; + +// temperature is store as 7.4 fixed point format (assuming 12 bit conversion) +void displayTemperature(Serial& s) ; +void showTemperature(float *f); + #endif \ No newline at end of file
diff -r 03ec282c2908 -r b2ea1e9d90df OLED160G1.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/OLED160G1.lib Wed Oct 31 12:26:00 2012 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/Renato/code/OLED160G1/#c22a582f62c0
diff -r 03ec282c2908 -r b2ea1e9d90df main.cpp --- a/main.cpp Fri Jan 29 19:01:56 2010 +0000 +++ b/main.cpp Wed Oct 31 12:26:00 2012 +0000 @@ -1,28 +1,51 @@ #include "mbed.h" -#include <stdint.h> +#include "stdint.h" #include "DS18B20.h" +#include "OLED160G1.h" +#include "uOLED.h" -DigitalInOut sensor(p5); // sensor connected to pin 5 + +DigitalInOut sensor(p23); // sensor connected to pin 23 + +OLED160G1 oled(p9, p10, p8); +uOLED uoled(p9, p10, p8); Ticker timer; // used for our microsec timing Serial pc(USBTX, USBRX); // serial comms over usb back to console +float temp=0; + + int main() { - pc.printf("\n\r=====================================================\n\r"); - pc.printf("DS18B20 Configuration\n\r"); + + /*oled.init(); + oled.eraseScreen(); + oled.setTextBackgroundType(OLED_SET_TEXT_OPAQUE); + oled.setFontSize(0); + */ //uOLED initialization... + uoled.init(); + + + //oled.printf("===========\n"); + //oled.printf("DS18B20 Config\n"); sensor.mode(PullUp); ROM_Code_t ROM_Code = ReadROM(); - pc.printf("Family code: 0x%X\n\r", ROM_Code.BYTES.familyCode); - pc.printf("Serial Number: "); + /*oled.printf("Family code: 0x%X\n", ROM_Code.BYTES.familyCode); + oled.printf("Serial Number: \n"); for (uint32_t i = 6; i != 0; --i) { - pc.printf("%02X%s", ROM_Code.BYTES.serialNo[i-1], (i != 1)?":":"\r\n"); + oled.printf("%02X%s", ROM_Code.BYTES.serialNo[i-1], (i != 1)?":":"\n"); } - pc.printf("CRC: 0x%X\r\n", ROM_Code.BYTES.CRC); - - pc.printf("\n\rRunning temperature conversion...\n\r"); + oled.printf("CRC: 0x%X\n", ROM_Code.BYTES.CRC); + */ + oled.locate(0,1); + uoled.printf("Convertendo...\n"); + //uoled.drawText(1, 3, 3, 200, 100, 40, "Convertendo...\n"); while (1) { - displayTemperature(pc); + showTemperature(&temp); + oled.locate(2,3); + oled.setFontSize(2); + oled.printf("%.2f C",temp); wait(10); } }
diff -r 03ec282c2908 -r b2ea1e9d90df mbed.bld --- a/mbed.bld Fri Jan 29 19:01:56 2010 +0000 +++ b/mbed.bld Wed Oct 31 12:26:00 2012 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/mbed_official/code/mbed/builds/49a220cc26e0 +http://mbed.org/users/mbed_official/code/mbed/builds/e2ed12d17f06 \ No newline at end of file
diff -r 03ec282c2908 -r b2ea1e9d90df uOLED.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uOLED.lib Wed Oct 31 12:26:00 2012 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/Nakor/code/uOLED/#7ad5bf258a1e