ラズベリーパイのGPIOの使い方!5V/12Vを制御してみた

ラズベリーパイ(raspberry pi)

ラズベリーパイの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/5V/12Vを制御してみた

 

ラズベリーパイの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回繰り返す」ものです。

 

実際に下記のように簡単に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を出力しています。

 

トランジスタを使うには電流増幅率の計算が必要

本来トランジスタを使うにはベース電流と電流増幅率から流せる電流を計算する必要があります。

(細かいこと言うと、もっと計算する項目ありますが…)

 

トランジスタの初歩的な計算方法については下記で紹介しています。

テスターでトランジスタ電流増幅率(hFE)を測定できる仕組み・カラクリ
結構前に紹介したトランジスタ電流増幅率の記事についての続きです。今回は「テスターでトランジスタの直流電流増幅率(hFE)を測定できる仕組み・カラクリ」を紹介したいと思います。 テスターで電流増幅率を測定できましたが、ただ数値を...

 

またフォトカプラ含めたトランジスタの回路計算・シミュレーション例も下記で紹介しています。

フォトカプラの使い方 ラズベリーパイで絶縁して24Vを動かしてみた
ラズベリーパイ(raspberry pi)で絶縁して安全に24VリレーをON/OFFしたく、フォトカプラで回路を作ってみました。LTspiceのシミュレーション・実際に動作確認したのを記事にしています。 raspberry piは...

 

NPNトランジスタ2SC1815を使う

今回は一番汎用的なNPNトランジスタの2SC1815-GRを使っています。

Amazonなどでも普通に売っています。

 

トランジスタの回路を簡単に計算してみる

今回は数mA~十数mAのLEDを駆動するだけですので、下記のようにざっくり計算しています。

①VBEを≒0.7Vとすると
②トランジスタのベースにかかる電圧が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で330Ωの場合…(12V-Vf)/330≒30mA →流しすぎかと
・12Vで1kΩの場合…(12V-Vf)/1000≒10mA →こんなもんかと

 

USBから12V電源を作る。

12V電源は汎用の昇圧型DCDCモジュールでUSBから簡単に作れます

 

可変抵抗のつまみをドライバーで回すだけで電圧調整が可能です。5V~28Vまで出力可能です。

 

USB昇圧モジュールに関しての詳細については下記記事をご覧ください。(リンク先はこちらから)

DC12V/DC24V電源の自作方法 USB5Vから簡単に昇圧
何かと電気工作をしていてテスト等で市販のリレー・アクチュエータ・ドライバを動かす際には12Vまたは24V電源が欲しい!というシチュエーションがあると思います。 そこで今回は簡単にできるDC12V/DC24V電源の作り方を紹介します ...

 

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できていることが分かりやすいと思います。

ラズパイのGPIOから3.3V/5V/12Vを制御してみた

 

ラズパイとトランジスタで24Vも制御可能

今回の記事では24Vはテストしていませんが、ラズパイとトランジスタで同様に可能です。

下記記事ではPythonではなく、シーケンス制御から24VをON/OFFしています。

よろしければご覧ください。(リンク先はこちらから)

ラズベリーパイでシーケンス制御入門! 24Vリレーを動かしてみた
今回はラズベリーパイ(raspberry pi)でソフトウェアPLC「CODESYS」とNPNトランジスタを使って簡単なシーケンス制御を組んでみました。 実際の工場で使われるPLC(シーケンサ)のように24Vリレーを動作させていきます...

 

まとめ

今回の記事をまとめますと下記になります。

・ラズパイの3.3V出力ならばPythonで簡単にできる
・トランジスタを使えば5V/12V/24VもON/OFFを制御できる

ぜひ皆さまもラズベリーパイ(raspberry pi)のGPIOを使って試してみてください。

コメント