Не корректно отображает температуру
- Войдите на сайт для отправки комментариев
Собственно проблема в следующем - при использовании как аналогового (LM35) так и цифрового (DS18B20) датчика температуры симптомы одни и те же: Если подключить только датчк температуры, либо LM35 либо DS18B20, и использовать базовый скетч из примеров, то все в порядке - отображение температуры корректное, даже если немного усложнить кнопками или диодами тоже работает, но при использовани сдвигового регистра (74HC595) и соответственно библиотек (DallasTemperature.h, SPI.h) начинаются непонятки, тоесть температура датчика DS18B20 все время 0, а аналогового примерно 16 гр. и хоть грей хоть охлождай все равно не чего не меняется.
С бубном ходил, перечитал кучу форумов но ответа не нашел. Подскажите новичку!
Честно говоря не работал, c этим железом, но из общих соображений возникают такие вопросы:
1. Зачем? Для экономии ног? Так SPI сама-по себе позволяет подключать несколько ведомых устройст на одну линию. Или вы регистром пытаетесь выбирать "активное в данный момент" устройство?
2. Разве 74HC595 предназначен не для размножения выходов, а не входов?
3. Разве 74HC595 может работать с аналоговым сигналом?
Честно говоря не работал, c этим железом, но из общих соображений возникают такие вопросы:
1. Зачем? Для экономии ног? Так SPI сама-по себе позволяет подключать несколько ведомых устройст на одну линию. Или вы регистром пытаетесь выбирать "активное в данный момент" устройство?
2. Разве 74HC595 предназначен не для размножения выходов, а не входов?
3. Разве 74HC595 может работать с аналоговым сигналом?
Я наверное неправильно выразился, ибо SPI используется сугубо для датчика температуры (в будущем планируется несколько), аналоговый датчик естественно подсоеденен к отдельному аналоговому входу, а регистр используется действительно для увеличения выходов. Проблема в том что при использовании регистра (разумеется на отдельном выводе ардуино) вместе с каким либо датчиком показания последнего некорректны.
Если нужно могу привести пример промежуточного (тестового) варианта кода, сам работаю с системами вентиляции, кондиционирования, отопления... так вот при автоматизации онных часто приходится сталкиваться с решением задач автоматизации тех или иных механизмов, решения часто не тривиальны. Вот и решил, в качестве эксперимента попробовать реализовать простенькую схему автоматики не аппаратно а спомощью ардуино + увлекался когдато робототехникой сейчас появилось свободное время да и элементы стали гораздо доступнее.
Собственно отвлекся вот тестовый вариант, просьба с ходу не пинать он очень сырой.
Ну не вчитываясь в код, первое что бросается в глаза pinMode(pinTempAnalog, OUTPUT);
Ну не вчитываясь в код, первое что бросается в глаза pinMode(pinTempAnalog, OUTPUT);
Да это косяк, но суть не в этом. Моего вопроса это не решает.