Page 65 of 109

Re: Термостат ∆T=0,1°C

Posted: 01 Feb 2013 20:47
by andrik-63
IYra wrote:
andrik-63 wrote: не могу изменить с ним настройки. в чём проблема. отпаяв супервизор настройки изменяются.
Поточнее напиши что значит "изменить с ним настройки".
Термостат не реагирует на кнопки в рабочем режиме ?
IYra вы правильно поняли.Термостат не реагирует на кнопки с запайном супервизором,нажимая на кнопки происходит пере -маргивание. индикатора.

Re: Термостат ∆T=0,1°C

Posted: 01 Feb 2013 21:02
by IYra
andrik-63 wrote:нажимая на кнопки происходит перемаргивание индикатора.
Чудеса - это наверно МК перезагружается.
Первое что приходит в голову слишком большое падение напряжения на светодиоде.
Какой кстати светодиод ? Нужно ставить самый простенький и он тускло светится.
А лучше наверно поставить нормальный супервизор. Они сейчас дешевые.

Re: Термостат ∆T=0,1°C

Posted: 02 Feb 2013 14:01
by hardlock
dmitrye25, нет - у него аналоговый выход, а у даласа - цифра.

Re: Термостат ∆T=0,1°C

Posted: 05 Feb 2013 21:50
by kenkel
Собрал я своего монстра. На столе все работает корректно. После упаковки в коробку буду пробовать на котле.
Да- в прошивку добавил Alarm по перегреву котла. При достижении температуры теплоносителя 95 *С - пищим постоянно.

Re: Термостат ∆T=0,1°C

Posted: 07 Feb 2013 09:42
by Ashatshem
Здравствуйте. Подскажите пожалуйста почему при компиляции проекта выходит такая ошибка: http://clip2net.com/clip/m166005/136022 ... ip-3kb.png
Решил просто скомпилировать не меняя ничего.

Re: Термостат ∆T=0,1°C

Posted: 07 Feb 2013 10:27
by hardlock
Ashatshem, а почитать последние пару страниц?

Re: Термостат ∆T=0,1°C

Posted: 09 Feb 2013 19:59
by grogo
ЗдравствуЙте
я хочу уточнить ,я в первые дело имею с avr ,на первоЙ странице написано Биты конфигурации (FUSES), для тех кто шьёт из PonyProg:
такая конфигурация соответствует программе CodeVisionAVR ? (хотя скрин от CodeVisionAVR)
припоминаю что у атмел значение 0 означает, что фуз запрограммирован, а у пони наоборот.

Re: Термостат ∆T=0,1°C

Posted: 09 Feb 2013 20:02
by hardlock
grogo wrote:такая конфигурация соответствует программе CodeVisionAVR ?
да
grogo wrote:припоминаю что у атмел значение 0 означает, что фуз запрограммирован, а у пони наоборот.
это не про понипрог, а про юнипроф.

Re: Термостат ∆T=0,1°C

Posted: 09 Feb 2013 20:05
by grogo
hardlock , оперативно, спасибо, будем знать .
ребята выложите у кого есть печатка под DIP корпус с реле
если честно ,лень рисовать :), уже нашёл , она здесь есть.

Re: Термостат ∆T=0,1°C

Posted: 12 Feb 2013 22:18
by space_s
Добрый день.

Наконец-то запустил и свой термостат. Не работало из-за неправильной установки фуз битов.
Программировал через Uniprog, а там нужно устанавливать все наоборот в отличие от Ponyprog.

Но есть одно но.

При переходе в режим установки гистерезиса, устройство не реагирует на нажатие кнопки "+". Гистерезис устанавливается только кнопкой "-", причем только на увеличение, и после определённой (большой) величины идет на спад. Исходный код в kbd.c не трогал.
Ради эксперимента, попробовал поменять пределы изменения температуры и гистерезиса - предел по температуре поменялся, а по гистерезису такой-же глюк?

Code: Select all

void ProcessKey(void)
{   
    switch (byKeyCode)
    {
        case KEY_1:                 // Была нажата клавиша Минус 
            switch (View)
            {
              case 0:               //если был режим "Текущая температура", то
                View = 1;           //переходим в режим "Установленная температура"
                Counter = 5;        //и взводим счётчик на 5 секунд.
              break;
              case 1:               //если мы в режиме "Установленная температура", то 
                if (T_LoadOn > 1000) //если "Установленная температура" > 0°C, то 
                {
                  T_LoadOn --;      //уменьшаем значение на 0,1°
                  RefreshDisplay(); //обновляем данные на экране     
                }
                View = 1;           //удерживаем в режиме "Установленная температура"
                Counter = 5;        //и взводим счётчик на 5 секунд.
              break;
              case 2:               //если мы в режиме "Дэльта", то 
                if (DeltaT > 1)     //если "Дэльта" больше 0,1°, то 
                {
                  DeltaT --;        //уменьшаем Дэльту на 0,1°
                  RefreshDisplay(); //обновляем данные на экране
                }
                Counter = 5;        //и взводим счётчик ещё на 5 секунд.
              break;
            }
            
        break;
            
        case KEY_2:                 // Была нажата клавиша Плюс 
            switch (View)
            {                       
              case 0:               //если был режим "Текущая температура", то
                View = 1;           //переходим в режим "Установленная температура"
                Counter = 5;        //и взводим счётчик на 5 секунд.
              break;
              case 1:               //если мы в режиме "Установленная температура", то
                if (T_LoadOn < (1500 - DeltaT))    //если температура ниже 50,0° - Дэельта
                {
                  T_LoadOn ++;      //то увеличиваем Установленную температуру на 0,1° 
                  RefreshDisplay(); //обновляем данные на экране    
                }             
                View = 1;           //удерживаем в режиме "Установленная температура"
                Counter = 5;        //и взводим счётчик ещё на 5 секунд.
              break;
              case 2:
                if (DeltaT < 50)   //если Дельта меньше 5,0°, то
                {
                  DeltaT ++;        //то увеличиваем Дэльту на 0,1°
                  RefreshDisplay(); //обновляем данные на экране
                }
                Counter = 5;        //и взводим счётчик ещё на 5 секунд.
              break;
            }
        break;  
        
        case KEY_3:               // Была нажаты обе кноки вместе.
            View = 2;              //переходим в режим "Дэльта"
            Counter = 5;           //и взводим счётчик ещё на 5 секунд.
        break;
                      
        default:
        break;
	
    }
    
}

Re: Термостат ∆T=0,1°C

Posted: 12 Feb 2013 22:19
by hardlock
space_s, стотыщпицот раз писалось, по 10 раз на странице. не прошился еепром.

Re: Термостат ∆T=0,1°C

Posted: 12 Feb 2013 22:55
by space_s
Прошу прощения, но тема разрослась и правильный ответ находить стало тяжело.

Re: Термостат ∆T=0,1°C

Posted: 13 Feb 2013 01:00
by Ashatshem
Подскажите пожалуйста, В общем, изменил немного прошивку, добавил вторую дельту, теперь при нажатии на обе кнопки в режиме дельты-попадаем в настройки дельты2, Но при компиляции выходит одна ошибка в этой части:

Code: Select all

BYTE byCharacter[15] = {0xFA,     //0
                0x82,   //1
 	        0xB9,   //2
	        0xAB,	//3 
	        0xC3,     //4 
	        0x6B,     //5 
	        0x7B,     //6
                0xA2,    //7 
                0xFB,      //8
                0xEB,      //9 
                0x00,      //blank   
                0x01,     //-
                0x70,     //t
                0x9B,     //d
                0x58      //L 
                }; 
Как я понял этот кусок кода отвечает за вывод информации на 1 разряд, а вот куда копать дальше не нашёл, Помогите чайнику)
ЗЫ: Ещё один вопрос. Как можно отключить 9 ногу микросхемы от индикации (портд5), что бы использовать этот порт для другого (использую тройной индикатор, без первого разряда)?

Re: Термостат ∆T=0,1°C

Posted: 13 Feb 2013 02:03
by Coviraylhik
IYra, Интересно как это вы там два датчика прикрутили, пробовал изменять исходник, ну никак на ЖКИ не переложу ваш код... не могли бы вы помочь сделать проект, два термометра на тини2313 (не термостаты) и ЖКИ16х2

Re: Термостат ∆T=0,1°C

Posted: 13 Feb 2013 08:58
by IYra
Coviraylhik wrote:IYra не могли бы вы помочь сделать проект
Попробовать можно. От вас нужна болванка проекта с ЖКИ16х2. Чтоб работал
и выводил на экран две константы. А я попробую засунуть туда 1wire.
Ну и схему желательно.

Добавлено спустя 9 минут 40 секунд:
Ashatshem wrote:Но при компиляции выходит одна ошибка в этой части:
Не понятна что за ошибка и где. Пишите конкретней.
Ashatshem wrote: Ещё один вопрос. Как можно отключить 9 ногу микросхемы от индикации (портд5), что бы использовать этот порт для другого (использую тройной индикатор, без первого разряда)?
Проще отключить PORTD.4 (не будут выводится десятые) поиском найти упоминания о нем в проекте
и закоментировать.

Re: Термостат ∆T=0,1°C

Posted: 13 Feb 2013 11:03
by Coviraylhik
IYra wrote:Попробовать можно. От вас нужна болванка проекта с ЖКИ16х2. Чтоб работал
и выводил на экран две константы. А я попробую засунуть туда 1wire.
Ну и схему желательно.
Вот проект, переменная sec там просто использовалась при создании проекта , можно удалить , а то при компиляции уже 47% флеша занято...
Там протеус в архиве но я в форуме читал вы вроде протеусом не пользуетесь , сделал схему картинкой.

Re: Термостат ∆T=0,1°C

Posted: 13 Feb 2013 14:11
by IYra
Coviraylhik wrote:
Посылаю непроверенный в железе проект. переменная sec - кол-во датчиков.
В отладчике застрял на lcd_init(16).
Скорее всего не заработает. А вдруг. Попробуйте.

Re: Термостат ∆T=0,1°C

Posted: 13 Feb 2013 16:32
by hardlock
Ashatshem wrote:Как я понял этот кусок кода отвечает за вывод информации на 1 разряд, а вот куда копать дальше не нашёл, Помогите чайнику)
это масив символов. в нём не может быть ошибки.
Ashatshem wrote:ЗЫ: Ещё один вопрос. Как можно отключить 9 ногу микросхемы от индикации (портд5), что бы использовать этот порт для другого (использую тройной индикатор, без первого разряда)?
уберите все упоминания про неё в программе и используйте как Вам угодно.
Coviraylhik, вот, тока переделывать я не буду.

Re: Термостат ∆T=0,1°C

Posted: 13 Feb 2013 16:50
by Ashatshem
Image Вот такую ошибку выдаёт, в ошибке написано: Error: C:\Users\Ashatshem\Desktop\Òåðìîìåòð-òåðìîñòàò\termostat_led.c(79): missing ';'
Может это связанно с тем, что я добавил вторую дельту, а символа для неё нет в таблице?
ЗЫ: С таблицей символов вроде понял, Но не могу понять где указанно что надо выводить допустим букву "t" или "d" при соответствующих режимах отображения? То есть, я ни где не увидел связи DeltaT c буквой "d" или цифрой 14 (порядковый номер в таблице символов)....

Re: Термостат ∆T=0,1°C

Posted: 13 Feb 2013 22:01
by hardlock
для начала уберите из пути кирилицу.
массив символов начинается с нуля.
вывод - путём присвоения номера символа в массив byDisplay. Например

Code: Select all

byDisplay[0] = 10; //вывод пустого символа (пробел) в нулевой (самой левой) позиции на дисплее

Re: Термостат ∆T=0,1°C

Posted: 13 Feb 2013 22:04
by Ashatshem
Кириллицы и нет, это почему то на форуме так показывает) С буквой "d" разобрался, нашёл её, а вот из за чего ошибка-не понял...
Соврал, действительно кириллица...

Re: Термостат ∆T=0,1°C

Posted: 13 Feb 2013 22:06
by hardlock
Ashatshem, проверьте количество символов в массиве и цифра в квадратных скобках должны совпадать.

Re: Термостат ∆T=0,1°C

Posted: 13 Feb 2013 22:09
by Ashatshem
Всё совпадает... Кириллицу убрал, ошибка лезет...

Re: Термостат ∆T=0,1°C

Posted: 13 Feb 2013 22:11
by hardlock
Ashatshem, кидай исходник полностью

Re: Термостат ∆T=0,1°C

Posted: 13 Feb 2013 22:22
by Ashatshem
Вот, вроде все нужные файлы.