arduino+DS18b20+MAx7219 нужно разобратся
- Войдите на сайт для отправки комментариев
Ср, 23/11/2016 - 23:26
Всем доброго времени суток. Не могу найти удачный пример работы arduino+DS18b20+MAx7219.
Необходимо форматировать данные приходящие с DS ки чтобы раскидать по разрядам. Кто уже сталкивался?
Да, все сталкивались. Чего конкретно надо?
Как мсформировать данные в 4 переменных для вывода на 7сегментник, отделив целые от дробных частей.
В каких "4 переменных" и какие данные? Вы можете изъясняться яснее? А ещё лучше, приведите свой код и объясните что именно у Вас не получается.
float tempC = sensors.getTempC(deviceAddress); // читаем данные ds18b20
Как полученную переменню tempC разделить на 4 переменных (десятки, единицы, десятные, сотые)
Уможьте 100 и присвойте целой переменной (пусть N).
А дальше, как обычно
Сотые - остаток от деления N на 10.
Десятые - остаток от деления "N/10" на 10
Единицы - остаток от деления "N/100" на 10
Десятки - N/1000
Компилято р выдаёт ошибку
А чего ему не выдавать, если функция getTemp не определена? Либо определите, либо, если она библиотечная, правильно используйте. Как именно правильно - я не знаю, скетч-то у Вас секретный и Вы его не показываете.
Это уже другой (изменённый) скетч. Сообщение было не от него. Вот смотрите, в сообщении было
А в скетче в строке 88 ничего похожего на строку, приведённую в сообщении нет.
Я попробую угадать, что там, но впредь давайте так: если Вам нужна помощь, то Вы показываете скетч и его сообщения, а не заставляется меня головоломки решать.
Итак, в данной версии скетча сообщение по идее должно ругаться не на строку 88, как раньше, а на строку 86
Здесь Вы вызываете функцию getTemp(). Что это за функция? Где она определена? Больше в скетче она нигде не упоминается.
Вот об этом Вам компилятор и говорит, что он не знает такой функции, и не понимает что именно в этом месте должно быть вызвано.
Спасибо за подсказку, действительно из библиотеки версии 3.7.3, функцию вызывал неправильно. Чуть всё подправил, поставил резолюцию 12bit для более плавных показаний.
Ещё такой вопрос: как определить знак отрицательной температуры и сделать смещение знака?
Ещё такой вопрос: как определить знак отрицательной температуры и сделать смещение знака?
А как Вы хотите? Сколько места у Вас на индикаторе (сколько разрядов)? Например, если разрядов хватает, то можно, например, вместо Вашего кусочка
написать что-то вроде
При положительном будет всё также, как и раньше, а при отрицательном в разряд 0 попадёт минус (сегмент G), а всё остальное сдвинется вправо.
2 каскадно включённых модуля MAX7219, на символы места хватает.
ну, и делайте, идею я Вам показал