Для всех вариантов сборки контроллера
По умолчанию в прошивке контроллера используются внутренние часы на кварцевом резонаторе.
В случае, если Вы используете плату 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 // Режим "удержания" шагового двигателя ЭРВ
Остались вопросы?
Постараемся помочь на ФОРУМЕ обсуждения проекта.