mirror of
https://github.com/RobTillaart/Arduino.git
synced 2024-10-03 18:09:02 -04:00
85 lines
2.0 KiB
C++
85 lines
2.0 KiB
C++
#pragma once
|
|
//
|
|
// FILE: DS1821.h
|
|
// AUTHOR: Rob Tillaart
|
|
// VERSION: 0.3.3
|
|
// DATE: 2014-10-05
|
|
// PURPOSE: Arduino library for DS1821 temperature sensor
|
|
// URL: https://github.com/RobTillaart/DS1821
|
|
//
|
|
|
|
// BOTTOM VIEW
|
|
//
|
|
// PIN MEANING
|
|
// /---+
|
|
// / o | 1 GND
|
|
// | o | 2 DATA
|
|
// \ o | 3 VCC
|
|
// \---+
|
|
|
|
|
|
#include "Arduino.h"
|
|
#include "OneWire.h"
|
|
|
|
|
|
#define DS1821_H_LIB_VERSION (F("0.3.3"))
|
|
|
|
#define DS1821_RESET_OK 0
|
|
#define DS1821_RESET_ERROR -999
|
|
|
|
|
|
class DS1821
|
|
{
|
|
public:
|
|
DS1821(OneWire* ow);
|
|
|
|
// THERMOMETER MODE
|
|
int requestTemperature();
|
|
int requestContinuous();
|
|
int stopContinuous();
|
|
|
|
int conversionReady();
|
|
float readTemperature();
|
|
int error() { int e = _error; _error = 0; return e; };
|
|
|
|
// High and low temperature 'alarm' flags.
|
|
int setLow(int8_t lo);
|
|
int getLow();
|
|
int setHigh(int8_t hi);
|
|
int getHigh();
|
|
// flags in configuration register => 1 = triggered since clear
|
|
int getHighFlag();
|
|
int clrHighFlag();
|
|
int getLowFlag();
|
|
int clrLowFlag();
|
|
|
|
// THERMOSTAT CONFIG
|
|
// - be sure to read datasheet first!
|
|
// - check the example
|
|
// - DQ pin must be same the oneWire pin!
|
|
int setOneWireMode(uint8_t VDD, uint8_t DQ);
|
|
int setPolarity(int activeState); // HIGH or LOW
|
|
int getPolarity();
|
|
int setThermostatMode();
|
|
|
|
private:
|
|
OneWire * _oneWire;
|
|
int _error;
|
|
|
|
int _reset() { _error = _oneWire->reset(); return _error; };
|
|
void _command(uint8_t cmd) { _oneWire->write(cmd); };
|
|
uint8_t _readByte() { return _oneWire->read(); };
|
|
uint8_t _waitForNVB();
|
|
int _getConfigFlag(uint8_t flag);
|
|
int _setConfigFlag(uint8_t flag);
|
|
int _clrConfigFlag(uint8_t flag);
|
|
int _readConfig();
|
|
int _writeConfig(uint8_t val);
|
|
|
|
uint8_t _VDD;
|
|
uint8_t _DQ;
|
|
};
|
|
|
|
|
|
// -- END OF FILE --
|