Driver for TMP06 temperature sensor. Data is sent by PWM. Tested on Hani-IoT board with TMP06BRTZ sensor.
Example usage
main.cpp
#include "mbed.h" #include "TMP06.h" int main() { TMP06 temp_sensor(P0_1); float temperature; while (true) { if(temp_sensor.read(&temperature) == SUCCESS) { printf("Temperature: %f\n", temperature); } else { printf("Error!\n"); } ThisThread::sleep_for(2000); } }
TMP06.h@2:1ff2f041925a, 2020-03-03 (annotated)
- Committer:
- Pawel Zarembski
- Date:
- Tue Mar 03 14:28:12 2020 +0100
- Revision:
- 2:1ff2f041925a
- Parent:
- 0:cee46eec60a8
blocker for rise and fall functions
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Pawel Zarembski |
0:cee46eec60a8 | 1 | /* Copyright (C) 2020 Arrow Electronics */ |
Pawel Zarembski |
0:cee46eec60a8 | 2 | |
Pawel Zarembski |
0:cee46eec60a8 | 3 | #ifndef _TMP06_H_ |
Pawel Zarembski |
0:cee46eec60a8 | 4 | #define _TMP06_H_ |
Pawel Zarembski |
0:cee46eec60a8 | 5 | |
Pawel Zarembski |
0:cee46eec60a8 | 6 | #include "mbed.h" |
Pawel Zarembski |
0:cee46eec60a8 | 7 | |
Pawel Zarembski |
0:cee46eec60a8 | 8 | #define SUCCESS 0 |
Pawel Zarembski |
0:cee46eec60a8 | 9 | #define FAILURE 1 |
Pawel Zarembski |
2:1ff2f041925a | 10 | #define SEM_TIMEOUT_MS 250 |
Pawel Zarembski |
0:cee46eec60a8 | 11 | |
Pawel Zarembski |
0:cee46eec60a8 | 12 | class TMP06 { |
Pawel Zarembski |
0:cee46eec60a8 | 13 | public: |
Pawel Zarembski |
0:cee46eec60a8 | 14 | TMP06(PinName pin); |
Pawel Zarembski |
0:cee46eec60a8 | 15 | ~TMP06(); |
Pawel Zarembski |
0:cee46eec60a8 | 16 | int read(float *temperature); |
Pawel Zarembski |
0:cee46eec60a8 | 17 | |
Pawel Zarembski |
0:cee46eec60a8 | 18 | private: |
Pawel Zarembski |
0:cee46eec60a8 | 19 | void on_rise(); |
Pawel Zarembski |
0:cee46eec60a8 | 20 | void on_fall(); |
Pawel Zarembski |
0:cee46eec60a8 | 21 | |
Pawel Zarembski |
0:cee46eec60a8 | 22 | InterruptIn _pwm_pin; |
Pawel Zarembski |
0:cee46eec60a8 | 23 | Timer _timer1; |
Pawel Zarembski |
0:cee46eec60a8 | 24 | Timer _timer2; |
Pawel Zarembski |
0:cee46eec60a8 | 25 | Semaphore _semaphore; |
Pawel Zarembski |
0:cee46eec60a8 | 26 | bool _first_run; |
Pawel Zarembski |
2:1ff2f041925a | 27 | bool _started; |
Pawel Zarembski |
0:cee46eec60a8 | 28 | }; |
Pawel Zarembski |
0:cee46eec60a8 | 29 | |
Pawel Zarembski |
0:cee46eec60a8 | 30 | #endif /* _TMP06_H_ */ |