mirror of
https://github.com/RobTillaart/Arduino.git
synced 2024-10-03 18:09:02 -04:00
66 lines
1.4 KiB
C++
66 lines
1.4 KiB
C++
#pragma once
|
|
//
|
|
// FILE: DS18B20_INT.h
|
|
// AUTHOR: Rob.Tillaart@gmail.com
|
|
// VERSION: 0.2.2
|
|
// DATE: 2017-07-25
|
|
// PUPROSE: Minimalistic library for DS18B20 temperature sensor
|
|
// uses only integer math (no float to minimize footprint)
|
|
// URL: https://github.com/RobTillaart/DS18B20_INT
|
|
// https://github.com/RobTillaart/DS18B20_RT
|
|
|
|
//
|
|
// BOTTOM VIEW
|
|
//
|
|
// PIN MEANING
|
|
// /---+
|
|
// / o | 1 GND
|
|
// | o | 2 DATA
|
|
// \ o | 3 VCC
|
|
// \---+
|
|
//
|
|
|
|
|
|
#define DS18B20_INT_LIB_VERSION (F("0.2.2"))
|
|
|
|
#include "Arduino.h"
|
|
#include "OneWire.h"
|
|
|
|
// Error Code
|
|
#define DEVICE_DISCONNECTED -127
|
|
|
|
typedef uint8_t DeviceAddress[8];
|
|
|
|
|
|
class DS18B20_INT
|
|
{
|
|
public:
|
|
explicit DS18B20_INT(OneWire * ow);
|
|
bool begin(uint8_t retries = 3);
|
|
bool isConnected(uint8_t retries = 3);
|
|
|
|
void requestTemperatures(void);
|
|
int16_t getTempC(void);
|
|
bool isConversionComplete(void);
|
|
bool getAddress(uint8_t* buf);
|
|
|
|
bool setResolution(uint8_t bits = 9);
|
|
uint8_t getResolution(); // returns cached value
|
|
|
|
int16_t getTempCentiC(void);
|
|
|
|
|
|
private:
|
|
DeviceAddress _deviceAddress;
|
|
OneWire* _oneWire;
|
|
bool _addressFound;
|
|
|
|
uint8_t _resolution;
|
|
int16_t _readRaw();
|
|
bool _setResolution();
|
|
};
|
|
|
|
|
|
// -- END OF FILE --
|
|
|