Attiny2313+DS1307+DS18B20

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Lavr12
Встал на лапы
Сообщения: 91
Зарегистрирован: Чт апр 14, 2011 16:28:14
Откуда: Москва

Re: Attiny2313+DS1307+DS18B20

Сообщение Lavr12 »

odesasha писал(а):Потерялся 0 в файле term.h - исправил . Проверьте и отпишитесь .


ODESASHA - спасибо! Схема заработала нормально. Единственное, что не нравится - слишком частое (интервал 12 секунд?) включение температуры. К тому же, она ужасно не соответствует действительности и "плавает" - за несколько секунд показания увеличились с примерно 24 градуса (всё равно много для моей комнаты) до примерно 30 градусов - примерно по градусу в минуту. Сейчас - 28,1 градус (после примерно 15 минут работы). Вероятно, что-то неправильно с программированием температурного датчика DS18B20? Можно ли как-то исправить? Уж больно простые и не дорогие датчики - вот если бы ещё и правильно работали...
Ну и старая "болезнь" - неудачная работа кнопок управления (изменение показаний после довольно продолжительного нажатия около 1 секунды и по отпусканию кнопки). Хотя, второй проблемой можно и пренебречь - я согласен с DANKO, что не так часто мы пользуемся кнопками - выставил время один раз и забыл...
Lavr12
Встал на лапы
Сообщения: 91
Зарегистрирован: Чт апр 14, 2011 16:28:14
Откуда: Москва

Re: Attiny2313+DS1307+DS18B20

Сообщение Lavr12 »

vetalbox писал(а):Ну и я свою поправил.
Про main.rom не знаю, вполне возможно просто когда-то во время экспериментов сохранил под этим именем, а так как в CVAVR не очень силен папку не чистил и она теперь там валяется :oops: Лучше ее никуда не шить.


VETALBOX - спасибо! Всё работает замечательно. Переключение на термометр происходит как я и хотел - примерно раз в минуту.
Единственное, что огорчает - те же два момента, что и в прошивке от ODESASHA - неточность показаний датчика DS18B20 и неудобство работы кнопок. Особенно - первое. Нужно бы что-то придумать, чтобы исправить показания температуры... Иначе в этой функции (термометр) нет никакого смысла!
Аватара пользователя
O-LED
Мудрый кот
Сообщения: 1800
Зарегистрирован: Вт окт 05, 2010 01:08:57
Контактная информация:

Re: Attiny2313+DS1307+DS18B20

Сообщение O-LED »

здесь используются стандартные библиотеки для работы с датчиком, так что причину "неправильной" температуры ищите в способе установи датчика. Возможно он у вас рядом с каким нибудь греющимся элементом.
KIT
vetalbox
Первый раз сказал Мяу!
Сообщения: 34
Зарегистрирован: Чт фев 03, 2011 16:13:09

Re: Attiny2313+DS1307+DS18B20

Сообщение vetalbox »

Lavr12 писал(а):
vetalbox писал(а):неточность показаний датчика DS18B20

Увы... Во-первых, как я понял, это зависит от самого датчика - у меня один подмышку сунешь - 36,6, а второй - 35... во-вторых очень чувствительны к сквозняку - поток воздуха может градусов 5 скинуть, так же и с излучателями тепла. Уличный датчик у меня со спиртовым расходиться примерно на градус, но они разнесены - чтоб солнце меньше грело.

А кнопки переделать недолго, но я их практически не трогаю - один раз установил время и забыл...
Lavr12
Встал на лапы
Сообщения: 91
Зарегистрирован: Чт апр 14, 2011 16:28:14
Откуда: Москва

Re: Attiny2313+DS1307+DS18B20

Сообщение Lavr12 »

O-LED писал(а):здесь используются стандартные библиотеки для работы с датчиком, так что причину "неправильной" температуры ищите в способе установи датчика. Возможно он у вас рядом с каким нибудь греющимся элементом.


O-LED - вероятно, Вы правы. Во всяком, случае, частично. Датчик DS18B20 у меня просто впаян в плату рядом (7 мм) с МК ATtiny2313, который явно немного нагревается... Попробую переставить датчик в другое место. Но, честно говоря, должна быть какая-то возможность ПРОГРАММНОГО корректирования показаний датчика температуры по эталонному датчику. Скажем, Вы собираете свою конструкцию в корпусе... и устанавливаете рядом эталонный термометр. Затем у Вас должна быть возможность с помощью кнопок выставить показания Вашего термометра в соответствии с показаниями эталонного. Вне зависимости (по крайней мере, на 90%) от того, где именно установлен Ваш датчик... Так мне кажется. Можно ли эту функцию воплотить в жизнь? Если НЕТ - тогда стоит просто убрать датчик температуры. Он в данной схеме просто не работает ( точнее - работает, но неправильно, без коррекции показаний).
Lavr12
Встал на лапы
Сообщения: 91
Зарегистрирован: Чт апр 14, 2011 16:28:14
Откуда: Москва

Re: Attiny2313+DS1307+DS18B20

Сообщение Lavr12 »

vetalbox писал(а):
Lavr12 писал(а):
vetalbox писал(а):неточность показаний датчика DS18B20

Увы... Во-первых, как я понял, это зависит от самого датчика - у меня один подмышку сунешь - 36,6, а второй - 35...


VETALBOX - полностью согласен с Вами. У меня такая же история - недавно выбросил два электронных термометра, так как врали ужасно... Поэтому ПРОГРАММНАЯ КОРРЕКТИРОВКА самодельных датчиков температуры на МК - единственный выход из данной ситуации. Кто нибудь решил данную проблему? Можно это решение вставить в Вашу прошивку? Ох, если бы я умел сам программировать!...
Аватара пользователя
odesasha
Прорезались зубы
Сообщения: 237
Зарегистрирован: Пт фев 12, 2010 14:02:22
Откуда: Одесса

Re: Attiny2313+DS1307+DS18B20

Сообщение odesasha »

Собирал 5 часов с этими же датчиками и с программой такой же как и здесь . Расстояние 7 мм - мало . Влияет окруж.среда .
Датчики показывают точечную темперетуру и мало весят - реагируют на все нагреваемое за 1 сек.
Прекрасно на 12 м кабеля с резюком 3.3 ком на плюс с улицы тоже пащет .
Про коррекцию .
Нельзя просто прибавить или убавить несколько градусов - ничего это не даст . Простая прибавка или вычитание в уме числа к показаниям и сравнение с термопарой и тестером по показаниям показывает всю несостоятельность этой идеи - если идет подогрев извне , то он непропорционален Т ,неопределен и подобрать его невозможно .

Они калиброваны при изготовлении и линеаризованы также при изготовлении . В этом вся их фишка.
Надо лишь считать с них код и преобразовать для вывода на дисплей
.
Lavr12
Встал на лапы
Сообщения: 91
Зарегистрирован: Чт апр 14, 2011 16:28:14
Откуда: Москва

Re: Attiny2313+DS1307+DS18B20

Сообщение Lavr12 »

Убрал датчик температуры DS18B20 с платы (см. фото). Большие изменения! Первоначальные показания - 24 градуса. Через 10 минут - 22,4 градуса, что есть очень близко правильно! (Как выразился!) Ситуация уже радует. Если подобрать правильный корпус, да ещё установить небольшой радиатор для уменьшения флактуаций...может и удастся добиться правильных показаний!
Одновременно появилась последняя (надеюсь) просьба - а нельзя ли убрать десятые доли градуса вообще? Они только "забивают голову". Например, в моей первой конструкции на PIC16F84A (не "моей лично", а повторённой мною), температура представлена только целыми числами и смотрится великолепно (см. фото).
Вложения
Без десятых.zip
(265.57 КБ) 478 скачиваний
Удалённый датчик.zip
(350.95 КБ) 401 скачивание
Аватара пользователя
odesasha
Прорезались зубы
Сообщения: 237
Зарегистрирован: Пт фев 12, 2010 14:02:22
Откуда: Одесса

Re: Attiny2313+DS1307+DS18B20

Сообщение odesasha »

Lavr12 писал(а):Убрал датчик температуры DS18B20 с платы (см. фото). Большие изменения! Первоначальные показания - 24 градуса. Через 10 минут - 22,4 градуса, что есть очень близко правильно! (Как выразился!) Ситуация уже радует. Если подобрать правильный корпус, да ещё установить небольшой радиатор для уменьшения флактуаций...может и удастся добиться правильных показаний!

Что есть правильные - объясните , пожалуйста . С чем Вы сравниваете . Температура -не напруга . Это параметр состояния вещества За 1 сек не померяешь.
А десытые , согласен ,для понта . Физического смысла не несут по физике и . даже,по словам Dallas. Это формат слова внутреннего АЦП датчика.
Точность по калибровке у него порядка 0.5 град от завода . Причем . если выдержать все те же электрические режимы и частоту
обращений . что и при калибровке , ибо от них меняется саморазогрев .
Реально , без проблем +_ 1 град он дает нормально . Для быта хватает с головой , особенно видно холодные порывы ветра зимой !!!
Есть шанс правильней одеться по погоде.
Lavr12
Встал на лапы
Сообщения: 91
Зарегистрирован: Чт апр 14, 2011 16:28:14
Откуда: Москва

Re: Attiny2313+DS1307+DS18B20

Сообщение Lavr12 »

odesasha писал(а):
Lavr12 писал(а):Убрал датчик температуры DS18B20 с платы (см. фото). Большие изменения! Первоначальные показания - 24 градуса. Через 10 минут - 22,4 градуса, что есть очень близко правильно! (Как выразился!) Ситуация уже радует. Если подобрать правильный корпус, да ещё установить небольшой радиатор для уменьшения флактуаций...может и удастся добиться правильных показаний!

Что есть правильные - объясните , пожалуйста . С чем Вы сравниваете . Температура -не напруга . Это параметр состояния вещества За 1 сек не померяешь.
А десытые , согласен ,для понта .


ODESASHA - я имел ввиду, что реальная температура в моей комнате находится в пределах 20-22 градуса (по другим термометрам и ощущениям). Поэтому, показания данного датчика в 22,4 градуса были очень близки к факту. Кстати, в настоящий момент отображается 21,6 градуса. Теперь я думаю, что датчик работает правильно. Просто нужно было его убрать подальше с платы (МК, рядом с которым стоял датчик, тёплый).
Что касается десятых долей градуса - так можно их просто убрать, то есть округлить до целых значений? Думаю, для этого нужно поправить прошивку?
ferrum26
Первый раз сказал Мяу!
Сообщения: 34
Зарегистрирован: Чт окт 15, 2009 10:31:19
Откуда: Воронеж

Re: Attiny2313+DS1307+DS18B20

Сообщение ferrum26 »

Привет всем!
Собрал, используя архив, который по моей же просьбе выложил headshotbacs на предыдущей странице... прошивка ОК, индикаторы ОА
Плату переделывал, разбив на 2 блока (в корпусе как я хочу, иначе не выйдет), индикаторы 1,5", распиновка отличается (у них 1-ый и 5-ый пин общие аноды, а не 3-ий и 8-ой).
Транзюки на аноды 2N5401 (pnp, зеркальная цоколевка относительно BC557). тиньку вывернул наизнанку :) у меня они только в смд, а иначе пришлось бы разводку переделывать, а так - только тип корпуса на плате.
Тинька прошилась без вопросов, а на индикаторах тупо горят все сегменты. Если нажать кнопку, заметно по мерцанию, что переключения есть (одинаковые на всех разрядах).
Собственно, в протеусе есть нюансы, связанные с эмуляцией ULN2803? У меня не получается - или вообще тишина, или вот как у меня в железе - все '8' горят. Учитывая, что я далеко не первый, кто делает эти часы, я грешу на ULN.
Подскажите, может я туплю? :)
....
Быстренько накидал в освободившееся рабочее время схему в протеусе - как и в железе, все сегменты горят. Скриншот прилагаю.
Вложения
111.JPG
(109.12 КБ) 804 скачивания
Lavr12
Встал на лапы
Сообщения: 91
Зарегистрирован: Чт апр 14, 2011 16:28:14
Откуда: Москва

Re: Attiny2313+DS1307+DS18B20

Сообщение Lavr12 »

ferrum26 писал(а):Подскажите :)...


FERRUM26 - я, конечно, совсем не спец, но посмотрев схему, заметил, что вывод земли (номер 10) ULN2803A не подключён вообще (см. схему из даташита). Соответственно, вся эта сборка Дарлингтона просто не работает.
Во-вторых, насколько я понимаю, в базы транзисторов нужно поставить хотя бы по 1 Ком. А то и вообще - соорудить схему из двух резисторов на транзистор по схеме DANKO (отрывок прилагается).
Кстати, следующим моим шагом запланирован именно такой проект - большие индикаторы с ОА, ULN2803A, DS1307, ATtiny2313 (или ATmega8), DS18B20...
Удачи!
Вложения
Резисторы.jpg
(34.41 КБ) 655 скачиваний
ULN2803A.jpg
(36.59 КБ) 926 скачиваний
Аватара пользователя
Danko
Сверлит текстолит когтями
Сообщения: 1287
Зарегистрирован: Пн окт 13, 2008 11:45:54
Откуда: РФ, Крым, г.Бахчисарай
Контактная информация:

Re: Attiny2313+DS1307+DS18B20

Сообщение Danko »

Lavr12 писал(а):заметил, что вывод земли (номер 10) ULN2803A не подключён вообще (см. схему из даташита). Соответственно, вся эта сборка Дарлингтона просто не работает.
земля это вывод 9.

А вывод 10 подключается не к земле, а к питанию если вместо светодиодов подключить электромагнитное реле.
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
ferrum26
Первый раз сказал Мяу!
Сообщения: 34
Зарегистрирован: Чт окт 15, 2009 10:31:19
Откуда: Воронеж

Re: Attiny2313+DS1307+DS18B20

Сообщение ferrum26 »

Danko опередил меня с ответом :) Кстати, он уже есть в теме, я её читал всю.
Резисторы в базах есть в железе, конечно же.
Собственно, как я выше сказал - архив то полный выложили, по схеме и плате в нём я и собрал, просто внеся чисто косметические исправления (корпуса элементов под имеющиеся у себя поправил и разделил плату на две части).
А почему не работает, не понимаю.... сейчас приложу полностью платы, по которым собирал.
Вложения
GIBRID_CLOCK2011_HDS.lay
(199.86 КБ) 806 скачиваний
Lavr12
Встал на лапы
Сообщения: 91
Зарегистрирован: Чт апр 14, 2011 16:28:14
Откуда: Москва

Re: Attiny2313+DS1307+DS18B20

Сообщение Lavr12 »

Извиняюсь за ошибку - поторопился. Конечно же, земля - это вывод 9 ULN2803A. Кстати, он на схеме тоже не обозначен...
Lavr12
Встал на лапы
Сообщения: 91
Зарегистрирован: Чт апр 14, 2011 16:28:14
Откуда: Москва

Re: Attiny2313+DS1307+DS18B20

Сообщение Lavr12 »

Для тех, кого заинтересует данная тема для сбора очень простых часов с термометром на ATtiny2313_DS1307_DS18B20 и индикатором с ОА с высотой знака не более 14,2мм (0,56'), хотелось бы подытожить свои результаты/выводы:
- схема рабочая
- очень простая, всего 2 микросхемы + датчик температуры
- с защитой от пропадания напряжения сети на несколько лет
- более крупный индикатор (с ОА) требует наличия нескольких дополнительных элементов (ULN2803A, 4-х транзисторов, 8+8 резисторов, отдельного питания индикатора, схемы с ОК)
- датчик температуры DS1820B лучше вынести за корпус (отдалить от нагревающихся элементов)
- показания температуры выводятся на 2 секунды каждую минуту (примерно), с десятыми градуса
- в корпус пришлось встроить стабилизатор на 5 вольт (диодный мост + KIA7805A + 4 конденсатора)
- вход извне 10 вольт переменного тока

С помощью VETALBOX, ODESASHA и, конечно же основных энтузиастов данной темы, я собрал и уже подарил своему соседу по даче простые часы на кухню (ему подойдут просто идеально).
Для своей памяти + возможно кому-то пригодится, выкладываю использованные схему + прошивку (от VETALBOX) + фотки получившегося корпуса. Монтаж навесной на пустой макетной плате (занимает мало времени).
Всё (пока) работает просто замечательно.
Вложения
Корпус.zip
Конечный результат (корпус)
(98.15 КБ) 550 скачиваний
Исходники.zip
Схема+прошивка
(58.6 КБ) 600 скачиваний
ferrum26
Первый раз сказал Мяу!
Сообщения: 34
Зарегистрирован: Чт окт 15, 2009 10:31:19
Откуда: Воронеж

Re: Attiny2313+DS1307+DS18B20

Сообщение ferrum26 »

В общем, у меня воз и ныне там :)
Вчера проверил монтаж и плату на правильность, косяков не нашёл.
Впрос больше в том (на данный момент), как в протеусе это всё смоделировать? Видимо, я чего-то не учитываю... Просто в железе картина аналогичная, как и в протеусе на приложенном ниже скриншоте(с одним отличием - у меня в первом разряде сегмент С вообще не загорается. Но это не из-за плохой пайки - я перед подключением индикатора зажигал все сегменты во всех разрядах).
Не поленился, нарисовал полностью, со всеми резисторами. Если б это дело моделировалось хотя бы, то я б искал косяки у себя более усердно, а так, я даже не знаю, куда смотреть в первую очередь.
Индикаторы у меня LedBright BS-AB36RD, под них и печатка, что я выше выкладывал.
Могу и файл протеуса приложить, если надо, хотя и так всё понятно должно быть по скриншоту.
Вложения
111.jpg
(115.88 КБ) 641 скачивание
serpa
Открыл глаза
Сообщения: 51
Зарегистрирован: Чт апр 14, 2011 15:42:10
Откуда: РФ Йошкар-Ола
Контактная информация:

Re: Attiny2313+DS1307+DS18B20

Сообщение serpa »

Ура! Кажется нашел! Ах да, Всем привет! Нашел наконец проект часов и термометра, который мне нужен. Вернее искал сначала просто часы, нужно было собрать в замен умершим на машине, нашел вот такие http://www.yarst.org/Clock_VAZ2106.htm - управление одной кнопкой (как и мои на приборной панели с управлением одной кнопкой), но к сожалению с ОК. А тут еще и термометр, которого в моей комплектации не было. КЛАСС! Хотя по заголовку темы не найти ))). Большое спаисбо автору и всем участвующим.
Но есть одно но. Помогите котенку )), т.к. в работе с МК я лузер, хоть и родился с паяльником в руках ))),может в каких то прошивках это уже реализовано, хочется от схемки вот такое:

-индикатор с ОА, лучше программно (т.к. подходящий есть от сгоревшего ЧП с сдвоеточием)
-один датчик температуры (буду мерять только на улице)
-минимум деталей (возможно ли применение без ключей? ток для индикатора 10мА, ОА-программно)
-УПРАВЛЕНИЕ одной кнопкой (перевод часов одной кнопкой - переводяться минуты, а после 59 на +1 часы. возможно ли программно сделать перевод сначало медлено потом с ускарением)
-период переключенияна отображения температуры сделать поменьше минуты (в авто сидеть и ждать минуту долговато. можно попробовать сделать переключение от кнопки управления - короткое нажатие - температура потом самостоятельный переход на часы, длительное нажатие, ну примерно 2 секунды - перевод времени
-ну и совсем барство - вместо батарейки на 3V запитать от автомобильного аккумулятора

Пожалуста не критикуйте за наглость в желаемости от часов. Понимаю, чот уже настало время осваивать микроконтроллеры.
Lavr12
Встал на лапы
Сообщения: 91
Зарегистрирован: Чт апр 14, 2011 16:28:14
Откуда: Москва

Re: Attiny2313+DS1307+DS18B20

Сообщение Lavr12 »

serpa писал(а):-индикатор с ОА, лучше программно (т.к. подходящий есть от сгоревшего ЧП с сдвоеточием)
-один датчик температуры (буду мерять только на улице)
-минимум деталей (возможно ли применение без ключей? ток для индикатора 10мА, ОА-программно)
-УПРАВЛЕНИЕ одной кнопкой (перевод часов одной кнопкой - переводяться минуты, а после 59 на +1 часы. возможно ли программно сделать перевод сначало медлено потом с ускарением)
-период переключенияна отображения температуры сделать поменьше минуты (в авто сидеть и ждать минуту долговато. можно попробовать сделать переключение от кнопки управления - короткое нажатие - температура потом самостоятельный переход на часы, длительное нажатие, ну примерно 2 секунды - перевод времени
-ну и совсем барство - вместо батарейки на 3V запитать от автомобильного аккумулятора


SERPA - на мой взгляд, данная схема отвечает почти всем Вашим пожеланиям:
- используется индикатор с ОА и высотой знака аж до 14,2мм/0,56"
- датчиков может быть один или два (сколько подключите, столько показаний и получите)
- минимум деталей (2 микросхемы + незначительная обвязка)
- схема без каких-либо ключей, подключение индикатора напрямую к МК
- литиевая батарейка на 3В используется не для питания схемы, а для поддержания данных микросхемы реального времени DS1307 в случае пропадания основного питания (5В), которое, кстати, легко получить от 12-вольтового автоаккумулятора (добавить стабилизатор 7805)
- если используете прошивку от ODESASHA, то переключение на показания термометра будут происходить каждые примерно 12 секунд

Правда, есть некоторые вопросы:
- одну кнопку использовать врядли получится (судя по всему, потребуется изменение программы МК, а места в памяти ATtiny2313 практически не осталось, насколько я помню сообщения спецов с данной темы)
- вероятно, потребуется установить дополнительный фильтр по питанию (типа как у магнитол)
- не будут ли светодиодные индикаторы засвечиваться в дневное время суток, когда светло? Нужно пробовать. Использовать красные сверхяркие индикаторы...

Удачи!
Lavr12
Встал на лапы
Сообщения: 91
Зарегистрирован: Чт апр 14, 2011 16:28:14
Откуда: Москва

Re: Attiny2313+DS1307+DS18B20

Сообщение Lavr12 »

ferrum26 писал(а):Привет всем!
Тинька прошилась без вопросов, а на индикаторах тупо горят все сегменты. Если нажать кнопку, заметно по мерцанию, что переключения есть (одинаковые на всех разрядах).
все сегменты горят.


FERRUM26 - я тоже попытался собрать схему с программным ОК и большими индикаторами с ОА (на базе схем от DANKO). Прилагаю. Кажется, всё перепроверил - надеюсь, что не ошибся...
Результат очень похожий - при включении зажигаются все элементы (восьмёрки), затем через пару секунд (я датчик DS18B20 пока не ставил) вроде начинается счёт времени (секундный светодиод начинает мигать, но не ярко), но показания времени явно некорректны. При нажатии кнопок происходит изменение показаний, но хаотично и нечитабельно.
Думаю, что причина в прошивке. Пока попробовал две - последнюю от DANKO (Clock-Term_tiny2313__4LED_OK_PBO_Res_sec_Button_to_resgnd_3) и одну из последних от ODESASHA.
Завтра попробую другие. Надеюсь, что какая-нибудь да сработает. Заодно, на свежую голову, ещё раз проверю монтаж (я Протеусом не пользуюсь - только "в железе").
Вложения
Часы_ATtiny2313_DS1307_DS18B20_ULN2803A_4bigLED.JPG
(220.65 КБ) 1048 скачиваний
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»