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, следующее препятствие это таймера :shock: ,
начал изучать таймера их регистры, в итоге таймер 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, когда обнаружено нажатие на клавишу
и все скомпилировалось :happy: :drink:

работоспособность пока проверил только в 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 и его вариант переделанный под управление насосом.
Переделал. Что-то у тебя в кодах символов непонятное... это не ты спалил ногу на МК и переделывал индикацию?
Замечания:
  1. Файлы проекта переименовал.
  2. На частоте 8МГц не работает модель 1-wire - работает только на 4 МГц, что в железе будет - не знаю, проверяй.
  3. Что с индикацией - я не понимаю.
  4. Модель - прикладываю в архив, чтобы заработало нужно собрать проект (Make) и нажать там "Execute User's Program".
  5. Кнопки переехали на PORTC.2 и PORTC.3
  6. Если еще что вспомню - напишу.
  7. Народ, не думайте, что я всем буду переделывать проекты "других производителей", просто совпало с наличием свободного времени, Рождеством и свежей головой :-)

Re: Термостат ∆T=0,1°C теперь и на Atmega8

Posted: 11 Jan 2014 10:25
by IYra
andreich78 wrote: Замечания:
  1. Файлы проекта переименовал.
  2. На частоте 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МГц
фьюзы под 4МГц
fusebits-mega8.4MHz.PNG (2.82 KiB) Viewed 21584 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МГц:
Termostat_Mega8Kenkel.vK.1.1.rar
(37.6 KiB) Downloaded 959 times
Тут даже индикатор работает без нареканий.

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 мс
на

Code: Select all

TCCR0B=0x04;  
и в конфигурации проекта поставить 8 мгц

Re: Термостат ∆T=0,1°C теперь и на Atmega8

Posted: 14 Jan 2014 08:17
by andreich78
IYra wrote:

Code: Select all

TCCR0B=0x04;  
и в конфигурации проекта поставить 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. Главное внести в схему гальваническую развязку на мосеке, плюс симистор. Фьюзы нужны для работы с внутренним генератором. Прошивочка нужна для индикатора с общим катодом. Понимаю хотелок много. Спаять смогу а в остальном...........
С уважением Толя