Для начала отключите ВСЕ от вашего ардуина и подцепите только 1 датчик, получите с него значения и выводите в сериал и смотрите будут проблемы или нет, если проблем не будет докиньте второй датчик и смотрите, если и дальше проблем не будит докинте уже ЛСД и если появятся проблемы тогда его включение вносит проблему, и тогда уже куда проще понимать. А если проблема вылезет на пустом ардуине с одним датчиком то уже значит или датчик или дуня. Вы собрали все в кучу и пытаетесь найти в куче проблему, разделите проект на составляющие и протестируйте каждую составляющею и выясните появление какой составляющей приводит к проблеме это называется локализацией проблемы, локаизовав будет уже в разы проще понять что случилось
В общем всем спасибо за советы! короче разобрался... цепанул питание не от usb а через VIN.... и все работает, когда подключен к компьютеру то скачет, почему хз его знает, походу при обращении пк к юсб так и происходит котовасия, или питания на все не хватает от usb... вопрос можно одновременно через VIN и USB ардуино подключать или нельзя? Просто себе на будущее, а то все время перетыкивать провода от вин к юсб... неудобно.
Для внешних жестких дисков бывают в природе шнурки с дополнительным хвостом USB. Через такой шнурок можно высосать из компа вдвое больше тока.
Извините что в этой теме спрашиваю но не могли бы вы подсказать как вывести на дисплей только целую чать температуры ? Спасибо Извиняюсь разобрался. Правда без округления но оно мне так точно не надо
попробовал ваш скетч но в этом месте выдает ошибку.... попробовал скетч другого человека, там присутствует такая же строчка и на ней такая же ошибка. вопрос - в чем проблема???
ща) Код (Text): sketch_mar20a:11: error: no matching function for call to 'DallasTemperature::DallasTemperature(OneWire*)' C:\Documents and Settings\Администратор\Мои документы\Arduino\libraries\DallasTemperature/DallasTemperature.h:63: note: candidates are: DallasTemperature::DallasTemperature(StratBase*) C:\Documents and Settings\Администратор\Мои документы\Arduino\libraries\DallasTemperature/DallasTemperature.h:38: note: DallasTemperature::DallasTemperature(const DallasTemperature&) sketch_mar20a.ino: In function 'void setup()': sketch_mar20a:25: error: no matching function for call to 'DallasTemperature::begin()' C:\Documents and Settings\Администратор\Мои документы\Arduino\libraries\DallasTemperature/DallasTemperature.h:69: note: candidates are: void DallasTemperature::begin(uint8_t) C:\Documents and Settings\Администратор\Мои документы\Arduino\libraries\DallasTemperature/DallasTemperature.h:78: note: void DallasTemperature::begin(NewOneWire&) sketch_mar20a.ino: In function 'void readtemp()': sketch_mar20a:54: error: 'class DallasTemperature' has no member named 'requestTemperatures' sketch_mar20a:55: error: 'class DallasTemperature' has no member named 'getTempCByIndex' sketch_mar20a:56: error: 'class DallasTemperature' has no member named 'getTempCByIndex' sketch_mar20a:58: error: 'class DallasTemperature' has no member named 'getTempCByIndex' sketch_mar20a:60: error: 'class DallasTemperature' has no member named 'getTempCByIndex'
Попробуйте другую версию скачать У меня такое было с переходником I2C на LSD три библиотеки перебрал прежде чем заработал...
Так скорей всего они конфликтуют еще есть вариант arduino - 023 Я обычно если меняю то старый вариант удаляю и подменяю новый вариант.
в этом же архиве находится библиотека OneWire и она работает... а название библиотеки DallasTemperature.h должно быть оранжевого цвета??? остальные библиотеки оранжевым цветом выделяется, а эта нет...
ув. sanik. вы были все-таки правы!!!) правда с 6 архива попустило скетч))) все маслает. остается один только вопрос: где мы задаем вход от датчика температуры, "#define ONE_WIRE_BUS 2" - это он??? и еще. на дисплее во втором ряду в самом низу есть типа снежинка. 1. что это? 2. зачем она там нужна? 3. и в какой строке скетча она прописывается????
На свой вопрос вы сами ответили Работа снежинки вот здесь точно не знаю ну вроде как просто так мигает Код (Text): lcd.setCursor ( 15, 1 ); lcd.print("*"); readtemp(); delay (500); lcd.setCursor ( 15, 1 ); lcd.print(" "); delay (500);
Имеется дисплей 16х2 (подключен по i2c) и два датчика температуры. Все нормально отображается, но данные температуры мигаю (приблизительно с интервалом 1 секунда) - хочется сделать, чтобы постоянно горели. Не подскажите где копать? И второй вопрос - температура показывается до сотых - как округлить до десятых? До целых? Заранее благодарен.
А зачем инициализация дисплея при каждом выводе в функции printTemperature? Логично вынести lcd.init(); // инициализация LCD lcd.backlight(); // включаем подсветку lcd.clear(); // очистка дисплея В setup() При выводе данных в то же место, они будут сами затирать предыдущее значение. Если новые данные короче, то можно добавить в конце еще пробел Кроме того, код несколько запутан. В printTemperature выводятся заголовки, а в loopсами значения температуры. Логичнее было бы все вынести в функцию. И вызывать ее один раз. Чтобы не дергать лишний раз датчик, логично было бы в функции считать значение в переменную, а затем выводить на экран и в Serial сначала для одного датчика, потом для другого. А по приведенному коду получается. что сначала очищается экран и выводятся заголовки, потом выводится температура обоих датчиков, потом опять очищается экран и выводятся заголовки. Чтобы выводить один символ после запятой, если не ошибаюсь, в lcd.print(sensors.getTempC(Thermometer2)); надо добавить еще один параметр - 1 lcd.print(sensors.getTempC(Thermometer2),1); Для другого датчика аналогично.