BayEOSArduino Library
DS18B20.h
1 
12 #ifndef ds18b20_h
13 #define ds18b20_h
14 #define NAN 0x7fffffff
15 #ifndef DS18B20_CHANNELS
16 #define DS18B20_CHANNELS 16
17 #endif
18 // Device resolution
19 #define TEMP_9_BIT 0x1F // 9 bit
20 #define TEMP_10_BIT 0x3F // 10 bit
21 #define TEMP_11_BIT 0x5F // 11 bit
22 #define TEMP_12_BIT 0x7F // 12 bit
23 
24 #include <OneWire.h>
25 #include <inttypes.h>
26 #include <EEPROM.h>
27 #include <WString.h>
28 
29 
30 
31 class DS18B20 : protected OneWire{
32 public:
36  DS18B20(uint8_t pin,uint8_t channel_offset=0,uint8_t ds18b20_channels=DS18B20_CHANNELS);
37 
38 
42  ~DS18B20() { free(_addr); }
43 
44 
45 
49  void t_conversion(void);
50 
54  void setResolution(uint8_t newResolution);
55 
60  const uint8_t* search(void);
61 
66  uint8_t checkSensors(void);
67 
72  uint8_t getNextChannel(void);
73 
77  uint8_t addSensor(const uint8_t* new_addr,uint8_t channel);
78 
83  uint8_t getNextFreeChannel(void);
84 
89  uint8_t getChannel(const uint8_t* addr);
90 
94  const uint8_t* getChannelAddress(uint8_t channel) const;
95 
100  uint8_t deleteChannel(const uint8_t* addr);
101 
108  uint8_t readChannel(uint8_t channel,float* f,uint8_t tries=1);
109 
115  uint8_t readAddrFromEEPROM(uint8_t channel);
116 
122  uint8_t setAllAddrFromEEPROM(void);
123 
129  int setAllAddr(void);
130 
134  void writeAddrToEEPROM(uint8_t channel);
135 
139  const String addr2String(const uint8_t* addr);
140 
141 
145  uint8_t getNumberOfChannels(void);
146 
147 
148 private:
149  uint8_t _channel_offset;
150  uint8_t _ds18b20_channels;
151  uint8_t* _addr;
152  uint8_t _new_addr[8];
153  uint8_t _data[12];
154  uint8_t _current_channel;
155 
156 };
157 
158 
159 
160 #endif
Definition: DS18B20.h:31
uint8_t readAddrFromEEPROM(uint8_t channel)
Definition: DS18B20.cpp:66
const String addr2String(const uint8_t *addr)
Definition: DS18B20.cpp:199
uint8_t readChannel(uint8_t channel, float *f, uint8_t tries=1)
Definition: DS18B20.cpp:147
uint8_t setAllAddrFromEEPROM(void)
Definition: DS18B20.cpp:81
void setResolution(uint8_t newResolution)
Definition: DS18B20.cpp:114
uint8_t deleteChannel(const uint8_t *addr)
Definition: DS18B20.cpp:175
uint8_t getNextChannel(void)
Definition: DS18B20.cpp:14
uint8_t getChannel(const uint8_t *addr)
Definition: DS18B20.cpp:188
uint8_t getNextFreeChannel(void)
Definition: DS18B20.cpp:168
void writeAddrToEEPROM(uint8_t channel)
Definition: DS18B20.cpp:106
int setAllAddr(void)
Definition: DS18B20.cpp:89
const uint8_t * search(void)
Definition: DS18B20.cpp:30
DS18B20(uint8_t pin, uint8_t channel_offset=0, uint8_t ds18b20_channels=DS18B20_CHANNELS)
Definition: DS18B20.cpp:4
uint8_t addSensor(const uint8_t *new_addr, uint8_t channel)
Definition: DS18B20.cpp:58
uint8_t checkSensors(void)
Definition: DS18B20.cpp:40
~DS18B20()
Definition: DS18B20.h:42
const uint8_t * getChannelAddress(uint8_t channel) const
Definition: DS18B20.cpp:184
void t_conversion(void)
Definition: DS18B20.cpp:23
uint8_t getNumberOfChannels(void)
Definition: DS18B20.cpp:208