Оглавление:

Вентилятор с ШИМ-регулировкой в зависимости от температуры процессора для Raspberry Pi: 4 шага (с изображениями)
Вентилятор с ШИМ-регулировкой в зависимости от температуры процессора для Raspberry Pi: 4 шага (с изображениями)

Видео: Вентилятор с ШИМ-регулировкой в зависимости от температуры процессора для Raspberry Pi: 4 шага (с изображениями)

Видео: Вентилятор с ШИМ-регулировкой в зависимости от температуры процессора для Raspberry Pi: 4 шага (с изображениями)
Видео: Прошивка RepRap Firmware + DWC | Железо, Установка, Настройка, Интерфейс 2024, Июль
Anonim
Вентилятор с ШИМ-регулированием в зависимости от температуры процессора для Raspberry Pi
Вентилятор с ШИМ-регулированием в зависимости от температуры процессора для Raspberry Pi

Многие корпуса для Raspberry Pi поставляются с небольшим вентилятором на 5 В для охлаждения процессора. Однако эти вентиляторы обычно довольно шумные, и многие люди подключают их к контакту 3V3, чтобы уменьшить шум. Эти вентиляторы обычно рассчитаны на 200 мА, что довольно много для регулятора 3V3 на RPi. Этот проект научит вас регулировать скорость вращения вентилятора в зависимости от температуры процессора. В отличие от большинства руководств, посвященных этой теме, мы не только включаем или выключаем вентилятор, но и будем контролировать его скорость, как это делается на обычном ПК, с помощью Python.

Шаг 1: Необходимые детали

В этом проекте мы будем использовать только несколько компонентов, которые обычно входят в комплекты электроники для любителей, которые вы можете найти на Amazon, например этот.

  • Raspberry Pi работает под управлением Raspbian (но должен работать с другими дистрибутивами).
  • Вентилятор 5 В (но вентилятор на 12 В можно использовать с адаптированным транзистором и источником питания 12 В).
  • Транзистор NPN, поддерживающий не менее 300 мА, как 2N2222A.
  • Резистор 1К.
  • 1 диод.

Необязательно, чтобы поместить компоненты внутрь корпуса (но еще не сделано):

  • Небольшой кусок макетной платы для пайки компонентов.
  • Большая термоусадка для защиты платы.

Шаг 2: электрические соединения

Электрические соединения
Электрические соединения
Электрические соединения
Электрические соединения
Электрические соединения
Электрические соединения

Резистор можно подключить любым способом, но будьте осторожны с направлением транзистора и диода. Катод диода должен быть подключен к проводу + 5V (красный), а анод должен быть подключен к проводу GND (черный). Проверьте свою транзисторную документацию на контакты эмиттера, базы и коллектора. Земля вентилятора должна быть подключена к коллектору, а земля Rpi должна быть подключена к эмиттеру

Чтобы управлять вентилятором, нам нужно использовать транзистор, который будет использоваться в конфигурации с открытым коллектором. Таким образом, у нас есть переключатель, который будет подключать или отключать заземляющий провод от вентилятора к земле raspberry pi.

Проводимость NPN BJT-транзистора зависит от тока, протекающего в его затворе. Ток, который может протекать от коллектора (C) к эмиттеру (E), равен:

Ic = B * Ib

Ic - это ток, протекающий через коллектор эмиттер, Ib - ток, протекающий через базу к эмиттеру, а B (бета) - значение, зависящее от каждого транзистора. Мы приближаем B = 100.

Поскольку наш вентилятор рассчитан на 200 мА, нам нужно не менее 2 мА через базу транзистора. Напряжение между базой и эмиттером (Vbe) считается постоянным и Vbe = 0,7В. Это означает, что когда GPIO включен, у нас есть 3,3 - 0,7 = 2,6 В на резисторе. Чтобы получить 2 мА через этот резистор, нам понадобится резистор с максимальным сопротивлением 2,6 / 0,002 = 1300 Ом. Мы используем резистор на 1000 Ом, чтобы упростить и сохранить погрешность. У нас будет 2,6 мА через вывод GPIO, что совершенно безопасно.

Поскольку вентилятор в основном представляет собой электродвигатель, он имеет индуктивный заряд. Это означает, что, когда транзистор перестает проводить ток, ток в вентиляторе будет продолжать течь, поскольку индуктивный заряд пытается сохранить постоянный ток. Это приведет к появлению высокого напряжения на заземляющем контакте вентилятора и может повредить транзистор. Вот почему нам нужен диод, подключенный параллельно к вентилятору, который будет обеспечивать постоянный ток через двигатель. Такой тип диодной установки называется диодом маховика.

Шаг 3: Программа для управления скоростью вентилятора

Для управления скоростью вращения вентилятора мы используем программный сигнал ШИМ из библиотеки RPi. GPIO. Сигнал ШИМ хорошо приспособлен для управления электродвигателями, так как время их реакции очень велико по сравнению с частотой ШИМ.

Используйте программу calib_fan.py, чтобы найти значение FAN_MIN, запустив в терминале:

python calib_fan.py

Проверьте несколько значений от 0 до 100% (должно быть около 20%) и посмотрите, какое минимальное значение для включения вашего вентилятора.

Вы можете изменить соответствие между температурой и скоростью вращения вентилятора в начале кода. Должно быть столько же tempSteps, сколько значений speedSteps. Это метод, который обычно используется в материнских платах ПК, перемещая точки на 2-осевом графике температуры / скорости.

Шаг 4: Запустите программу при запуске

Чтобы программа запускалась автоматически при запуске, я создал сценарий bash, в который помещаю все программы, которые хочу запустить, а затем запускаю этот сценарий bash при запуске с помощью rc.locale.

  1. Создайте каталог / home / pi / Scripts / и поместите в него файл fan_ctrl.py.
  2. В том же каталоге создайте файл с именем launcher.sh и скопируйте приведенный ниже сценарий.
  3. Отредактируйте файл /etc/rc.locale и добавьте новую строку перед «exit 0»: sudo sh '/home/pi/Scripts/launcher.sh'

Сценарий launcher.sh:

#! / bin / sh # launcher.sh # перейдите в домашний каталог, затем в этот каталог, затем выполните скрипт python, затем вернитесь в homelocalecd / cd / home / pi / Scripts / sudo python3./fan_ctrl.py & cd /

Если вы хотите использовать его, например, с OSMC, вам нужно запустить его как службу с помощью systemd.

  1. Загрузите файл fanctrl.service.
  2. Проверьте путь к вашему файлу python.
  3. Поместите fanctrl.service в / lib / systemd / system.
  4. Наконец, включите службу с помощью sudo systemctl enable fanctrl.service.

Этот метод более безопасен, поскольку программа будет автоматически перезапущена, если ее убьет пользователь или система.

Рекомендуемые: