Skip to content

Отображение ресурсов и параметров железа компьютера на дисплее и светодиодных кольцах, управление кулерами и светодиодными лентами.

License

Notifications You must be signed in to change notification settings

MalfurionST/PCdisplay

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Экран параметров железа ПК

Версии прошивки

  • 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 - наглядная схема

Используемые библиотеки

Настройки в коде

-------------------------- ПИНЫ ---------------------------
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, кнопка.
  • Необязательные компоненты:
    • светодиодная лента, кулеры, фоторезистор, вторая кнопка, адресные светодиоды, температурные датчики, энкодер.
  • Светодиодную ленту с мосфет транзисторами можно заменить светодиодом.

SCHEME

Анализ использования памяти

  • Стандартное ядро (стандартные / 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

About

Отображение ресурсов и параметров железа компьютера на дисплее и светодиодных кольцах, управление кулерами и светодиодными лентами.

Resources

License

Stars

Watchers

Forks