Для всех вариантов сборки контроллера

По умолчанию в прошивке контроллера используются внутренние часы на кварцевом резонаторе.
В случае, если Вы используете плату DUE без распаенного кварцевого резонатора, расскоментируйте строку RTC_clock rtc_clock(RC) и закоментируйте строку RTC_clock rtc_clock(XTAL) в файле Control.ino:



Control.ino:
//RTC_clock rtc_clock(RC); // Внутренние часы, используется внутренний RC генератор RTC_clock rtc_clock(XTAL); // Внутренние часы, используется часовой кварц

Если после заливки прошивки контроллер на стартует, проверте, правильно ли Вы указали данный параметр.


В прошивке контроллера реализовано пять вариантов комплектации тепловых насосов:


Config.h:
#define CONFIG_1 // Старт стоп Компрессор скролл EVI с шаговым ЭРВ и РТО //#define CONFIG_2 // Воздушный Старт стоп с шаговым ЭРВ, РТО и датчиком давления испарителя //#define CONFIG_3 // Инвертор + капиллярка //#define CONFIG_4 // Инвертор + ЭРВ + с РТО и датчиком давления испарителя //#define CONFIG_5 // Инвертор BLDC с шаговым ЭРВ и РТО

Раскоментируйте нужную конфигурацию и закоментируйте не нужную. Конфигурация может быть только одна!


Если ни одна из конфигураций Вам не подходит - сконфигурируйте прошику "под себя", взяв за основу наиболее близкий к Вашей конфигурации вариант.


Внимательно изучите описание и особенности конфигураций в файле Config.h
Для каждой конфигурации определены свои привязки к ногам контроллера, перед использованием следует правильно сконфигурировать их:


Config.h:
// ЖЕЛЕЗО - привязка к ногам контроллера В зависимости от конкретной схемы и платы // Для каждой конфигурации теперь свои определения!!! // -------------------------------------------------------------------------------- // SPI шина управление отдельными устройствами до 3 устройств #define PIN_SPI_CS_W5XXX 10 // ++ ETH-CS сигнал CS управление сетевым чипом #define PIN_SPI_CS_SD 4 // ++ SD-CS сигнал CS управление SD картой // датчики #define PIN_ONE_WIRE_BUS 23 // + нога с интерфейсом OneWire ВСЕ температурные датчики #define ADC_SENSOR_PEVA 11 // + НОМЕР КАНАЛА ацп (внимание - в нумерации sam3x!) нога куда прицеплен датчик давления PEVA #define ADC_SENSOR_PCON 10 // - НОМЕР канала ацп (в нумерации sam3x!) нога куда прицеплен датчик давления PCON #define PIN_SENSOR_SEVA 28 // + Датчик протока по испарителю #define PIN_SENSOR_SLOWP 29 // + Датчик низкого давления #define PIN_SENSOR_SHIGHP 30 // + Датчик высокого давления #define PIN_SENSOR_SFROZEN 31 // - Датчик заморозки #define PIN_SENSOR_SFLOWCON 32 // - Датчик потока по кондесатору #define PIN_SENSOR_SFLOWEVE 33 // - Датчик потока по испарителю // Сервис #define PIN_ETH_RES 8 // + Сброс сетевого чипа w5500 активный low #define PIN_ETH_CS 10 // + Чип селект SPI w5500 #define PIN_WIRE_NET 45 // + Перемычка(вход), при установке в 0 при старте делает настроку сети по умолчанию 192.168.1.177 шлюз 192.168.1.1 #define PIN_WIRE_PW 44 // + Перемычка (вход), при установке в 0 не спрашивает пароль на вход в веб морду #define PIN_LED_OK 43 // + Выход на светодиод мигает 0.5 герца - ОК с частотой 2 герца ошибка #define PIN_BEEP 42 // + Выход на пищалку // Исполнительные устройства (реле и сухие контакты) ВНИМАТЕЛЬНО ПРОВЕРЯЕМ СООТВЕТСВИЕ ВСЕХ МАССИВОВ!!! ------------------------------------------------------------------ #define RNUMBER 8 // Число исполнительных устройств (всех) // устройства 220 вольт #define PIN_DEVICE_RCOMP 46 // + Реле включения компрессора (через пускатель) #define PIN_DEVICE_RPUMPI 47 // + Реле включения насоса входного контура (геоконтур) #define PIN_DEVICE_RPUMPO 48 // + Реле включения насоса выхордного контура (отопление и ГВС) #define PIN_DEVICE_RBOILER 49 // + Включение ТЭНа бойлера #define PIN_DEVICE_RTRV 50 // + 4-ходовой клапан // #define PIN_DEVICE_RFAN1 44 // - Реле включения вентилятора испарителя №1 // #define PIN_DEVICE_RFAN2 45 // - Реле включения вентилятора испарителя №2 #define PIN_DEVICE_R3WAY 52 // + Трех ходовой кран. Переключение системы СО — ГВС (что сейчас греть) #define PIN_DEVICE_REVI 51 // + Соленойд для EVI. (испаритель ниже +3гр и конденсатор выше +40гр) // #define PIN_DEVICE_RHEAT 41 // - Включение ТЭНа СО (электрокотел), может использоваться как догрев, резерв и т.д. #define PIN_DEVICE_RPUMPB 53 // + Реле насоса циркуляции бойлера (ГВС)

Конфигурируем параметры работы конденсатора теплового насоса:


Config.h:
// Конфигурация системы отопления -------------------------------------------------------------------------------- // от куда брать температуру обратки и подачи системы отопления смотртеть кондесатор. // Могут быть задействованы разные датчики! #ifdef CONFIG_1 // Конденсатор запитан не противотоке ПЛОХО!! #define FEED sTemp[TCONOUTG].get_Temp() // Подача системы СО- выход по гликолю кондесатора #define RET sTemp[TCONING].get_Temp() // Обратка системы СО- вход по гликолю кондесатора #endif #ifdef CONFIG_2 // Конденсатор запитан в противотоке #define FEED sTemp[TCONING].get_Temp() // Подача системы СО- выход по гликолю кондесатора #define RET sTemp[TCONOUTG].get_Temp() // Обратка системы СО- вход по гликолю кондесатора #endif

Конфигурируем наличие/отсутствие датчиков температуры в конфигурации, устанавливаем минимальные и максималные значения для выбранных датчиков, указываем значения датчиков при тестировании (опция TEST):


Config.h:
// ДАТЧИКИ ТЕМПЕРАТУРЫ до 14 шт. СОТЫЕ ГРАДУСА -------------------------------------------------------------------------------- // наличие датчиков датчиков от конфигурации минимальные максимальные и тестовые температуры /* Справочно нумерация датчиков * Температура хранится в сотых градуса * #define TOUT 0 // Температура улицы * #define TIN 1 // Температура в доме * #define TEVAIN 2 // Температура на входе испарителя (по фреону) * #define TEVAOUT 3 // Температура на выходе испарителя (по фреону) * #define TCONIN 4 // Температура на входе конденсатора (по фреону) * #define TCONOUT 5 // Температура на выходе конденсатора (по фреону) * #define TBOILER 6 // Температура в бойлере ГВС * #define TACCUM 7 // Температура на выходе теплоаккмулятора * #define TRTOOUT 8 // Температура на выходе RTO (по фреону) * #define TCOMP 9 // Температура нагнетания компрессора * #define TEVAING 10 // Температура на входе испарителя (по гликолю) * #define TEVAOUTG 11 // Температура на выходе испарителя (по гликолю) * #define TCONING 12 // Температура на входе конденсатора (по гликолю) * #define TCONOUTG 13 // Температура на выходе конденсатора (по гликолю) */ #ifdef CONFIG_1 // Наличие датчика в конфигурации const boolean SENSORTEMP[TNUMBER]={true,true,true,true,false,true,true,true,true/*TRTO*/,true,true,true,true,true}; // минимальные значения температур const int16_t MINTEMP[TNUMBER]={-3500,-3000,-1500,-1000,-2000,-2000,0,-500,-1510,100,-1000,-1000,-1000,-1000}; // Макимальные значения температур const int16_t MAXTEMP[TNUMBER]={4000,3500,2500,4000,7000,6500,6000,5000,3010,8100,2200,2300,6300,6500}; // Значения датчиков при тестировании опция TEST В СОТЫХ ГРАДУСА const int16_t TESTTEMP[TNUMBER]={1000,2000,300,400,1000,3000,765,123,-500,500,0,0,2000,2000}; #endif

Конфигурируем наличие/отсутствие аналоговых датчиков давления в конфигурации, устанавливаем минимальные и максималные значения для выбранных датчиков, указываем значения датчиков при тестировании (опция TEST):


Config.h:
// АНАЛОГОВЫЕ ДАТЧИКИ максимум 2 шт -------------------------------------------------------------------------------- // наличие датчиков в конфигурации минимальные максимальные и тестовые значения /* Справочно нумерация датчиков * Давление харится в сотых бара * #define PEVA 0 // Датчик давления испарителя. * #define PCON 1 // Датчик давления нагнетания. */ #ifdef CONFIG_1 const boolean SENSORPRESS[ANUMBER]={true,false}; // Наличие датчика в конфигурации const int16_t MINPRESS[ANUMBER]={100,100}; // минимальные значения давления const uint16_t MAXPRESS[ANUMBER]={1500,3000}; // Макимальные значения давления const uint16_t TESTPRESS[ANUMBER]={400,700}; // Значения датчиков при тестировании опция TEST #endif

Конфигурируем наличие/отсутствие контактных цыфровых датчиков в конфигурации, устанавливаем наличие и тип датчика, указываем значения датчиков при тестировании (опция TEST):


Config.h:
// КОНТАКТНЫЕ ДАТЧИКМ цифровые входы максимум 4 шт ------------------------------------------------------------------- // Наличие датчиков в конфигурации /* Справочно нумерация датчиков * #define SEVA 0 // Датчик протока по испарителю * #define SLOWP 1 // Датчик низкого давления * #define SHIGHP 2 // Датчик высокого давления * #define SFROZEN 3 // Датчик заморозки * * ТИПЫ ДАТЧИКОВ * pALARM, // 0 Аварийный датчик, его срабатываение приводит к аварии и останове Тн * pSENSOR, // 1 Обычный датчик, его значение используется в алгоритмах ТН * pPULSE, // 2 Импульсный висит на прерывании и считает частоты - выходная величина ЧАСТОТА */ #ifdef CONFIG_1 const boolean SENSORINPUT[INUMBER]={false,true,true,false}; // Наличие контактных датчиков const TYPE_SENSOR SENSORTYPE[INUMBER]={pALARM,pALARM,pSENSOR,pPULSE}; // тип контактного датчика #endif

Конфигурируем наличие/отсутствие ЭРВ в конфигурации:


Config.h:
// ЭРВ ТОЛЬКО ОДНА ШТУКА ВСЕГДА (не массив) ---------------------------------------- ------------------------------------ // Наличие ЭРВ в конфигурации #ifdef CONFIG_1 const boolean DEVICEEEV=true; // true - Наличие ЭРВ в конфигурации #endif #ifdef CONFIG_2 const boolean DEVICEEEV=false; // false - Отсутствие ЭРВ в конфигурации #endif

Конфигурируем наличие/отсутствие Частотного преобразовтеля в конфигурации:


Config.h:
// Частотный преобразователь ТОЛЬКО ОДНА ШТУКА ВСЕГДА (не массив) ---------------------------------------- ---------------- // Наличие Частотного преобразователя в конфигурации #ifdef CONFIG_2 const boolean DEVICEFC=false; // false - Отсутствие ЧП в конфигурации #endif #ifdef CONFIG_3 const boolean DEVICEFC=true; // true - Наличие ЧП в конфигурации #endif


Контроллер, собранный с использованием печатной платы от PAV2000

В случае, если Вы собрали контроллер на основе печатной платы от PAV2000, до компиляции и заливки прошивки в контроллер, включите следующие строчки кода в свою конфигурацию, после строки "//описание конфигурации":


Config.h:
#define PAV2000_BOARD // Плата разработки pav2000, необходимо для использования спицифического железа #ifdef PAV2000_BOARD // Ключики для особенностей платы PAV2000_BOARD #define DS2482 // Использование моста i2c Onewire #define NO_SD_CONTROL // + Использование выхода для контроля вставленной SD карты #define POWER_CONTROL // + Использование выхода для управления питанием платы (можно сбросить все кроме контроллера) #define SPI_FLASH // + Наличие чипа флеш памяти на шине SPI #endif

Включите следующие строчки кода в свою конфигурацию, после строки "//Сервис":


Config.h:
// Сервис #define PIN_ETH_RES 8 // ++ ETH-RES Сброс сетевого чипа w5500 активный low нормально high #define PIN_ETH_INT 9 // ++ ETH-INT Прерывание с w5500 пока не используется надо програмиировать на вход #define PIN_ETH_CS 10 // ++ ETH-CS Чип селект SPI w5500 #define PIN_LED1 38 // ++ LED1 Первый зеленый светодиод для контроля #define PIN_LED_OK 39 // ++ LED2 Второй зеленый светодиод Выход на светодиод мигает 0.5 герца - ОК с частотой 2 герца ошибка #define PIN_WIRE_NET 40 // ++ KEY1 Первая кнопка Перемычка(вход), при установке в 0 при старте делает настроку сети по умолчанию 192.168.0.177 шлюз 192.168.0.1 #define PIN_WIRE_PW 41 // ++ KEY2 Вторая кнопка Перемычка (вход), при установке в 0 не спрашивает пароль на вход в веб морду #define PIN_KEY3 42 // ++ KEY3 Третья кнопка #define PIN_BEEP 43 // ++ SOUND Выход на пищалку #define PIN_STEP_DIAG 44 // ++ STEP-DIAG Управление шаговиком #define PIN_NO_SD_CARD 45 // ++ CD Отсутсвик карты в слоте #define PIN_POWER_ON 50 // ++ PWR-OFF Включение питания на всю плату (включение LOW)


Настройки констант проекта, которые описывают специфику КОНФИГУРАЦИИ ТН

Внимательно ознакомтесь с содержимым файла Constant.h и произведите настройку некоторых параметров.


Сконфигурируйте сетевые настройки контроллера и укажите параметры сети, к которой контроллер будет подключен:


Constant.h:
// СЕТЕВЫЕ НАСТРОЙКИ -------------------------------------------------------------- // По умолчанию и в демо режиме (действуют там и там) // В рабочем режиме настройки берутся из ЕЕПРОМ, если прочитать не удалось, то действуют настройки по умолчанию byte defaultMAC[] = { 0xDE, 0xA1, 0x1E, 0x01, 0x02, 0x03 }; const IPAddress defaultIP(192, 168, 0, 177); const IPAddress defaultSDNS(192, 168, 0, 191); const IPAddress defaultGateway(192, 168, 0, 1); const IPAddress defaultSubnet(255, 255, 255, 0); const uint16_t defaultPort=80;

Сконфигурируйте настройки ЭРВ, укажите число шагов для полного открытия, минимальное число шагов открытия ЭРВ, стартовую позицию ЭРВ и наличие/отсутствие удержание ЭРВ в текущей позиции, при отсутствии команд управления:


Constant.h:
// ЭРВ настройки #define EEV_KP_ERR 100.0 // Ошибка (в сотых градуса) при которой происходит уменьшение пропорциональной составляющей ПИД ЭРВ #define EEV_SPEED 80 // Скорость шагового двигателя ЭРВ (импульсы в сек.) #define EEV_QUEUE 10 // Длина очереди команд шагового двигателя ЭРВ #define EEV_STEPS 490 // Число шагов ЭРВ #define EEV_START 400 // Стартовая позиция ЭРВ #define EEV_MIN_STEPS 2 // Минимальное число шагов открытия ЭРВ #define EEV_HOLD_MOTOR true // Режим "удержания" шагового двигателя ЭРВ


Остались вопросы?

Постараемся помочь на ФОРУМЕ обсуждения проекта.