Сделал себе умное управление системой охлаждения компьютера (СВО + вентиляторы). Система получает данные о температуре железа с компьютера (при помощи программы OpenHardwareMonitor, подробнее здесь и здесь), получает температуру охлаждающей жидкости и управляет скоростью помпы СВО при помощи цифрового потенциометра, скоростью ШИМ вентиляторов при помощи ШИМ сигнала 20 кГц и “релейно” управляет вентиляторами радиатора СВО. Таким образом получилась очень тихая система, которую “в простое” не слышно даже на фоне тихого вентилятора блока питания.
ПОДРОБНОЕ ВИДЕО ПО ПРОЕКТУ
В данном видео показан полный и максимально подробный процесс разработки и изготовления устройства, а также обзор его возможностей и функций.
Понятные схемы, OpenSource прошивки с комментариями и подробные инструкции это очень большая работа. Буду рад, если вы поддержите такой подход к созданию Ардуино проектов! Основная страница пожертвовать – здесь.
МАТЕРИАЛЫ И КОМПОНЕНТЫ
Ссылки на магазины, с которых я закупаюсь уже не один год
Вам скорее всего пригодится:
- Arduino NANO 328p – искать
- Кит СВО http://ali.ski/fxrKA
- Водяной блок на AM4 http://ali.ski/gGZDx
- Водяные блоки для видеокарт http://ali.ski/EG3_2F http://ali.ski/jjA-P
- Силиконовый шнур http://ali.ski/jDN4ZQ
- Пробка-термистор http://ali.ski/G8lNN
Содержимое папок в архиве
- libraries – библиотеки проекта. Заменить имеющиеся версии
- firmware – прошивки для Arduino
- schemes – схемы подключения компонентов
Настройки в прошивке
// настройки #define TIMEOUT 3000 // таймаут соединения, мс #define TIMEOUT_P 300000 // таймаут питания, мс #define RESIST_10K 10000 // точное сопротивление 10к резистора (Ом) // пределы #define HW_TEMP_MIN 40 // мин. температура железа #define HW_TEMP_MAX 60 // макс. температура железа #define TEMP_MIN 32 // мин. температура воды #define TEMP_MAX 40 // макс. температура воды // у меня СВО начинает резонансить на скоростях 20-27, поэтому избегаю этот диапазон #define PUMP_MIN 13 // мин. сигнал помпы (при TEMP_MIN) #define PUMP_MAX 95 // макс. сигнал помпы (при TEMP_MAX) #define PWM_MIN 50 // мин. сигнал вентиляторов (при TEMP_MIN) #define PWM_MAX 150 // макс. сигнал вентиляторов (при TEMP_MAX) #define TEMP_ON 34 // температура воды, выше которой включается вентилятор СВО #define TEMP_OFF 32 // температура воды, ниже которой выключается вентилятор СВО #define HW_TEMP_ON 45 // температура железа, выше которой включается вентилятор СВО #define HW_TEMP_OFF 40 // температура железа, ниже которой выключается вентилятор СВО #define COEF 0.2 // коэффициент плавности изменения температуры // ---- термистор ---- // GND --- термистор --- A0 --- 10к --- 5V #define RESIST_BASE 10000 // сопротивление при TEMP_BASE градусах по Цельсию (Ом), из даташита #define TEMP_BASE 25 // температура, при которой измерено RESIST_BASE (градусов Цельсия) #define B_COEF 3435 // бета коэффициент термистора (3000-4000)