HDC1000 library
Dependents: Condensation_Monitor mbed_HDC1000 BLE_Condensation_Monitor GR-PEACH_TAMORI
See http://developer.mbed.org/users/yasuyuki/notebook/HDC1000/
HDC1000.cpp@1:45126276dbf3, 2015-07-10 (annotated)
- Committer:
- yasuyuki
- Date:
- Fri Jul 10 15:00:59 2015 +0000
- Revision:
- 1:45126276dbf3
- Parent:
- 0:82c214412005
unsigned short
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
yasuyuki | 0:82c214412005 | 1 | //********************** |
yasuyuki | 0:82c214412005 | 2 | // HDC1000.cpp for mbed |
yasuyuki | 0:82c214412005 | 3 | // |
yasuyuki | 0:82c214412005 | 4 | // HDC1000 hdc1000(P0_5,P0_4); |
yasuyuki | 0:82c214412005 | 5 | // or |
yasuyuki | 0:82c214412005 | 6 | // I2C i2c(P0_5,P0_4); |
yasuyuki | 0:82c214412005 | 7 | // HDC1000 hdc1000(i2c); |
yasuyuki | 0:82c214412005 | 8 | // |
yasuyuki | 0:82c214412005 | 9 | // (C)Copyright 2015 All rights reserved by Y.Onodera |
yasuyuki | 0:82c214412005 | 10 | // http://einstlab.web.fc2.com |
yasuyuki | 0:82c214412005 | 11 | //********************** |
yasuyuki | 0:82c214412005 | 12 | |
yasuyuki | 0:82c214412005 | 13 | #include "mbed.h" |
yasuyuki | 0:82c214412005 | 14 | #include "HDC1000.h" |
yasuyuki | 0:82c214412005 | 15 | |
yasuyuki | 0:82c214412005 | 16 | HDC1000::HDC1000 (PinName sda, PinName scl) : _i2c(sda, scl) { |
yasuyuki | 0:82c214412005 | 17 | init(); |
yasuyuki | 0:82c214412005 | 18 | } |
yasuyuki | 0:82c214412005 | 19 | HDC1000::HDC1000 (I2C& p_i2c) : _i2c(p_i2c) { |
yasuyuki | 0:82c214412005 | 20 | init(); |
yasuyuki | 0:82c214412005 | 21 | } |
yasuyuki | 0:82c214412005 | 22 | |
yasuyuki | 0:82c214412005 | 23 | |
yasuyuki | 0:82c214412005 | 24 | void HDC1000::get() |
yasuyuki | 0:82c214412005 | 25 | { |
yasuyuki | 0:82c214412005 | 26 | |
yasuyuki | 0:82c214412005 | 27 | // Trigger |
yasuyuki | 0:82c214412005 | 28 | buf[0] = 0x00; // Pointer |
yasuyuki | 1:45126276dbf3 | 29 | _i2c.write(HDC1000_ADDR, buf, 1); // with stop |
yasuyuki | 0:82c214412005 | 30 | |
yasuyuki | 0:82c214412005 | 31 | // Wait 6.35ms + 6.5ms |
yasuyuki | 0:82c214412005 | 32 | wait_ms(20); |
yasuyuki | 0:82c214412005 | 33 | |
yasuyuki | 0:82c214412005 | 34 | // get data |
yasuyuki | 0:82c214412005 | 35 | _i2c.read( HDC1000_ADDR, buf, 4); |
yasuyuki | 0:82c214412005 | 36 | |
yasuyuki | 0:82c214412005 | 37 | } |
yasuyuki | 0:82c214412005 | 38 | |
yasuyuki | 1:45126276dbf3 | 39 | unsigned short HDC1000::humidity() |
yasuyuki | 0:82c214412005 | 40 | { |
yasuyuki | 0:82c214412005 | 41 | |
yasuyuki | 0:82c214412005 | 42 | // get hum |
yasuyuki | 0:82c214412005 | 43 | get(); |
yasuyuki | 0:82c214412005 | 44 | hum.byte.HB=buf[2]; |
yasuyuki | 0:82c214412005 | 45 | hum.byte.LB=buf[3]; |
yasuyuki | 0:82c214412005 | 46 | return hum.Val; |
yasuyuki | 0:82c214412005 | 47 | |
yasuyuki | 0:82c214412005 | 48 | } |
yasuyuki | 0:82c214412005 | 49 | |
yasuyuki | 1:45126276dbf3 | 50 | unsigned short HDC1000::temperature() |
yasuyuki | 0:82c214412005 | 51 | { |
yasuyuki | 0:82c214412005 | 52 | |
yasuyuki | 0:82c214412005 | 53 | // get temp |
yasuyuki | 0:82c214412005 | 54 | get(); |
yasuyuki | 0:82c214412005 | 55 | temp.byte.HB=buf[0]; |
yasuyuki | 0:82c214412005 | 56 | temp.byte.LB=buf[1]; |
yasuyuki | 0:82c214412005 | 57 | return temp.Val; |
yasuyuki | 0:82c214412005 | 58 | |
yasuyuki | 0:82c214412005 | 59 | } |
yasuyuki | 0:82c214412005 | 60 | |
yasuyuki | 0:82c214412005 | 61 | void HDC1000::init() |
yasuyuki | 0:82c214412005 | 62 | { |
yasuyuki | 1:45126276dbf3 | 63 | |
yasuyuki | 1:45126276dbf3 | 64 | wait_ms(15); |
yasuyuki | 1:45126276dbf3 | 65 | |
yasuyuki | 0:82c214412005 | 66 | // Set configuration |
yasuyuki | 0:82c214412005 | 67 | buf[0] = 0x02; // Pointer |
yasuyuki | 0:82c214412005 | 68 | buf[1] = 0x10; // High byte |
yasuyuki | 0:82c214412005 | 69 | buf[2] = 0x00; // Low byte |
yasuyuki | 0:82c214412005 | 70 | _i2c.write(HDC1000_ADDR, buf, 3); |
yasuyuki | 0:82c214412005 | 71 | } |
yasuyuki | 0:82c214412005 | 72 | |
yasuyuki | 0:82c214412005 | 73 | |
yasuyuki | 1:45126276dbf3 | 74 |