Page 1 of 3
Термостат ∆T=0,1°C теперь и на Atmega8
Posted: 22 Dec 2013 10:13
by Andrei007
Всем привет!
Понравился мне проект Термостат ∆T=0,1°C на Atiny2313, собрал не один экземпляр все работает, все хорошо,
но за неимением attiny2313 появилась мысль перенести код на atmeg8.
Но так как я в этом деле новичок, пришлось мне подучить язык C, начал разбираться в коде и в отличиях меду этими микроконтроллерами,
и тут стало ясно что порта A на atmega8 нет совсем
, ладно поменял в коде на порт C, следующее препятствие это таймера
,
начал изучать таймера их регистры, в итоге таймер 0 конфигурировал по новой а у тамера 1 все регистры остались те же самые.
Ну и еще одно препятствие которое поджидало меня в codevision 2.05.0 это то что не было видно переменных в файле KBD.C, порывшись на форуме нашел решение проблемы прописал в файл KBD.H следущее:
extern BYTE View;
extern BYTE Counter;
extern WORD T_LoadOn;
extern WORD DeltaT;
extern void RefreshDisplay(void);
extern BOOLEAN btKeyUpdate; // = 1, когда обнаружено нажатие на клавишу
и все скомпилировалось
работоспособность пока проверил только в proteus.
Алгоритм работы термостата я описывать не буду, он уже описан автором устройства, читайте в ветке attiny тема Термостат ∆T=0,1°C.
Естественно прошивка от Attiny2313 не подойдет и схема тоже
Ссылка на проекты
скачать с яндекс диска
Re: Термостат ∆T=0,1°C теперь и на Atmega8
Posted: 23 Dec 2013 11:57
by Andrei007
Чуть позднее выложу прошивки на режим нагрева, охлаждения и для индикатора с общим анодом...
Комбинированная DIP-SMD печатка
Posted: 24 Dec 2013 13:17
by andreich78
Сделал одностороннюю печатку. Уже в железе.
1. Под МК в корпусе DIP, и под SMD компоненты. SMD - чтоб не сверлить, DIP - легче паять
2. МК расположен с обратной стороны платы. Прошивка доработана так, чтобы была возможность быстро ее менять под разные варианты печаток.
3. Индикатор расположен с лицевой стороны платы, паяется в последнюю очередь.
4. Супервизор питания на smd светодиоде - не взлетел. На печатной плате оставляю, но светодиод пришлось не устанавливать, с ним - не заработало, видимо, напряжение на пине RESET слишком низкое. Резистор подтяжки к питанию 3K3 - точно нужен.
5. В железе оказался неправильный порядок разрядов на индикаторе (см. пост ниже от
Kenkel) - прошивка доработана, теперь порядок правильный.
6. Проект под CVAVR 1.25 (у
Andrei007 - под 2.0.5)
7. Нормально-закрытый выход я не стал разводить, т.к. не пользуюсь. Он живет на порту PORTC.4, нога №27.
8. Проект максимально отсоединен от железа - вместо прямого обращения к портам используются макро-определения типа
Code: Select all
#define DIGIT1 PORTD.5
#define DIGIT2 PORTD.7
#define DIGIT3 PORTD.6
#define DIGIT4 PORTD.4
#define OUTPIN_NO PORTC.1 // Нормально открытый выход
#define OUTPIN_NC PORTC.4 // Нормально закрытый выход (не используется)
Модельку изменил под эту печатку, проект переименовал, чтобы не перепутать с оригиналом под 2313.
Перезаливаю версию 1.0.1 - проверено в железе, модель соответствует железу.
Re: Термостат ∆T=0,1°C теперь и на Atmega8
Posted: 24 Dec 2013 14:04
by Recov
А нельзя печатку в Лауот?
Re: Термостат ∆T=0,1°C теперь и на Atmega8
Posted: 24 Dec 2013 14:21
by andreich78
я в игле работаю, в Layout печатки у меня нет
Обратите внимание - выложенную печатку я еще ни разу не спаял!
Re: Термостат ∆T=0,1°C теперь и на Atmega8
Posted: 07 Jan 2014 21:36
by kenkel
Спасибо за работу. Собрал в железе на своей печатке. Термостат заработал- но с придурью. Значение температуры выводилось справа на лево. Пришлось переназначить порты на индикатор. После этого все заработало правильно.
Выкладываю свою печатку в LAY ,как скромный вклад в развитие этой темы.
Re: Термостат ∆T=0,1°C теперь и на Atmega8
Posted: 09 Jan 2014 10:57
by andreich78
Немного картинок к версии 1.0.1
Добавлено спустя 3 минуты 30 секунд:
Замечание - SMD светодиод в верхней части схемы в итоге пришлось удалить.
Re: Термостат ∆T=0,1°C теперь и на Atmega8
Posted: 09 Jan 2014 12:41
by kenkel
Если нужно- выложу фото своего девайса.
Личная просьба к andreich78- не могли-бы вы перенести на ATMega8 проект термостата от IYra на ATTiny2313 немного подправленный мной для управления циркуляционным насосом твердотопливного котла?
Re: Термостат ∆T=0,1°C теперь и на Atmega8
Posted: 09 Jan 2014 14:22
by andreich78
kenkel wrote:Если нужно- выложу фото своего девайса.
Личная просьба к andreich78- не могли-бы вы перенести на ATMega8 проект термостата от IYra на ATTiny2313 немного подправленный мной для управления циркуляционным насосом твердотопливного котла?
В вашем проекте уже под мегу8 переделка начата, нужен исходник, который точно работает под 2313.
И еще помог бы исходник от IYRa до ваших правок.
Re: Термостат ∆T=0,1°C теперь и на Atmega8
Posted: 09 Jan 2014 21:46
by kenkel
Спасибо.Действительно по ошибке выложил черновик. В приложении оригинальный проект от IYra и его вариант переделанный под управление насосом. Суть переделки- управлять скоростью циркуляционного насоса в зависимости от разности температур на входе и выходе котла.При этом происходит индикация скорости работы котла на индикаторе.
Данный проект реализован и успешно эксплуатируется в течении второго отопительного сезона. Переход на ATmega8 для меня это возможность усовершенствовать термостат. Хочу реализовать идею открытия нижней заслонки котла (поддувала) в зависимости от температуры на выходе из котла. В качестве шагового двигателя хочу использовать регулятор холостого хода от автомобиля ВАЗ. В настоящее время используется штатный механический термостат управления нижней заслонкой работой которого я недоволен.
Re: Термостат ∆T=0,1°C теперь и на Atmega8
Posted: 10 Jan 2014 20:15
by andreich78
kenkel wrote:В приложении оригинальный проект от IYra и его вариант переделанный под управление насосом.
Почти переделал, только 1-wire не завелся.
Добавлено спустя 8 часов 46 минут 14 секунд:
kenkel wrote:В приложении оригинальный проект от IYra и его вариант переделанный под управление насосом.
Переделал. Что-то у тебя в кодах символов непонятное... это не ты спалил ногу на МК и переделывал индикацию?
Замечания:
- Файлы проекта переименовал.
- На частоте 8МГц не работает модель 1-wire - работает только на 4 МГц, что в железе будет - не знаю, проверяй.
- Что с индикацией - я не понимаю.
- Модель - прикладываю в архив, чтобы заработало нужно собрать проект (Make) и нажать там "Execute User's Program".
- Кнопки переехали на PORTC.2 и PORTC.3
- Если еще что вспомню - напишу.
- Народ, не думайте, что я всем буду переделывать проекты "других производителей", просто совпало с наличием свободного времени, Рождеством и свежей головой
Re: Термостат ∆T=0,1°C теперь и на Atmega8
Posted: 11 Jan 2014 10:25
by IYra
andreich78 wrote:
Замечания:
- Файлы проекта переименовал.
- На частоте 8МГц не работает модель 1-wire - работает только на 4 МГц, что в железе будет - не знаю, проверяй.
Проект на тиньке был на 4 мгц. Поэтому на 8 вряд ли будет работать без изменения таймингов
Re: Термостат ∆T=0,1°C теперь и на Atmega8
Posted: 11 Jan 2014 22:57
by kenkel
Так и есть проверил в железе- проект собирается, есть индикация 00 , на кнопки реакция отсутствует, 1Wire не запускается.
Re: Термостат ∆T=0,1°C теперь и на Atmega8
Posted: 12 Jan 2014 21:49
by andreich78
kenkel wrote:Так и есть проверил в железе- проект собирается, есть индикация 00 , на кнопки реакция отсутствует, 1Wire не запускается.
Фьюзы какие шил?
Сделай на 4 МГц внутренний RC
- фьюзы под 4МГц
- fusebits-mega8.4MHz.PNG (2.82 KiB) Viewed 21606 times
И я забыл про кнопки сказать, они переехали на PORTC.2 и PORTC.3
Не заработает - выкладывай печатку (фотку печатки), или хотя бы схему твоего железа.
Добавлено спустя 22 часа 1 минуту 21 секунду:
IYra wrote:
Проект на тиньке был на 4 мгц. Поэтому на 8 вряд ли будет работать без изменения таймингов
Не-не, мой работает на 8-ми (но это хардлоковский исходник переделанный Andrei007), так что 1-wire сам по себе на этой частоте должен работать. Я еще покручу модельки, надо разобраться.
Re: Термостат ∆T=0,1°C теперь и на Atmega8
Posted: 13 Jan 2014 00:24
by kenkel
Печатка- 5 пост этой темы.
Фузы ставил как на картинке.
Прошивка проекта termostat_mega8.v1.0.1- нормально работает на этой печатке и с этими фузами (4MHZ)
Прошивка проекта Termostat_Mega8Kenkel- на этом железе и с этими фузами не запускается. Висит постоянная индикация 00.
Re: Термостат ∆T=0,1°C теперь и на Atmega8
Posted: 13 Jan 2014 09:14
by andreich78
kenkel wrote:Печатка- 5 пост этой темы.
Фузы ставил как на картинке.
Прошивка проекта termostat_mega8.v1.0.1- нормально работает на этой печатке и с этими фузами (4MHZ)
До меня дошло.
Пробуй эту прошивку, фьюзы под 4МГц:
Тут даже индикатор работает без нареканий.
Re: Термостат ∆T=0,1°C теперь и на Atmega8
Posted: 13 Jan 2014 16:30
by IYra
IYra wrote:
Проект на тиньке был на 4 мгц. Поэтому на 8 вряд ли будет работать без изменения таймингов
Если надо 8 мгц то
изменить в функции
main
Code: Select all
TCCR0B=0x03; // делитель на 64 переполнение примерно каждые 4 мс
на
и в конфигурации проекта поставить 8 мгц
Re: Термостат ∆T=0,1°C теперь и на Atmega8
Posted: 14 Jan 2014 08:17
by andreich78
IYra wrote:и в конфигурации проекта поставить 8 мгц
это на 2313, тут же мега, и регистр называется по-другому (TCCR0). И потом, TCCR0B=0x04 - это делитель на 256, в 4 раза реже, а нужно в 2. Всё равно придется перенастраивать счетчики.
Короче, как ни крути, лучше просто работать на 4МГц - просто фьюзы другие при прошивке указать.
8МГц - это вообще мой косяк, в proteus-модели, которую я переделывал, было так настроено, а я не посмотрел в исходник - ты там четко указал 4.
Re: Термостат ∆T=0,1°C теперь и на Atmega8
Posted: 20 Jan 2014 13:44
by kenkel
Извиняюсь , что долго не отвечал. Дела однако.
Докладываю- запустил я проект IYra на своем железе после того как переназначил разряды для вывода на дисплей.
Спасибо за помощь.
Проект в протеусе у меня так и не заработал.
Re: Термостат ∆T=0,1°C теперь и на Atmega8
Posted: 20 Jan 2014 13:50
by andreich78
kenkel wrote:Извиняюсь , что долго не отвечал. Дела однако.
Докладываю- запустил я проект IYra на своем железе после того как переназначил разряды для вывода на дисплей.
Спасибо за помощь.
Проект в протеусе у меня так и не заработал.
ты не мудри, ты пальцем покажи
говори точно, с какой пошивкой (название файла) запустилось.
Re: Термостат ∆T=0,1°C теперь и на Atmega8
Posted: 21 Jan 2014 00:33
by kenkel
Вот это у меня заработало в железе.
Re: Термостат ∆T=0,1°C теперь и на Atmega8
Posted: 21 Jan 2014 08:10
by andreich78
kenkel wrote:Вот это у меня заработало в железе.
Когда поставишь на "боевое дежурство" - отпишись пожалуйста о работе симистора (это ведь у тебя симистор включен на силовые клеммники). Я уже давно присматриваюсь к такому решению.
Re: Термостат ∆T=0,1°C теперь и на Atmega8
Posted: 21 Jan 2014 10:54
by kenkel
Термостат (а точнее спаренный термостат) , фото которого я выкладывал выше собран на 4 симисторах. Три семистора командуют скоростями насоса, один на общее отключение насоса.
Именно это устройство успешно эксплуатируется в течении второго отопительного сезона.
Кроме этого, по просьбе трудящихся, сделал 2 устройства на семисторе для аналогичных целей. Пока все работает нормально.
Re: Термостат ∆T=0,1°C теперь и на Atmega8
Posted: 21 Jan 2014 11:15
by andreich78
kenkel wrote:Именно это устройство успешно эксплуатируется в течении второго отопительного сезона.
Кроме этого, по просьбе трудящихся, сделал 2 устройства на семисторе для аналогичных целей. Пока все работает нормально.
Напиши, плз, маркировку симисторов и защитных конденсаторов (это же конденсаторы красные?).
И какой ток идет через симисторы (как запитаны насосы - через реле или напрямую)?
И в каких условиях эксплуатируются - село/город?
Re: Термостат ∆T=0,1°C теперь и на Atmega8
Posted: 21 Jan 2014 14:38
by Tolya G
kenkel ! Пожалуйста памогите, нужна принципиальная схематермостата с регулируемым гистерезисом, с поправкой погрешности температуры, аналогично проекту hardlok на attini 2313, но на ATMEGA8. Главное внести в схему гальваническую развязку на мосеке, плюс симистор. Фьюзы нужны для работы с внутренним генератором. Прошивочка нужна для индикатора с общим катодом. Понимаю хотелок много. Спаять смогу а в остальном...........
С уважением Толя