Help us understand the problem. What is going on with this article?

Raspberry Pi でPWM信号を使って5Vファンを制御する

Raspberry Pi でPWM信号を使って5Vファンを制御する

※ 自作PCで使うような4pinファンを動かすのではなく、2pin(VDDとGND) ファンを制御するという内容です。

Raspberry Pi でPWM信号使ってLEDの明るさを変更する でPWM信号を使ってLEDを点灯させた。
Raspberry Pi のPWM出力電圧(3.3V) では5Vファンの入力電圧(5V) には届かないため、GPIOの5V電源をトランジスタで制御し、PWM信号として使用した。

部品類

  • 5V DC-FAN (D02X-05TS1 02)
  • トランジスタ (2SC1815GR)
  • 抵抗 (1kΩ)

回路図と配線

pi_GPIO_PWM_t.png
FAN_PWM.png

PWMを出力するコードを書く

ほとんどLEDの時と同じ
差分としては、LEDの時は10%の出力と100%を繰り返した ( for i in [10, 100, 10, 100]: ) が、
今回使用したファンは10%の出力では始動電力に届かなかったようで動き始めなかったため、20%に変更した ( for i in [20, 100, 20, 100]: ) 。

import RPi.GPIO as GPIO
import time


def main():

    frequency = 200
    repeat_count = 600
    gpio_pin = 18

    GPIO.setmode(GPIO.BCM)
    GPIO.setup(gpio_pin, GPIO.OUT)

    for i in [20, 100, 20, 100]:

        if 0 == i:
            on_time = 0
            off_time = (1 / frequency)
        else:
            on_time = (1 / frequency) * (i / 100)
            off_time = (1 / frequency) * (1 - (i / 100))

        for rc in range(repeat_count):
            GPIO.output(gpio_pin, True)
            time.sleep(on_time)
            GPIO.output(gpio_pin, False)
            time.sleep(off_time)

    GPIO.cleanup()


if __name__ == '__main__':
    main()

Raspberry Pi では "vcgencmd" というコマンドでCPU温度などの情報を取得することが可能なようなので、
○○°Cを超えたらファンの出力を××%に などできそう。

参考記事

RaspberryPiのCPU情報をPythonで取得する

sh_o
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした