====== DS18B20 ======
DS18B20 are small true temperature sensors. You can find them easily on ebay for a couple of $.
===== Default settings: =====
By default the bugOne use PD5 for this sensors. You can tweak this in __devices/onewire.h__
#define OW_PIN PD5
#define OW_IN PIND
#define OW_OUT PORTD
#define OW_DDR DDRD
The default setting for power supply is parasite. Just power the device through a 4.7k pull-up on pin DQ. You can change this in
__devices/ds18x20.c__
int8_t ds18x20_read(struct packet_t *packet) {
uint16_t temperature;
uart_putstr_P(PSTR("ds18x20 read\r\n"));
DS18X20_start_meas(DS18X20_POWER_PARASITE,NULL);
_delay_ms(DS18B20_TCONV_12BIT);
DS18X20_read_decicelsius_single(DS18B20_FAMILY_CODE, &temperature);
return set_data_int16(packet, temperature);
}
==== Debug ====
* If you receive dumb values from a sensor, usually mean the bugOne can find this sensor. This can be a wiring error, or a wrong power mode (check parasite mode).
* If you receive 850 (85.0°), usually mean the bugOne found the sensor but was unable to read the value. This usually occurs with bad connexion, for example on a breadboard. I spent some time on this error, but it's always a hardware failure not a software bug.