ラズベリーパイのGPIOは3.3V出力のため直接5V/12Vは制御できません。
しかしトランジスタを使うことで自由にON/OFFできることを紹介します。
実際の回路図・プログラムまで載せていますので誰でも同様にテスト可能です。
ラズベリーパイのGPIOの使い方!5V/12Vを制御してみた
ラズベリーパイのGPIOはコマンド・Pythonから簡単に制御出来て非常に便利です。
GPIOから直接は3.3V出力しかできませんが、トランジスタを利用すれは5V/12Vも制御できます。
PythonでGPIOを制御しつつ、市販の電子部品を使って5V/12Vを駆動する方法を紹介します。
実際に3.3V/5V/12VをON/OFFさせたのを動画にもまとめています。
最初にご覧になるとイメージしやすいと思いますので是非ご覧ください。
ラズベリーパイのGPIOの電圧は3.3V
ラズパイのGPIOは3.3V入出力です。
3.3Vならば簡単に直接駆動することができます。(最大16mAまでですが…)
LED・小さなモータレベルならば動作できるスペックとなっています。
ラズパイのGPIOをPythonで制御する
ラズベリーパイのGPIOのON/OFFはPythonで簡単にON/OFFできます。
今回使うプログラムが下記ですが、10数行で指定のGPIOピンの出力を制御できます。
プログラム内容としては「GPIO17」を「3秒間隔」で「ON/OFFを5回繰り返す」ものです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#!/usr/bin/env python # -*- coding: utf-8 -*- import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) GPIO.setup(17,GPIO.OUT) for i in range(5): GPIO.output(17, True) time.sleep(3) GPIO.output(17, False) time.sleep(3) GPIO.cleanup() |
実際に下記のように簡単に3.3VをON/OFFすることが可能です。
配線も3.3Vならばブレッドボードとジャンパー線で簡単に対応可能です。
(筆者はテスターの電圧測定のためにワニ口クリップも使っています)
Raspberry piとトランジスタで5Vを制御する
ラズベリーパイのGPIOは3.3V入出力のため、5Vは直接制御できません。
下記イメージ図のように5Vモータなどは直接動かすことはできません。
今回はトランジスタを使って5Vを制御します。
※下記イメージ図では「モータ」と書いていますが、今回のテストではLEDで代用します
ラズベリーパイ視点でGPIOをON/OFFすることは変わりません。
そのためPythonのプログラムは3.3Vの時と同じです
トランジスタを使った回路図・配線
今回の回路図としては下記形です。黄色枠のQ1がトランジスタとなります
3.3Vの時に紹介した回路図と同様にGPIO17から出力ON/OFFさせます。
実際の配線は下記写真です。ブレッドボード上に抵抗・トランジスタ・LEDを配置しています。
5V電源はUSBから取り出します
5VでLEDを駆動するにも、どこからか5V電源を持ってくる必要があります。
今回の5V電源はUSBの5Vを利用します。
12V接続を見据えて昇圧モジュールに接続していますが、昇圧はせずそのまま5Vを出力しています。
トランジスタを使うには電流増幅率の計算が必要
本来トランジスタを使うにはベース電流と電流増幅率から流せる電流を計算する必要があります。
(細かいこと言うと、もっと計算する項目ありますが…)
トランジスタの初歩的な計算方法については下記で紹介しています。
またフォトカプラ含めたトランジスタの回路計算・シミュレーション例も下記で紹介しています。
NPNトランジスタ2SC1815を使う
今回は一番汎用的なNPNトランジスタの2SC1815-GRを使っています。
Amazonなどでも普通に売っています。
トランジスタの回路を簡単に計算してみる
今回は数mA~十数mAのLEDを駆動するだけですので、下記のようにざっくり計算しています。
②トランジスタのベースにかかる電圧が3.3V-VBE=2.6V
③ベースに流れる電流がIB=2.6V/10kΩ≒0.26mA
④電流増幅率βが350とするとIC=IB×β≒91mAまで流せる→大体OK
実際に設計する場合はもっと計算する必要がありますが、今回はデバッグレベルのため省略します。
ラズベリーパイで5VをON/OFFしてみる
準備は整いましたのでテストします。
今回は5VのON/OFFを分かりやすく見るためにテスターを接続しています。
ラズベリーパイのGPIOで5VをON
トランジスタ経由でラズパイのGPIOから5VをONできました。
LEDも点灯して、テスターにも約5Vが表示されています。
※細かいことですが、トランジスタのVCE(約0.2V)分あるためテスターが5V以下になっています。
ラズベリーパイのGPIOで5VをOFF
GPIOがOFFする際にはLEDが消灯して、テスターも約0V(数百mV)になっています。
無事ラズベリーパイから5VをON/OFFすることができました。
ラズパイとトランジスタで12VをON/OFFする
今度は12VをON/OFFのテストを行います。
基本回路図・配線ともには5Vの時とほぼ同じですので簡単に紹介します
トランジスタで12Vを駆動する回路図・配線
5Vからの回路図の変更点としては「5V電源→12V電源」「LEDの制限抵抗を330Ω→1kΩ」です。
特に配線も基本5Vと変わり無しです。
※LEDは筆者が区別しやすいように黄色→緑色に変更していますが、特に何でもいいです。
LEDの制限抵抗を計算しておく
330ΩだとLEDに30mAと電流が流れすぎかと思い、制限抵抗を1kΩ(約10mA)に変更しています。
下記のようなざっくり計算です。(LEDのVfは約2Vと計算しています)
本来はLEDの特性見て計算すべきですが、デバッグのため大まかに計算しときます。
・12Vで1kΩの場合…(12V-Vf)/1000≒10mA →こんなもんかと
USBから12V電源を作る。
12V電源は汎用の昇圧型DCDCモジュールでUSBから簡単に作れます
可変抵抗のつまみをドライバーで回すだけで電圧調整が可能です。5V~28Vまで出力可能です。
USB昇圧モジュールに関しての詳細については下記記事をご覧ください。(リンク先はこちらから)
1個当たり100円~200円ぐらいで簡単に手に入ります。
配線にはワニ口クリップを使うと楽です
USBの昇圧モジュールからジャンパー線では接続できないのでワニ口クリップを使うと非常に配線が楽でした。
テスターで電圧測定するときも様々な箇所に接続できるので助かります。
ラズベリーパイで12VをON/OFFしてみる
準備は整いましたので12VのON/OFFテストします。
ラズベリーパイのGPIOで12VをON
トランジスタ経由でラズパイのGPIOから12VをONできました。
LEDも点灯して、テスターにも約12Vが表示されています。
ラズベリーパイのGPIOで12VをOFF
GPIOがOFFする際にはLEDが消灯して、テスターも約0V(数百mV)になっています。
無事ラズベリーパイから12VをON/OFFすることができました。
ラズパイのGPIOを制御したテスト動画
冒頭でも紹介しましたが、3.3V/5V/12VのON/OFFを制御した動画をYoutubeにアップしています。
テスターの画面含めて出力がON/OFFできていることが分かりやすいと思います。
ラズパイとトランジスタで24Vも制御可能
今回の記事では24Vはテストしていませんが、ラズパイとトランジスタで同様に可能です。
下記記事ではPythonではなく、シーケンス制御から24VをON/OFFしています。
よろしければご覧ください。(リンク先はこちらから)
まとめ
今回の記事をまとめますと下記になります。
・トランジスタを使えば5V/12V/24VもON/OFFを制御できる
ぜひ皆さまもラズベリーパイ(raspberry pi)のGPIOを使って試してみてください。
コメント