Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить

Термостат на 2313 и DS18b20 (ассемблер)

Ср ноя 18, 2015 22:09:33

Добрый день, вечер, утро.
Есть небольшая проблемка. Сделал термостат. Все работает, даже вполне успешно. Но мне, как стороннику идеализма не нравится как это работает. Хотелось бы доработать.
Выкладываю все как есть, сильно не пинайте. Библиотеку (УРЕЗАННУЮ) для DS18B20 писал сам, хотел понять как работает 1Wire.
Программа реализует:
- Двумя кнопками выбор значения температуры
- Автоматическое сохранение его в ЭСППЗУ Tiny2313
- Включение нагрузки при падении температуры ниже заданной
- Выключение нагрузки при повышении температуры выше заданной
- Измерение с погрешностями (показывает только целые, дробную часть просто отрезает)
- Остальное на схеме видно.

Что мне не нравится:...
- Кнопки работают, но знаю, что я их хреново написал в обработке (короче, говняно работают) :(
- Индикация тоже через раз лажу дает (на модели видно, что промыргивает минус и т.д.) Однако, в реальной жизни так только на одном экземпляре, остальные нормально себя ведут, но уверен, что это кривой код...
- Реализовать бы выбор приделов регулирования (гистерезис)
- Чего еще можно добавить для надежности?
- Дописать бы библиотеку до конца, чтобы можно было пару датчиков прикрутить, или в этом сделать выбор вариантов точности измерений.

Изображение

З.Ы. Уточню. Транзистор для управления стоит BC817 у него до 0,8 А. А Индикатор KEM5461AG (общий катод вроде, не помню).
Если кому надо, могу выложить и плату, но не знаю найдете ли индикатор.
Вложения
Temper.zip
Архив с исходником и Протеусом
(73.53 KiB) Скачиваний: 312

Re: Термостат на 2313 и DS18b20 (ассемблер)

Ср ноя 18, 2015 22:44:57

СКАЗОЧНИК писал(а): Индикатор KEM5461AG (общий катод вроде, не помню).
Если кому надо, могу выложить и плату, но не знаю найдете ли индикатор.

А что, он какой- то уникальный, что ли? Обычный четырёхразрядный семисегментный индикатор- вот аналоги, которые "попались"-
BL-Q56A42
RL-F5610
CC56-21
да и ещё туева хуча аналогов найдётся, а цвет свечения- не имеет значения.

Re: Термостат на 2313 и DS18b20 (ассемблер)

Ср ноя 18, 2015 22:50:25

АлександрЛ писал(а):А что, он какой- то уникальный

Х. его З. я не изучал этот вопрос, т.к. у меня есть те, что я указал выше. :)))
Так плату выкладывать на него?

Изображение

Изображение

З.Ы. Прошу прощения, схемка малость не полная... На плате еще установлен резистор в базе транзистора (примерно 1-2 кОм), одни резистор в цепи сброса МК сделан по совдеповскому типу SMD, т.е. берется обычный 0,25 Вт, отрезаются ноги и затачивается с концов напильником, потом спокойно паяется между выводов МК. Еще на ней есть стабилизатор типа 78L05, под него можно просверлить дырочки и поставить также с другой стороны (но я рекомендовал бы поставить помощнее, хотя и этот тянет, но греется), и конденсатор любой, какой понравится. Как видно на фотографии, там вся "перефирия" подключена на штырьки... PLC по моему называются Г-образные.
Вложения
6.lay
Плата, для ЛУТа не забудьте отзеркалить
(29.77 KiB) Скачиваний: 565

Re: Термостат на 2313 и DS18b20 (ассемблер)

Пт ноя 20, 2015 10:47:11

Понятно, тема не интересная. :)))
Всплыло у меня пока еще пара вопросов.

1. При сработке транзисторного ключа, далее идет реле, оно переключается в этот момент много раз. Как от этого избавляться?
2. Нуждо действительно гистерезис ввести, т.е. либо в ручную задавать придел контроля нагрузки, либо по умолчанию, например 5 градусов. Иначе нагрузка постоянно включается-выключается на приделе контролируемой температуры.

Re: Термостат на 2313 и DS18b20 (ассемблер)

Пт ноя 20, 2015 11:32:45

Совершенно верно. Только нужно установить два порога и сравнивать с нижним при падении температуры. После срабатывания по нижнему порогу, сравнивать уже с верхним.

Re: Термостат на 2313 и DS18b20 (ассемблер)

Пт ноя 20, 2015 17:12:10

Не совсем понятно. как на грани температуры игнорировать переключение ключа?

Re: Термостат на 2313 и DS18b20 (ассемблер)

Сб ноя 21, 2015 02:42:50

СКАЗОЧНИК писал(а):- Включение нагрузки при падении температуры ниже заданной
- Выключение нагрузки при повышении температуры выше заданной
Вы уже алгоритм описали. Допустим, есть два порога +4гр. и +3гр. Пока температура +5гр. сравнение идёт с +3гр. Как только температура упала ниже +3гр. включается нагрузка и порог сравнения устанавливается +4гр. Температура превысила +4гр. нагрузка отключается и порог сравнения устанавливается +3гр. и т.д.

Re: Термостат на 2313 и DS18b20 (ассемблер)

Сб ноя 21, 2015 09:47:38

Точно! ))) Только не с таким маленьким диапазоном, а градусов в 10 разница чтобы была. Нарисовал на листе и понятно стало. :beer:
А если в 1 градус делать, то дребезжать будет реле, т.к. 1 градус быстро меняется там, где стоит этот термостат. :)

Re: Термостат на 2313 и DS18b20 (ассемблер)

Вс ноя 22, 2015 17:40:26

Я тупой. :facepalm: :oops: Спасибо. Сам разобрался.

Но вышеизложенные вопросы по оптимизации кода остаются в силе.

Выставлю крайнюю версию прошивки (может кому надо будет)

Функции:

1. Температуру показывает
2. Запоминает температуру, которую выбрали для контроля
3. Включает нагрузку, как только достигнет выбранного придела (вентилятор)
4. Выключает нагрузку, как только температура упадет на два градуса ниже придела (кому надо, может сам исправить в исходнике)
5. Совсем чуточку загрубил кнопки
6. Диапазон тот же -55... +125 градусов

З.Ы. Реле теперь не щелкает много раз.
Вложения
Temper последняя версия.zip
Вот крайняя версия прошивки
(77.42 KiB) Скачиваний: 295

Re: Термостат на 2313 и DS18b20 (ассемблер)

Ср фев 24, 2016 17:06:47

На печатке добавил еще один резистор от базы транзистора подтяжка вниз (на минус), так... для надежности. :)

Re: Термостат на 2313 и DS18b20 (ассемблер)

Вт дек 12, 2017 22:02:13

Что-то eXtreme Burning ругается на файл Temper.hex - грит не правильный

Re: Термостат на 2313 и DS18b20 (ассемблер)

Ср дек 13, 2017 10:39:34

А понипрог, стерх, дракон из студии спокойно загружают и не ругаются.

Re: Термостат на 2313 и DS18b20 (ассемблер)

Чт дек 14, 2017 15:27:11

Хорошо бы для контроля целостности данных подсчитывать контрольную сумму, все-таки термостат)

Re: Термостат на 2313 и DS18b20 (ассемблер)

Чт дек 14, 2017 21:06:43

:solder: Заработала)) Спасибо автору за простоту конструкции :beer:

Транзистор пришлось другой структуры ставить) т.к. авторская схема работает на охлаждение, а мну подогревать нужно)

Re: Термостат на 2313 и DS18b20 (ассемблер)

Пт дек 15, 2017 02:13:48

хорошобы это в коде учесть... поменяв пороги местами

Добавлено after 4 minutes 29 seconds:
зачем 4 разрядник? та что в 1 разряде выводимтолка минус? или там сделана плавающая точка ? на этом компе нет протеуса...чтоб посмтреь ваши схним в виртуале

Добавлено after 4 minutes 5 seconds:
по схемотехнике не жалко порты без резиков на сегменты грузить?? по сути в рехим огранрчения тока загнали порт
микра силно жарится ? наверно надо врезать 2SMD сборки по 4 резистора 47ом вцепи сегментов
Ответить