LINUX.ORG.RU

Управление вентилятором Raspberry Pi 3 через GPIO

 , , ,


0

1

Я себе вчера приобрел новый металлический корпус для Raspberry Pi 3 с вентилятором. Он работает хорошо, но слишком жужжит, поэтому я его хочу сделать более умным, чтобы он включался только после достижения какой-то пороговой температуры (например, 70 градусов), а если температура ниже, то отключался. Думаю это сделать через скрипт, который отключает/включает GPIO, к которому вентилятор подключен. Проблема в том, что я никогда раньше не работал с GPIO и слышал, что если начать по незнанию экспериментировать, можно вообще все спалить.
Для начала хотелось бы объяснить, как подключается вентилятор. От него идет 2 проводка: красный и черный. По инструкции, шедшей к корпусу, красный проводок подключается к 4 пину, черный - к 6-му. Вот сама инструкция. Пришлось ее сфотографировать, электронной версии я не нашел. Я все подключил правильно, если он нормально работает. Также я нашел инструкцию по отключению одного конкретного пина GPIO. Но осталось несколько вопросов.
1. Какие официальные номера у пинов 4 и 6, к которым подключен вентилятор? Инструкция по вентилятору более адекватная, чем официальная, я сразу же нашел нужные пины. А в официальной нумерации какая-то чертовня, там у этих пинов вообще нет номеров, один закрашен красным цветом, другой - черным. Я здесь пометил белыми стрелками и подписал, к каким пинам подключен вентилятор.
2. Даже если мне удастся определить соответствие пинов с официальной нумерацией, мне их надо оба отключать или только один?
3. Что такое in и out пины и как мне определить, какой из двух пинов in, а какой out? И нужно ли их программно как-то назначать?
4. Или может быть можно вообще весь GPIO вырубать, когда я хочу выключить вентилятор, чтобы не заниматься определением пинов? У меня все равно к нему ничего кроме него не подсоединено. Только можно ли это сделать и если можно, то как?
В общем, плаваю я во всем этом, конкретно плаваю. Помогите, пожалуйста, разобраться!

★★★★★

Последнее исправление: Rinaldus (всего исправлений: 2)

1-3. Пины GPIO универсальные - могут работать и на считывание и на управление, это как ты программно переключишь.

Номера на гребенке и номера в API друг другу не соответствуют, причем у разных моделей разный зоопарк - ищи схемы для своей RPi3.

4. Можно, но зачем? Врубай один нужный пин.

5. Для определения температуры можешь использовать датчик «Dallas DS18B20», он самый дешевый и подключается почти без обвязки (только через резистор 4.7 кОм, цепляется на GPIO4-pin7), схемы ищи в инете.

6. Для замедления кулера можно тупо на блоке питания напряжение понизить, и тогда регулятор не нужно городить, но это не труЪ.

7. Вот тебе для начала моя программа на питоне, она управляет нагревателем, но принцип тот же:
https://github.com/Novator/rpitereg

8. Кстати, как ты собираешься питать вентилятор? Напрямую к GPIO подключать? А ему разве 3.5В хватит? Я думаю там нужно минимум 5В, так что тебе придётся какой-то ключ городить, скорее всего на транзисторе.

Novator ★★★★★
()
Последнее исправление: Novator (всего исправлений: 1)

Распиновка тут.

Лучше вентиль подключать красным не на 5 вольт, а на 3,3 (пин 1). Если вентиль обычный типа 80х80, то на 5 вольтах будет выть как бешенный.

IK_RUS
()
Ответ на: комментарий от Novator

5. Для определения температуры можешь использовать датчик «Dallas DS18B20», он самый дешевый и подключается почти без обвязки (только через резистор 4.7 кОм, цепляется на GPIO4-pin7), схемы ищи в инете.

Зачем такие сложности?

/opt/vc/bin/vcgencmd measure_temp
выводится температура. А если покупать дополнительные прибамбасы, то в корпус они не поместятся.

8. Кстати, как ты собираешься питать вентилятор? Напрямую к GPIO подключать? А ему разве 3.5В хватит? Я думаю там нужно минимум 5В, так что тебе придётся какой-то ключ городить, скорее всего на транзисторе.

Я же написал, что вентилятор подключается к GPIO двумя проводками.

Rinaldus ★★★★★
() автор топика
Ответ на: комментарий от IK_RUS

Он не воет, но жужжит неприятно, как комар над ухом. Днем еще ничего, но ночью раздражает. Я сплю в комнате, где он находится. Не думаю, что уменьшать напряжение - хорошая идея, он ведь все-таки на 5 В рассчитан, а значит с меньшим напряжением может перегреваться. И когда я устанавливал плату в корпус, мне пришлось снять радиатор на процессоре, иначе он вместе с ним в него не влезал. Поэтому если вентилятор будет работать внештатно, боюсь что процессор может просто перегреться и сгореть.

Rinaldus ★★★★★
() автор топика
Ответ на: комментарий от sin-ok

Я попробовал, руководствуясь инструкцией по твоей ссылке, отключить сначала пин 4, потом пин 6, но он по-прежнему гудит. Вроде бы номера пинов верные. Не получается отключить.

Rinaldus ★★★★★
() автор топика
Ответ на: комментарий от Rinaldus

Да ничо ей сделается, не битки же майнит 24/7. У меня коди без проблем вещает 1080p с вентилем на 3.3.

P. S. На Али есть алюминиевые корпуса с «ножкой»-теплосъемником. Достаточно зашкурить ее и махнуть неможко термопасты в месте соприкосновения с чипом и можно обойтись вовсе без винтиля.

IK_RUS
()

А чего с ШИМ-ом не хочешь замарочиться?

burato ★★★★★
()
Ответ на: комментарий от sin-ok

Я теперь сомневаюсь, что вообще можно отключить пин4. Я пару питоновских скриптов нашел, но вентилятор гудит. Сами скрипты при этом никаких ошибок не выдают. Я сейчас только что сделал «shutdown -h now» - вентилятор гудит даже когда Raspberry Pi выключен! Так что вряд ли получится отключить. Вентилятор затыкается только когда я вырублю его из розетки. :( Капец.

Rinaldus ★★★★★
() автор топика

не лезь! пока шестую звезду не получишь, лучше не лезь, от греха подальше. спалишь всё там своим вентилятором — навряд ли гпио рассчитаны на такую нагрузку.

anonymous
()
Ответ на: комментарий от Black_Shadow

А есть ли какие-нибудь пины, которые подают такое же напряжение, но которыми можно управлять? Или может быть еще какой-нибудь способ, чтобы решить мою проблему? Помимо переключения на меньшее напряжение. Этот вариант я тоже учитываю, но как последнее средство, если не найдется более приемлимых вариантов.

Rinaldus ★★★★★
() автор топика
Последнее исправление: Rinaldus (всего исправлений: 1)
Ответ на: комментарий от Rinaldus

У тебя малина современная, а в статье нет. Не кипятись, открывай ту ссылку, спускайся вниз страницы, смотри схему 2. Слева на право. К 1k резистору подтягиваешь 7ю ногу GPIO. Эмиттер транзистора структуры NPN на 6ю ногу. Коллектор транзистора к черному проводку от вентилятора, а красный проводок подключаешь к 4й ноге (5V). Скрипт правишь, в нем дергаешь 7ю ногу. Если нужна плавность, почитай о ШИМ, на малине он реализуем. Если тебе нравится python, то вот http://www.poprobot.ru/home/raspberrypi-pwm и вот https://circuitdigest.com/microcontroller-projects/raspberry-pi-pwm-tutorial

sin-ok
()
Ответ на: комментарий от Jopich1

Тоже такого мнения, достаточно радиатора, причем одного.

sin-ok
()
Ответ на: комментарий от Rinaldus

поставь резистор на минимум оборотов. А вообще проще радиатор пассивный приклеить

Jopich1
()
Ответ на: комментарий от sin-ok

Эти детали все влезут в корпус? Где мне покупать 1k резистор? И что такое эмиттер транзистора и коллектор транзистора? Я не схемотехник. Для меня это все как китайская грамота.

Rinaldus ★★★★★
() автор топика
Ответ на: комментарий от Rinaldus

Это начала электроники. И именно так правильно коммутировать нагрузку, а лучше вовсе через оптопары. Напрямую подключать крайне нежелательно. Вот только не обижайся. Каждый из нас владеет определенными навыками и информацией, каждому своё и это нормально. Малине не нужен вентилятор в подавляющем большинстве случаев. Пока ты не сжег её, успокойся, сложи всё и забудь. Давай ты попробуешь все освоить на дешевых arduino nano (mini). Там все также.

Как быть с транзисторами. Да вот так http://elektrik24.net/instrumentyi/izmeritelnyie/multimetr/kak-proverit-tranz... А вот так управлять нагрузкой

https://velikodniy.github.io/2017/01/06/power-control/

Резистор из любого явно дохлого устройства. Извини, я не сокращал ссылки, смотрится страшновато. Успехов!

sin-ok
()
Ответ на: комментарий от Rinaldus

А есть ли какие-нибудь пины, которые подают такое же напряжение, но которыми можно управлять?

Нет.

Или может быть еще какой-нибудь способ, чтобы решить мою проблему? Помимо переключения на меньшее напряжение. Этот вариант я тоже учитываю, но как последнее средство, если не найдется более приемлимых вариантов.

Да, тебе тут где-то кидали схему с транзистором.

Black_Shadow ★★★★★
()
Ответ на: комментарий от sin-ok

Я заказал на Али комплект радиаторов (не сочти за рекламу). Там целых 12 штук самых разных габаритов. Мне этого хватит с запасом. А сам корпус мне очень нравится. 100% металл, т.е дополнительный теплоотвод. А пока радиаторы доставляют (примерно 3 недели - 1 месяц), я потерплю с шумом от вентилятора.

Rinaldus ★★★★★
() автор топика
Ответ на: комментарий от Rinaldus

+5v и земля общие на всю плату, отключить их можно выдернув шнурок питания, не глупи. Пылесборник на малину, если она в комнате где спишь - это тот еще маразм, выкинь его и поставь радиатор медный с высотой ~равной портам usb или купи корпус металлический который сам будет выступать радиатором.

anonymous
()
Ответ на: комментарий от Rinaldus

Жил бы в одном городе спаял бы тебе эту байду)

tyamur ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.