Собрал я термометр по примеру из CodeVisionAVR.Вывожу данные на LCD.Но значения оооочень медленнннноооо изменяются.Как можна поправить ситуацию.Использую AtMega16(11.0592 MHz) .Вот код:[code]/
Оформляйте длинные тексты в виде приложения! Сэр Мурр
Пример, кстати, совсем тривиальный - там и тормозить то нечему. Правда обмен с DS1820 происходит около половины секунды - с этим придется смириться, ибо у 1-Wire жесткие требования к таймингам...
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
на счет медленности - не все так плохо.
это 1820 и 18s20 тормоза - 0.75с измеряют, а 18b20 можно заставить работать почти в 10 раз быстрее - надо сконфигурировать его на 9-битовый результат. найдите в вашей проге место, где датчик настраивается на 12 бит и переделайте на 9. будет значительно быстрее работать
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
А результат я получу какой? Допустим 34 градуса, 34.0 градуса, 34.00градуса.Завтра попробую.
не обольщайся сотыми долями - паспортная погрешность датчика 0,5°С - так что сотые все равно будут иметь отношение скорее к бурям на Марсе, чем к реальной температуре. при 9 битах точности ты гарантированно получишь эту самую погрешность в 0,5° (и результат будет как раз с шагом в пол-градуса)
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Зарегистрирован: Вс мар 04, 2007 13:14:25 Сообщений: 375 Откуда: Украина
Рейтинг сообщения:0
Да не так он уж и тормозит. Может тормозит из-за вывода на LCD и там есть пауза после вывода. Можно попробывать уменьшить паузы между командами, я пробывал в два раза, частенько приходят ошибки, и больше 85 не меряет. Сам того не понимая delay настроил на 4мгц а МК на 8мгц. всё работало но больше 85 выдавало ошибку. А ваще мне и такая скорость подходит, а если надо быстрей делай на АЦП к примеру, есть много датчиков с интерфейсом i2c.
под 100 может не хватить ОЗУ - это уже надо детально вникать в задачу. и куда 100 штук вы лепить собрались? там начнутся уже ограничения на линию связи - на ее погонную емкость и индуктивность...
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
имхо лучше аналоговые датчики взять (к примеру платиновые от хонивелл e.g. 700 серия там есть по 40р), вы сможете в узком диапазоне температур получить нужную точность в 0,1гр... тем более точность +-0,5гр для медицины не очень корошо...
_________________ если после прочитанной книги что-то в голове осталось, радуйся. Голова работает на тебя!!!
Поставить-то можно, но, ИМХО, т.к. для опроса каждого датчика трятится порядочно (около 0,5с) времени, то 100 датчиков будут так тормозно обновлятся, что для лаборатории это будет неприемлимо (хотя.. лаборатории разные бывают). Сам в свое время ваял нечто похожее. Пока не понял, что скорость слишком мала чтобы заюзать 25+ устройств. Получается отнюдь не реал-тайм.
здесь даже не во времени дело... можно и ПЛИС всунуть.. но дело всё в том что насколько мне известно точность в 0,5гр... для медицины это неприемлимо... если мерить температуру в боксе каком-нить с клетками... то точно не пойдёт а если просто температуру в помещении и строить градиент температуру... то сомневаюсь...
но заманивает простота... возьмите лучше tmp03/04
_________________ если после прочитанной книги что-то в голове осталось, радуйся. Голова работает на тебя!!!
ну я так вскользь посмотрел, может - signed int, но если и так CVAМR понимает, то ладно.
Просто с запятыми другой тип переменной используется(int это целое, без десятых и пр. т.е. без децимальной точки).
Просто я не понял, а где и что указывает точку (рисует).
Зарегистрирован: Вс мар 04, 2007 13:14:25 Сообщений: 375 Откуда: Украина
Рейтинг сообщения:0
megasvintus писал(а):
Долблюсь с данным девайсом уже второй день. Все время выдается температура 63898 градусов... И она при нагреве/охлаждении датчика не меняется. Хоть убей- не пойму в чем дело! Устройство нормально опознается. Прикладываю исходник, может ткнет кто на ошибку/ошибки носом
Модератор, не закрывайте пожалуйста тему, я поиском нашел подобные темы, но ответа на свой вопрос не получил.
Резистор на 4,7к цеплял?
Частота проекта и частота МК одинаковые?
Зарегистрирован: Вт мар 04, 2008 20:03:03 Сообщений: 568 Откуда: Нижний Новгород
Рейтинг сообщения:0
Цеплял.
Одинаковые.
Всплыл прикол номер 2- сменил тип переменной, в которой будет храниться температура на int, на дисплее стало отображаться -9999. Это значит ошибка чтения, если не ошибаюсь... А почему? Ведь девайс всего 1 и нормально узнается.
_________________ Трудно быть деревянным, совсем трудно....
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения