У платы есть 3 группы по 2 вентилятора. Тремя группами можно управлять независимо друг от друга, но нельзя отдельно управлять вентиляторами в одной группе. Скорость вращения всех 6 вентиляторов измеряется независимо.
Скорость вентиляторов контролируется скважностью ШИМ сигнала. Связь с пк осуществляется по serial порту. При потере связи, вентиляторы включаются на максимум. Также на плате предусмотрен вход для собственного датчика температуры, что позволяет сделать автономную работу без связи.
## Что сделано на данный момент
Плата периодически шлет запросы к пк. В этом же запросе отправляются обороты вентиляторов (об/мин) и debug (текущие значения скважности ШИМ, от 0 до 255). В ответ на запрос, пк отправляет от 1 до 3 чисел, которые интерпретируются платой в зависимости от прошивки.
При потере связи с пк, вентиляторы включаются на максимум.
#### 3 варианта прошивки платы:
- Поддержание температуры (**hddtmepserial**, в будущем основная прошивка): плата считает что числа, принимаемые от пк - это текущая температура диска(ов). В прошивке заданы температуры, которые нужно поддерживать. Плата стремится привести текущую температуру к заданному значению, при помощи PID регулятора меняя скорость вращения вентиляторов.
- Поддержание скорости вращения (**hddtmepserial_rpm**, тестовая прошивка): плата считает что числа, принимаемые от пк - это требуемая скорость вращения первого вентилятора в каждой из 3 групп. Плата стремится поддерживать заданные обороты при помощи PID регулятора.
- Установка скважности ШИМ (**hddtmepserial_dutyCycle**, тестовая прошивка): плата считает что числа, принимаемые от пк - это требуемая скважность ШИМ для каждой из групп вентиляторов. Скважность (от 0 до 255) напрямую устанавливается для каждой группы.
## Использование скрипта
Запустить hddtemp в фоновом режиме (нужно чтобы скрипт узнавал температуру диска):\