- Описание проекта
- Папки проекта
- Используемые библиотеки
- Настройки в коде
- Схема подключения
- Анализ использования памяти
- m3.0 (первая которую решил выложить)
- все настройки перенесены из программы в скетч (есть выбор источника настроек),
- изменен экран загрузки,
- изменен второй информационный экран (скорость вентилятора и показания датчиков только если их пины не равны 0),
- если запрещено получать настройки с ПК то LED и вентилятор работает по температурепературе,
- добавлено управление яркостью экрана и LED через фоторезистр,
- переименованы некоторые переменные, добавлены библитеки "GyverTimer" и "GyverButton",
- удержание любой кнопки 2 сек. переводит на начальный экран,
- если присвоить значение 0 пинам отвечающим за те или иные функции (BTN2, LED_GP_PIN, LED_CP_PIN, LED_R, LED_G, LED_B, FAN_PIN, SENSORDS_PIN1, PHOTO),
- то они будут отключены при компиляции скетча, добавлена настройка выбора источника данных для адресных светодиодов
- макс. мин. с компьютера или разные для ЦП и ГП из скетча, настройка LED brighness переработана и изменяет яркость дисплея адресной и обычной ленты в пределах минимума и максимума обозначенных в настройках скетча,
- добавлена настройка для отключения построения графиков (PLOT_G),
- добавлена настройка (MICRO_B) для переключения используемых библиотек (микро версии AlexGyver или стандартные),
- при использовании стандартной библиотеки датчика DS18B20 используется паразитное питание,
- при использовании микро нормальное питание и отдельные пины для каждого датчика,
- если SENSOR_PIN2 = 0 то отображается только один датчик.
- m3.1
- немного кастомизации (можно выбрать вариант полосы "загрузки").
- m3.2
- добавлена плавность изменения цвета при режиме по температуре,
- изменен алгоритм отображения цвета Manual COLOR для светодиодов (не адресных!) (0 выкл, 1-7 яркие цвета, 8 радуга, 9 огонь, 10-1000 по радуге (с фиолетовым!)).
- m3.3
- оптимизация памяти,
- добавлена CRT гамма-коррекция (полином).
- m3.4
- оптимизация памяти.
- m3.5
- переписано под библиотеку microDS18B20 версии 3.3 (при использовании MICRO_B) и добавлено разрешение датчиков температуры,
- при использовании MICRO_B используется библиотека GyverUART,
- переписано под библиотеку TimerMs версии 1.0,
- переписано под библиотеку EncButton версии 1.11.1, добалена возможность управления через энкодер,
- изменено управление подсветками через фоторезистор,
- оптимизация кода,
- исправление ошибок.
- m3.6
- изменен алгоритм расчетов цвета светодиодов (не адресных!),
- немного кастомизации (цвета градиентов линий и политру пламени можно менять, например можно сделать зеленое плямя для адресных лент).
- m3.6а
- исправление ошибки.
За основу взяты проекты:
- libraries - библиотеки проекта. Заменить имеющиеся версии
- firmware - прошивка для Arduino, файл в папке открыть в Arduino IDE
- HardwareMonitor - программа, необходимая для работы устройства
- schemes - наглядная схема
- FastLED v. 3.4.0
- LiquidCrystal_I2C v. 1.1.4
- TimerOne v. 1.1
- DallasTemperature v. 3.9.0
- OneWire v. 2.3.5
- EncButton v. 1.11.1
- TimerMs v. 1.0
- microWire v. 2.1
- microLiquidCrystal_I2C v. 1.1
- microDS18B20 v. 3.4
- GyverUART v. 1.10
-------------------------- ПИНЫ ---------------------------
LED_R 5 // на красный (если все три цвета 0 то отключено)
LED_G 3 // на зелёный (если все три цвета 0 то отключено)
LED_B 6 // на синий (если все три цвета 0 то отключено)
BTN1 17 // первая кнопка или кнопка энкодера
BTN2 16 // вторая кнопка (если 0 то отключено)
ENK_A_CLK 0 // контакт энкодера (если 0 то отключено)
ENK_B_DT 0 // контакт энкодера (если 0 то отключено)
BACKLIGHT 11 // пин подсветки дисплея (если 0 то отключено)
PHOTO 15 // пин фоторезистора (15 - A1)(если 0 то отключено)
LED_GP_PIN 7 // диоды ГП (если 0 то отключено)
LED_CP_PIN 8 // диоды ЦП (если 0 то отключено)
FAN_PIN 9 // вентиляты (только 9 или 10 пин, если 0 то отключено)
SENSORDS_PIN1 14 // датчик температуры (если 0 то отключено)
SENSORDS_PIN2 13 // датчик температуры 2 если используется micro (если 0 то отключено)
------------------------ НАСТРОЙКИ ------------------------
ERROR_DUTY 90 // скорость вентиляторов при потере связи
OPTIONBAR 1 // 1/2/3/4 разные варианты отображения полос
ERROR_BACKLIGHT 1 // 0/1 гасить/не гасить подсветку при потере сигнала
ERROR_TEMP 1 // 1/0 - показывать/не показывать температуру при потере связи
ERROR_UPTIME 1 // 1/0 - сбрасывать/не сбрасывать uptime при потере связи
DISPLAY_ADDR 0x27 // адрес платы дисплея: 0x27 или 0x3f. Если дисплей не работает - смени адрес! На самом дисплее адрес не указан
TIME_OUT 5000 // таймаут соединения, мс
PLOT_G 1 // 0/1 не строить/строить графики
MICRO_B 0 // 0/1 micro/стандартные библиотеки
BTN_LVL 0 // 0/1 LOW - кнопки подключает GND (физическая)/HIGH - кнопки подключает VCC (сенсорная)
настройки адресных светодиодов
CP_MODE 0 // режим анимации ЦП: 0 - цветная полоса, 1 - огонь
GP_MODE 1 // режим анимации ГП: 0 - цветная полоса, 1 - огонь
NUM_LEDS 60 // количество светодиодов
SOURSE_TEMP 1 // 1 - общие настройки мин. макс. температуры (возможно получение с ПК), 0 - разные указанные ниже
CP_MIN_TEMP 35 // мин температура ЦП
CP_MAX_TEMP 60 // макс температура ЦП
GP_MIN_TEMP 35 // мин температура ГП
GP_MAX_TEMP 60 // макс температура ГП
кастомизация адресных светодиодов
можно отдельно настроить градиенты каждому полукругу
цвета представлены в политре HSV (RED = 0, ORANGE = 32, YELLOW = 64, GREEN = 96, AQUA = 128, BLUE = 160, PURPLE = 192, PINK = 224)
CP_LINE1_COLOR1 65 // по умолчанию - 65
CP_LINE1_COLOR2 0 // по умолчанию - 0
CP_LINE2_COLOR1 85 // по умолчанию - 85
CP_LINE2_COLOR2 140 // по умолчанию - 140
GP_LINE1_COLOR1 65 // по умолчанию - 65
GP_LINE1_COLOR2 0 // по умолчанию - 0
GP_LINE2_COLOR1 85 // по умолчанию - 85
GP_LINE2_COLOR2 140 // по умолчанию - 140
можно отдельно настроить цветовые политры пламени
цвета представлены в политре RGB но по заранее прописаным в библиотеке нзваниям
например зеленое пламя Green, YellowGreen, Yellow (все цвета смотрите в скетче)
CP_FIRE1_COLOR1 Blue // по умолчанию - Blue
CP_FIRE1_COLOR2 Aqua // по умолчанию - Aqua
CP_FIRE1_COLOR3 White // по умолчанию - White
CP_FIRE2_COLOR1 Red // по умолчанию - Red
CP_FIRE2_COLOR2 Yellow // по умолчанию - Yellow
CP_FIRE2_COLOR3 White // по умолчанию - White
GP_FIRE1_COLOR1 Blue // по умолчанию - Blue
GP_FIRE1_COLOR2 Aqua // по умолчанию - Aqua
GP_FIRE1_COLOR3 White // по умолчанию - White
GP_FIRE2_COLOR1 Red // по умолчанию - Red
GP_FIRE2_COLOR2 Yellow // по умолчанию - Yellow
GP_FIRE2_COLOR3 White // по умолчанию - White
яркость
MIN_PHOTO 40 // мин фоторезистора (0 - 1023)
MAX_PHOTO 700 // макс фоторезистора (0 - 1023)
LCD_BRIGHT_MIN 10 // мин яркость подсветки дисплея (0 - 255)
LCD_BRIGHT_MAX 170 // макс яркость подсветки дисплея (0 - 255)
LED_BRIGHT_MIN 127 // мин яркость светодиода (led) (0 - 255)
LED_BRIGHT_MAX 255 // макс яркость светодиода (led) (0 - 255)
MIN_BRIGHTNESS 75 // мин яркость адресной ленты (0 - 255)
MAX_BRIGHTNESS 200 // макс яркость адресной ленты (0 - 255)
источник настроек
SOURSE_CONTROL 0 // 0/1 - разрешить/запретить брать настройки с ПК (при запрете берутся настройки ниже)
COLOR_CONTROL 0 // 0-1001 - (0 - без подсветки, 1 - белый, 2 - фиолетовый, 3 - синий, 4 - голубй, 5 - зелёный,
6 - жёлтый, 7 - красный, 8 - переливание радугой, 9 - огонь,
10-1000 цвет по радуге (с фиолетовым), 1001 - по температуре)
T_MIN 35 // минимальная температура
T_MAX 75 // максимальная температура
LOG_INTERVAL 10 // интервал обновления графиков (сек.)
TSOURCE 2 // 0/1/2/3/4 источник данных для светодиода и вентиляторов (проц., видео., два датчика, максимум проц+видео)
FAN_MIN 35 // минимальная скорость вращения вентилятора (0-100%)
FAN_MAX 100 // максимальная скорость вращения вентилятора (0-100%)
- Обязательные компоненты:
- ардуино, дисплей 2004, кнопка.
- Необязательные компоненты:
- светодиодная лента, кулеры, фоторезистор, вторая кнопка, адресные светодиоды, температурные датчики, энкодер.
- Светодиодную ленту с мосфет транзисторами можно заменить светодиодом.
- Стандартное ядро (стандартные / miсro библиотеки)
память | compiler v 7.3.0 | compiler v 8.3.0 | compiler v 9.2.0 | compiler v 10.1.0 | compiler v 11.1.0 |
---|---|---|---|---|---|
Flash | 24868 / 21238 | 24832 / 21242 | 27284 / 23678 | 27620 / 24070 | 27554 / 24004 |
SRAM | 1718 / 1383 | 1718 / 1383 | 1720 / 1387 | 1720 / 1387 | 1720 / 1387 |