Приветствую, есть ли у кого кусок скетча проверенный для измерения температуры с помощью ds18d20,а то уже кучу всего перебрал-перепробовал, толком нормально не получается измерить, температуру показывает но изменяется медленно, а минус вообще жестко врет.
А посмотреть у @ИгорьК посты на эту тему никак? Проблема в переводе дополнительного кода? Так там все просто - побитовая инверсия +1. Отрицательная или положительная температура у нас определяется самым старшим битом. Все это есть в интернетах.
Я же спросил "а нет ли куска скетча" ?, а не о том "а не подскажете ли, есть ли в интернете скетчи с измерением отрицательной температуры" ? Не подскажете ли есть в примерах что-нибудь, блин просто спросил Ну нет ли у кого нибудь кусочка, ну не просто же так написал данный текст...
Измеряю вот таким методом. Использую в приложении BlynK., опрашиваю интервалом раз в 30 секунд. void sendTemp() { inDS = 0; sensors.requestTemperatures(); while (inDS < 10){ TempDS[inDS] = sensors.getTempCByIndex(inDS); if (TempDS[inDS] == -127.00){TempDS[inDS]= 80; break; } // пока не доберемся до неподключенного inDS++;} for (int i=0; i < inDS; i++); Blynk.virtualWrite(V10, TempDS[0]); // температура в Blynk }
Уважаемый, речь шла о ссылочке, коих вы много посмотрели. И потом, у всех получается код красиво форматировать, а у вас - нет. Датчики обижаются и плохо работают от этого.
... Ну вот об этом. Интересно же повторить ваши приключения. Или не рассказывайте как вы тяжко трудитесь на ниве ардуиностроения. Просто те кто реально в теме начинают думать что вы их за лохов держите.
никаких скетчей у меня, разумеется, нет (знаете ли - не балуюсь), а вот кусок кода есть Код (C++): if (receivePayload.temperature & 0xf800){ receivePayload.temperature = ~(receivePayload.temperature)+1; temperature = 0 - (float)receivePayload.temperature / 16.0; } else { temperature = (float)receivePayload.temperature / 16.0; }