忍者ブログ

設備のマニアどっとこむ

IoT開発、設備・DIYのブログ!

Raspberry piのgpio出力をUSB5Vとして出力する方法

ラズパイのGPIOを使うとき、実はいろいろな制限があります。
ピンの出力電圧は3,3V、流せる電流はピンごとでは8mA、トータルで50mA程度が最大だそうです。

例えばこんなパトランプを制御しようとすると…




ダメですね。0.14Aも流れているのでまったく動かせません。というよりそもそもUSB出力なので5V仕様です。

USB出力を動かすやり方は2つあります。

①ラズパイのUSB出力を制御する。
②トランジスタを使って増幅させる。

①はラズパイのUSB出力をシェルスクリプトでON、OFFさせる方法です。


USB OFF のスクリプト
sudo hub-ctrl -b 1 -d 2 -P 2 -p 0


USB ON のスクリプト
sudo hub-ctrl -b 1 -d 2 -P 2 -p 1

ラズパイ3B+でしか試していませんが、USB出力すべてが動作してしまうため、あまり使い勝手がよくありません。USBのWEBカメラなども接続している場合は停止してしまいます。

続いて②です。arduinoのように5VでGPIO出力できなくてもピンとしては5V電源は取れるので


下記のように接続し、GPIOの信号で負荷に5V印加できるようにします。
※8/10図を修正しました。指摘の多かった電流制限抵抗とフライホイールダイオードを入れています。

USBのメス側とトランジスタ(2C1815)が必要です。





パトランプは負荷のところへ挟み込み、片方はラズパイの5V出力につなぎます。3.3VのGPIO出力はベースとしてトランジスタへ接続します。コレクタに流せる最大電流は150mAなので問題ありません。

あとはGPIOを制御するプログラムを作るだけです。このやり方はラズパイだけではなく、ESP32
あたりのモジュールでも使うのですが、今回「あれ?どうやってやるんだっけ?」ってなったので備忘でまとめました。直流モーターを制御するときに必要です。

…こんなめんどくさいことしなくていいようにラズパイに5Vの入出力端子デフォルトで作ってほしいですけどね。







拍手[0回]

PR

コメント

1. 無題

この接続だと、raspberrypiのgpioから過大な電流が流れて最悪壊れます。
最大16mAらしいので余裕をみて270Ω以上の抵抗をgpioとトランジスタのベースの間に入れるべきです。
また、負荷にモーターやリレーを繋ぐ場合は、スイッチング時に発生するサージでトランジットを壊す可能性がありますので、負荷と並列に逆方向になるようにフライホイールダイオードを接続した方がいいです。

Re:無題


コメントありがとうございます。
図を修正させていただきました!!

2. 無題

電流制限抵抗が挿入されている場所が間違っています。
gpioとトランジスタのベースの間に入れる必要があります。
(負荷のパトライトに直列に抵抗を入れたら、パトライトは動かないと思われます。)

Re:無題

抵抗の位置を変えました。ご指摘ありがとうございました。

翻訳(Translate)

プロフィール

HN:
佐々木 雅史
性別:
男性
自己紹介:
2021年 ラズパイ、M5stackを用いたIoT開発を専門で受注するアルティメンテを設立。代表を務める。
・2020年ラズパイコンテスト優良賞受賞
・設備系資格多数(電験3種、消防設備士甲4、2級ボイラー技士、危険物乙4、電工2種、技術士補(電気・電子)、エネ電、フォークリフトなど)

AD

カレンダー

10 2024/11 12
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30