Open k008 opened 2 years ago
Привет, что такое 2х контактное подключение?
Это когда ноги питания и земли датчика замкнуты и через резистор идут на питание к arduino, а налога данных подключается как обычно. Его ещё называют "паразитное подключение"
А, ну вот паразитным оно и называется. В чем может быть проблема не знаю, у меня в тестах отлично работает на всех платформах. Возможно тайминги жёстче чем в других либах, но всё сделано чисто по даташиту
Куда копать?
Не работает пример или свой код? Если свой код, то есть ли в программе прерывания?
Не работает пример
Попробую смягчить тайминги, кину сюда файлик для теста ночью или уже завтра
Вообще это предельно странно, потому что библиотека проверяет корректность полученных данных. То есть датчик подтверждает, что температура 10.63
В файле oneWire.cpp в самом низу заменить функцию на эту
uint8_t oneWire_read(uint8_t pin) {
uint8_t data = 0;
for (uint8_t i = 8; i; i--) {
data >>= 1;
MOW_CLI();
pinMode(pin, OUTPUT);
delayMicroseconds(2);
pinMode(pin, INPUT);
delayMicroseconds(20);
if (digitalRead(pin)) data |= (1 << 7);
delayMicroseconds(40);
MOW_SEI();
}
return data;
}
А у меня нет такой функции
Значит у тебя другая библиотека, не microds18b20
У меня библиотека http://www.pjrc.com/teensy/td_libs_OneWire.html
Эм, а зачем тогда писать мне в issue?..
В файле oneWire.cpp в самом низу заменить функцию на эту - Такой файл в чужой библиотеке, а вашей он называется, microOneWire.cpp. Я сразу про это не подумал.
Поправил в вашей библиотеке, показывает 2.88, вместо 23.12
Точно, я неправильно написал название файла.
При обычном подключении работает корректно?
Корректно работает с библиотекой OneWire, а с вашей не хочет
Какой микроконтроллер используется? Какая версия библиотеки?
Режим паразитного питания не поддерживается библиотекой, могу попробовать добавить. Но сначала нужно разобраться почему не работает на обычном питании
Библиотека работает с 1820 или 18s20?
Только с теми, которые в названии - microds18b20
Паразитное планирую добавить. Про 1820 никогда не слышал, но сделать можно все что угодно
Здравствуйте, на arduino nano при 2х контактном подключении, показывает 10.63 температуру (температура меняется только на ошибку), при обычном подключении 3.00 градусов и меняется при нагреве.
При этом датчик и соединение работает, так было проверено другой библиотекой Подскажите как исправить?