第22回 Raspberry PiのGPIO概要

今回はRaspberry PiのGPIOピンの概要を確認します。

今回の説明内容

今回はRaspberry PiのGPIOピンの概要を確認します。GPIOのピン番号や電気的仕様を確認したあと、GPIOピンにLEDを接続する回路とスイッチを接続する回路を検討します。

今回の説明内容は以下になります。

  • GPIOピン番号
  • GPIOピンの電気的仕様
  • GPIOピンのLEDを接続する回路
  • GPIOピンにスイッチを接続する回路
  • プルアップ抵抗・プルダウン抵抗の注意点
  • 補足 – Raspberry Pi内部のプルアップ・プルダウン抵抗

 

GPIOピンの番号

Raspberry Piにはプログラムで制御できるGPIOピンは26本あります。プログラムで制御する際、どのGPIOピンを制御するのかを「番号」で指定します。例えば「何番のピンの出力電圧を3.3Vにする」「何番のピンの電圧の状態を読み取る」などです。

この「番号」ですが、Raspberry Piの場合、指定方法が2種類あります。その2種類とは「ピン番号による指定」と「GPIO番号による指定」です。っていっても何のことやら、という感じですよね。Raspberry PiのGPIOを使う際に大前提となる部分ですので、詳しく説明します。

まず一つ目の制御方法は「ピン番号による指定」です。第17回の記事で説明しましたが、Raspberry PiのGPIOピンは以下のように番号が割振りられていることを確認しました。

Raspberry Pi GPIOピン番号

このピン番号を使って、「何番のピンの出力電圧を3.3Vにする」などと指定する方法が「ピン番号による指定」です。

この指定方法だけで十分な気がしますが、Raspberry Piにはもう一つGPIOピンを指定する方法があります。それは「GPIO番号」による指定です。このGPIO番号について詳しく説明します。

Rasbperry Piの処理の中心となるプロセッサはブロードコム社の「BCM2837」(あるいはBCM2836)というものが使用されています。このプロセッサには非常に多くのピンがあり、その中にGPIOピンもあります。このプロセッサのGPIOピンは53本あります。この53本のGPIOピンのうち、2番から27番の26本がRaspberry PiのGPIOコネクタに接続されています。例えばBCM2837にはGPIO2というピンがあり、これが拡張コネクタの3番ピンに接続されています。

Raspberry PI GPIOピンBCM番号

GPIOピンを指定する一つ目の方法は、Raspberry Piのピン番号を指定する方法でしたが、もう一つの方法とはこのプロセッサのGPIO番号を指定する方法なんです。上の例では、Raspberry PiのGPIOピン番号指定は「3番」になりますが、プロセッサのGPIO番号指定は「2番」になります。

何だかややこしくなってきましたね。どちらかに統一して欲しい気もしますが、それぞれ特徴があります。

Raspberry PiのGPIOコネクタのピン番号指定の場合は、物理的な位置がわかりやすい特徴があります。一方、GPIO番号指定の場合は、番号が2番〜27番の連番になっています。GPIO番号は連番になっているので、プログラムを作る際はこちらの方が便利かもしれません。

ちょっと先の話になってしまいますが、このシリーズ記事の後半ではPythonでGPIOピンを制御します。その際、ライブラリを利用するのですが、プログラムの最初で「ピン番号」で指定するのか、「GPIO番号」で指定するのかの設定をします。その際、Pythonプログラム上では、ピン番号の場合は 「BOARD」、GPIO番号の場合は 「BCM」と指定します。この「BCM」は先ほど説明したプロセッサ名に由来しています。「BOARD」というのはRaspberry Piの基板(本体)のことで、GPIOコネクタを意味しています。

ピン番号で指定する場合は物理的な位置で確認できますが、GPIO番号はどうなっているか外見ではわかりませんよね。以下の表はどのピンがどのGPIO番号かまとめたものです。

Raspberrypi gpio numbering

GPIOの番号自体は連番になっているものの、配置は結構バラバラですよね。ちゃんと並べてくれればいいのに、という気もしますが、これは仕方ない面もあります。拡張コネクタのGPIOピンは、プロセッサのGPIOピンから配線して接続する必要があります。プロセッサ(BCM2837)は非常に多くのピンがあり、他の配線も多くありますので、拡張コネクタ上に連番で並べようとすると配線が交差してしまいうまく配線できなくなってしまいます。交差を緩和する方法もありますが、そうすると製造コストが高くなってしまいます。ということで、このような配列で決着したのだと思います。

なお、GPIOピンの中でもGPIO2とGPIO3は他のピンと電気的特性が異なるので注意が必要です。具体的には、回路内部で抵抗が接続されていますので、これらのピンを使用する場合、電子回路上問題ないか確認する必要があります。この注意点については、この記事の後半のスイッチを接続するセクションで詳しく説明します。

また、(GPIO番号ではなく)ピン番号の27番と28番の「ID_SD」と「ID_SC」は外部にEEPROMというデータを保存するための部品を接続するピンですが、あまり使用しないと思います。

GPIOピンで出力電圧を制御したり、電圧値を読み取ったりできますが、出力電圧を制御するのか、あるいは電圧値を読み取るのかは、プログラムで各GPIOピンの役割を設定します。Raspberry Piでは、このような出力電圧制御や入力電圧の読み取り以外にも、設定を変えると外部とデータ通信も可能になります。データ通信を行う場合は、データ通信の方式により使用するピンが決められています。

この入門シリーズの範囲を超えた説明になってしまいますが、例えばSPI通信というデータ通信方式があります。このSPI通信では、GPIO番号のGPIO7〜GPIO11の5ピンがこの通信のために専用に割り当てられます。SPI通信を行う場合は、プログラムでSPI通信を行うように設定することになります。

 

GPIOピンの電気的仕様

先ほど説明しました通り、GPIOピンはプログラムの設定で、出力電圧制御ができるようにしたり、入力電圧の読み取りができるようにすることができます。

それぞれのケースで、電気的な制限がありますのでまとめておきます。

まず、出力電圧を制御する際の制限です。GPIOを出力電圧制御ができるように設定すると、Raspberry Piの内部の電気的な動作は以下のようになります。

Gpio out 1

この状態で例えばLEDを光らせる回路を接続すると、以下のように電流が流れます。

Gpio out 2

GPIOを出力電圧制御にした場合、このように電流が流れますが、この電流には以下のような制限があります。

  • GPIOピン1本あたりの最大電流は16mA
  • 複数本のGPIOピンを使用する場合、同時に流せる電流の合計は50mAまで

「制限」と書くと、例えばGPIOピンに20mA流れるようなLEDを光らせる回路を接続した場合、GPIOピンから流れる電流は16mAで制限される、という意味に取られるかもしれません。でも実際には、20mA流れるような回路を接続すると20mA流れてしまいます。上の制限とは「この値を超えないように電子回路を設計してください」いう意味になります。

では、上の制限を超えて使用するとどうなるのでしょうか。これはプロセッサ(BCM2837)のGPIOピンの制限ですので、いずれプロセッサがダメになってしまいます。

また、複数本のGPIOピンを使用する場合は、1本のGPIOピンに流す電流が16mA以内であっても、同時に流れる電流の合計は50mAを超えないようにします。GPIOピンは26本もありますので、26個のLEDを光らせることはできますが、それぞれのLEDに流れる電流が2mAでも合計電流は52mAとなりオーバーしてしまいます。

これが電気的制限の通り一遍の説明ですが、実際にはさらに注意することがあります。

実際の回路を設計する場合は、上の電気的制限ギリギリに設計しないことです。ギリギリで設計すると、例えば部品のばらつきや温度変化で特性が変わってきますので、動作する環境によっては制限をオーバーしてしまいます。ではどのぐらいを目安にすればよいかというと、だいたい制限値の半分〜7割程度が望ましいです。

Raspberry Piでは、GPIO1ピンあたりせいぜい10mA程度、合計の電流は30mA程度を目安にすると安心です。

次に電圧を読み取る場合の制限です。

GPIOピンで電圧を読み取るようにした場合、Raspberry Piの内部は以下のようになります。

Gpio in 1

この時、GPIOピンに入力する電圧は、0V〜3.3Vの範囲内にする必要があります。3.3V以上の電圧を加えると、先ほどの電流のケースと同様に、プロセッサがダメになってしまう可能性があります。

なお、Raspberry PiのGPIOピンは電圧値そのものを読み取ることはできず、0Vか3.3Vかのどちらかを読み取ることになります(例えば1.5Vの時に、1.5Vとして読むことはできない)。では、中間の値の時はどうなるのかというと、以下のようになります。

電圧 読み取り値
0V〜0.8V 0Vとして読み取る
0.8V〜1.3V 不定
1.3V〜3.3V 3.3Vとして読み取る

GPIOで電圧を読みとる場合、3.3Vを超えないようにすることも重要ですが、0Vから3.3Vのどちらかをきちんと読み取れるようにすることも大切です。

 

GPIOピンにLEDを接続する回路

GPIOピンにLEDを接続して点滅制御する回路を検討してみます。といっても先ほど例としてあげましたので、以下のように接続すればLEDを点滅制御できますよね。

Gpio out led source

このような回路にすれば、プログラムのGPIOピンのスイッチをONにすると、GPIOピンの出力電圧は3.3VになってLEDが光ります。当然、スイッチをOFFにすればLEDは光りません。(スイッチは実際にあるのではなく、電気的に制御しているだけです)

もう一つ、以下のように接続する方法もあります。

Gpio out led sink

この場合は、スイッチをOFFにするとLEDが光り、ONにすると光りません。これは前回説明したように抵抗やLEDに電位差があるかないかで考えればわかりますよね。

でも下の方は、スイッチの状態とLEDの光る状態が逆なので分かりづらいですよね。Raspberry PiのGPIOピンの場合は分かりやすい上の方の接続で問題ないですが、他の電子回路の場合は下のケースの方が有利な場合もあります。

上の方は、スイッチをONにするとGPIOピンから電流が抵抗・LEDに流れ出ます。これをソース電流と呼んでいます。(「ソース」は源、出どころ、とかいう意味です)

Gpio out led source cur

これに対して、もう一方の接続方法は、スイッチをOFFにすると、抵抗・LEDを通してGPIOピンに電流が流れ込みます。これをシンク電流と呼んでいます。(「シンク」は沈み込むなどの意味です)

Gpio out led sink cur

Raspberry PiのGPIOピンの場合、ソース電流とシンク電流の制限は16mAで同じ仕様になっています。でもこの電流はいつも同じとは限らず、他の電子部品(マイコンなど)では、製品によっては、電流制限はソース電流よりシンク電流の方が大きい場合があります。そのような場合、より大きな電流を流すためにシンク電流でLEDを光らせるケースもあります。

 

GPIOピンにスイッチを接続する回路

GPIOピンを、電圧の状態を読み取るように設定した場合、0Vか3.3Vか(実際のプログラムでは0か1か)を知ることができます。この仕組みを使って、スイッチの状態を読み取ることができます。

スイッチを使ってGPIOピンを0Vか3.3Vにするのは簡単そうですよね。例えばこんな感じです。

Gpio switch 1

このようにすれば、スイッチがONの時、GPIOピンは3.3Vになり、プログラムでこの値を読むと3.3Vが読み取れます(実際は数値として1が読み取れる)。でもこのスイッチの回路は問題があります。スイッチをOFFにすると、GPIOピンはどこにも繋がれていないので、電位が不安定になります。

Gpio switch 2

スイッチがOFFの場合、GPIOピンが0Vになればいいんですよね。ってことで、スイッチがOFFの時に0Vになるように以下のように回路を追加してみました。

Gpio switch 3

でもこのようにするとスイッチを入れた時に問題が発生します。スイッチをONにすると、、、

Gpio switch 4

電源のプラス側とマイナス側が直接接続される、つまりショートしてしまいます。この問題を避けるためには以下のように抵抗を接続します。

Gpio switch 5

このようにすると、スイッチがOFFの場合はGPIOピンの電圧は0Vになります。ちょっとわかりづらいようでしたら、前回の記事の電位を求めるクイズのM点のところを見てみてださい。同じ回路になっています。

スイッチ回路はスイッチ開放時に電圧が不安定にならないように、このように抵抗を接続します。この抵抗のことを「プルダウン抵抗」と呼んでいます。0Vの方に引っ張って(プルして)、0Vに落とす(ダウン)という意味です。プルダウン抵抗、ということはプルアップ抵抗とかいうのもあるんでしょうか。実はあります。以下の回路がプルアップ抵抗をつけたスイッチ回路です。

Gpio switch 6

この回路の場合、スイッチがONの時、GPIOピンは0V、OFFの時3.3Vになります。ONの時は0Vにつながっていますのでわかると思いますが、スイッチがOFFの時はちょっとわかりづらいかもしれません。まずRaspberry Piに限らず、マイコンなどの入力ピンにはほとんど電流が流れません。

Gpio switch 7

そのため、スイッチをONにした時のGPIOピンの電圧は、前回のK点と同じことになります。

なお、プルダウン・プルアップの抵抗ですが、だいたい1kΩ〜10kΩのものを使用します。この入門シリーズでは1kΩの抵抗を使用します。

ということでスイッチ回路ができました。と言いたいところですが、今回の入門シリーズのスイッチ回路は、安全対策もしておきます。

Raspberry PiのGPIOピンの機能はプログラムで簡単に変更できます。この入門シリーズではスイッチを一つつけますが、もしそのスイッチを接続したGPIOピンを間違って出力電圧制御にしてしまった場合を考えてみます。出力電圧制御の場合、電気的には以下のような回路になります。(出力電圧を0Vにしている場合です)

Gpio switch 8

この時、スイッチをONにすると、、、

Gpio switch 9

ということでショートしてしまいます。プログラムが動かない時に、いろいろ設定を変えて動作確認するケースなどもあります。その時に気づかないで上のような状況になってしまう可能性もあります。そこで、上のような接続になった場合でも電流が流れ過ぎないように1kΩの抵抗をGPIOピンの入力のところに追加します。

Gpio switch 10

このように抵抗を接続しておけば、この回路でスイッチがONになっても、電流はあまり流れません。1kΩの抵抗を使いますので、電流 = 電圧 ÷ 抵抗 = 3.3 ÷ 1k = 3.3mAです。3.3mAであれば間違ってスイッチをずっと押したままでも何も問題はありません。

ところで、この抵抗をつけた場合、スイッチの状態はきちんと読み取れるのでしょうか。

Gpio switch 11

この回路でスイッチをONにした時とOFFにした時は、前回の電圧を考える回路のP点とQ点と同じになります。

これでスイッチ回路もできました。

 

プルアップ抵抗・プルダウン抵抗の注意点

一番最初のGPIOのピン番号の説明で、GPIO2とGPIO3は内部で抵抗が接続されている、と説明しました。具体的にどうなっているのか確認してみます。

Gpio2 3 pullup register
Raspberry Pi電子回路図より引用・加工

ちょっとわかりづらいかもしれませんが、今までの知識があればこの回路図は読めるようになっていると思います。中央にある黒い四角が2列あるところがGPIOピンです。3番ピンと5版ピンはGPIO2とGPIO3ですが、内部回路を見ると、1.8kΩの抵抗で3.3Vの電源に繋がれています。GPIO2とGPIO3は1.8kΩの抵抗が接続されていることがわかります。この理由ですが、GPIO2とGPIO3はI2Cというデータ通信にも使われるピンで、このデータ通信を行う場合、この2つの信号線は抵抗を接続する必要があります。そのため、もともとRaspberry Piの回路側で抵抗が接続されています。

このGPIO2とGPIO3に先ほどのスイッチ回路を接続した場合を考えてみます。

Gpio2 3 pullup register 2

なんかだんだん回路が複雑になってきましたね。もう一息頑張りましょう!

この回路はスイッチがOFFの状態ですが、入力電圧の値は0Vではありません。この回路を書き換えると、以下のようになります。

Gpio2 3 pullup register 3

詳しい計算は省略しますが、この回路の電圧は、約1.74Vになります。電圧の読み取りは以下のようになっていました。

電圧 読み取り値
0V〜0.8V 0Vとして読み取る
0.8V〜1.3V 不定
1.3V〜3.3V 3.3Vとして読み取る

1.74Vの場合、3.3Vとして読み取られてしまいます。つまり保護抵抗をつけたスイッチの回路はこのままGPIO2とGPIO3には接続できないことになります。実際にこのような回路を作った場合、スイッチをONにしてもOFFにしても3.3Vとして読み取られてしまいます。

GPIO2とGPIO3を使用する場合は内部の抵抗に注意してください。

 

補足 – Raspberry Pi内部のプルアップ・プルダウン抵抗

今回はプルアップ・プルダウン抵抗を用意しましたが、Raspberry Pi(プロセッサのBCM2836/2837)ではソフトウエアでプルアップ・プルダウン抵抗を設定できます。これはRaspberry Piに限らず、一般的なマイコンなどでも同様の機能を持っています。

内部のプルアップ・プルダウン抵抗を設定すればスイッチを直接GPIOピンに接続しても問題ありませんので、部品点数を減らすことができます。ただ、その場合でも先ほどのようにGPIOの設定を出力電圧制御にした場合、ショートが発生するリスクがあります。

内部のプルアップ・プルダウン抵抗は、電子回路設計に慣れてきてからトライしてみてください。

 

更新履歴

日付 内容
2015.11.23 新規投稿
2019.5.6 一部説明補足
通知の設定
通知タイミング
guest
0 コメント
本文中にフィードバック
全てのコメントを見る
わんころもち
わんころもち
8 月 前

大変勉強になっております。全くの初心者のアラフィフです。
「そうだったのか!」と一つ一つ分かりやすい記事で嬉しいです。
今回の記事で「ショート」について書かれていますが、私の勘違いで電源のプラスとプラスをつなぎでしまうことではないのですね。知らないって怖いですね。電子回路難しいー。
また、質問者させていただきます。

管理者
管理者
返信  わんころもち
7 月 前

コメントどうもありがとうございます!

電子回路はなんだか人工的な印象がありますが、全て自然現象を利用したものなので、一つ一つ紐解いていけばだんだんわかるようになってきます。このシリーズでは簡単な回路しか作りませんので、このあとぜひご自分でいろいろな回路に挑戦していただければと思います。

電子回路とは対照的に、プログラムの世界は人が作ったものなので時間が経つとどんどん変わってきます。このシリーズの記事もすっかり古くなってしまいましたので、時間を見つけて新しい内容に書き換えていく予定ですので、引き続きよろしくお願いいたします。

わんころもち
わんころもち
返信  管理者
7 月 前

新しい記事が出来るのが今から楽しみにしております。
他の記事も参照させて頂いて、PICやRaspberry Pi Picoにもチャレンジして行く予定です。慣れてきたら独自の電子工作もやってみたいと思っております!

うさぎのおとこ
うさぎのおとこ
10 月 前

コメント失礼します。
Raspberry Piと水素センサーMQ8を接続して、水素センサーからADコンバータを用いて水素検知を行いたいのですがどのように配線を行えば安全に使用できるのか考えています。現在考えていることは、トランジスタを使用して計測時のみに電流を流したいと考えています。また、計測はVNC/SSHクライアントをインストールしたPCから操作したいと考えています。よろしければ少しでも教えて頂きたいです。

自身が持っているものの紹介をさせていただきます。
<水素センサーの概要>
http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Sensors/Biometric/MQ-8.pdf

Raspberry Pi 3modelB+

MCP3208
その他ジャンパー線やブレッドボードは持っています。

こちらの画像を参考にし、においセンサーの部分をMQ8に置き換えて接続したいと考えております。comment image

現在抱えている問題について述べさせていただきます。
・センサーが5Vの電圧を要しており、トランジスタを用いての制御は難しいでしょうか?
・画像の回路図がいまいちつかめない(特にトランジスタ接続後の回路図が)ので教えて頂きたいです。
・必要な抵抗の種類についても教えて頂きたいです。

つたない説明しかできず、申し訳ないのですが少しでもご教示頂ければ幸いです。
なにとぞよろしくお願いいたします。

管理者
管理者
返信  うさぎのおとこ
2 月 前

ブレッドボード図で使用している部品リストがありませんので、お答えすることは難しいですが、ガス系センサはヒーターを温める必要があります。そのため、GPIOでは電力が取れませんので、トランジスタを使ってヒーターのON/OFFをするのが普通です。抵抗値はバイポーラトランジスタ、ユニポーラトランジスタのどちらを使用するかで変わってきます。

添付いただいたブレッドボードの回路は、トランジスタを2個使用して、交流でヒーターを温めているように思います。

あくまでトランジスタはGPIOで出力電流が足りないために使用しているだけで、トランジスタの動作としてはスイッチングになりますので、トランジスタのスイッチングの回路を確認いただければOKかと思います。

すみません、十分な説明ができず申し訳ございません。

キャップ
キャップ
4 年 前

電子回路の勉強を始めたばかりの初心者です。
Raspberry Piへの回路接続で、やってはいけない接続を調べている最中です。
もしよろしければ教えていただけないでしょうか。

claynetsさんの記事を見て覚えた内容。

電源をショートさせる行為
・3.3Vまたは5V電源を直接、GNDに接続

Raspberry Piの制限を越える接続
・GPIOピン1本から16mAを超えた電流を流す
・複数本のGPIOピンを使用し、合計50mAを超えた電流を流す

こちらは問題の接続に当てはまりますか?
・GPIOピン(OUT)を直接GNDに接続。GPIOピン(OUT)から3.3V出力
・GPIOピン(OUT)を直接GPIOピン(IN)に接続。GPIOピン(OUT)から3.3V出力

管理者
管理者
返信  キャップ
4 年 前

キャップさま、
ご質問いただきどうもありがとうございます!

早速ですがご質問の回答です。

・GPIOピン(OUT)を直接GNDに接続。GPIOピン(OUT)から3.3V出力
  → これはNG接続になります。GPIOピン(OUT)から大きな電流が流れてしまいます。

・GPIOピン(OUT)を直接GPIOピン(IN)に接続。GPIOピン(OUT)から3.3V出力
  → これはOKです。

ちょっと???かもしれませんが、以下の考え方を身につけていただければ他のケースでも自分で考えることができると思います。

性質1) GPIOピンを出力にした場合、そのGPIOピンはなるべく電流を流そうとする性質を持ちます。

性質2) GPIOピンを入力にした場合、そのGPIOピンはなるべく電流をもらわないような性質を持ちます。

この2つの性質を覚えておけば、いろいろなケースでも対応できると思います。この性質は、Raspberry Piに限らず、ArduinoやBeaglebone、PICマイコンでも同じ性質ですので応用がきくと思います!

他にも不明点がございましたらご質問いただければと思います。

キャップ
キャップ
返信  管理者
4 年 前

ご回答ありがとうございます。

とても分かりやすい説明で理解できました。

自分で回路を組み替えていたとき、Raspberry Piが再起動しているようだったので、今回の理解で解決できました。
感謝いたします。

管理者
管理者
返信  キャップ
4 年 前

早速のご確認どうもありがとうございました!

他にも何かわからないことがありましたらご質問いただければと思います。

キャップ
キャップ
返信  管理者
4 年 前

お手数をおかけします。また質問よろしいでしょうか。

電子回路に興味を持ち始め、電源が欲しくなりました。
毎回、Raspberry Piから3.3Vや5Vの電源を取っていたのですが、GPIOの制御をしない場合は、別の電源を使用したいと考えています。

私の頭では、直流安定化電源または乾電池しか思い浮かびません。
他に選択肢やお勧めはありますでしょうか?
アドバイスをいただけると助かります。

管理者
管理者
返信  キャップ
4 年 前

ご質問どうもありがとうございます。

直流安定化電源や電池の他にもいくつかあります。なお、直流安定化電源は本格的なものになると値段がかなり高いので、入手しやすい値段のものをご紹介します。

以下の候補が考えられますので、ご自分にあったものを選ばれると良いと思います。

a) 電池

 使い捨て電池は1.5V、充電電池は1.25Vですので、これらを組み合わせてほしい電圧にする方法があります。例えば3.3Vや5Vなど、正確な電圧が欲しい場合は、3端子レギュレータという部品を使用します。例えば3.3Vでしたら以下のようなものです。

http://akizukidenshi.com/catalog/g/gI-00534/

ブレッドボード上に回路を組んで、電池から3.3Vを作ることができます。

b) スイッチングACアダプタ

 ステッピングモーターなど電力消費量の多い部品を使用すると電池がすぐになくなってしまいますので、そのような場合はACアダプタなどを使用するとよいと思います。以下のアダプタは5V2Aですので、ちょっとした回路実験に十分だと思います。

http://akizukidenshi.com/catalog/g/gM-11996/

 なお、ACアダプタからブレッドボードに電源供給する場合は、以下のような部品を使用します。

http://akizukidenshi.com/catalog/g/gK-05148/

c) 安定化電源キット

 固定電圧ではなく、いろいろな電圧で動作させたい場合は直流安定化電源があるといいですが、値段がかなり高いので、キットを使用すると良いと思います。秋月電子通商で手頃な価格で可変電圧電源キットが売られています。

http://akizukidenshi.com/catalog/g/gK-00095/

 実際に使用する場合はこのキット以外にACアダプタ、可変抵抗(ボリューム)などが必要になります。

d) スマホやゲーム機用の充電USB電源アダプタ

 出力電圧は5Vのものが多いですが、5Vでよければこの選択肢もあります。USB端子からブレッドボードに接続する場合は以下のような部品を使用します。

http://akizukidenshi.com/catalog/g/gK-06656/

思いつくのはこのぐらいですが、ご自分の用途にあったものを選択されるとよいとおもいます。自分の場合は、(c)をよく使います。

キャップ
キャップ
返信  管理者
4 年 前

ご回答ありがとうございます。
電源にも色々あるのですね。こんなに種類があるとは知らず驚きました。

3端子レギュレータは初めて聞いた部品でしたが、定電圧レギュレータなら私のような初心者にも使いやすそうです。

秋月電子通商は遠いので、通販でa)~d)と、関連する部品をまとめて購入して使ってみようと思います。
ただ、C)は難易度が高そうなので、製作は最後になりそうです。

このような情報は初心者にはとてもありがたく、a)~d)と言った、電源のまとまった情報が記載されているサイトは見つからなかったのでとても助かりました。

この度は、ご親切にありがとうございました。

管理者
管理者
返信  キャップ
4 年 前

電子回路は知識を身につけていくといろいろとできることが広がりますので、是非いろいろ挑戦されてみてください。

電子回路は自然現象相手なので、一度経験したことはずっと使えます。ソフトウエアの場合、プログラミング言語や開発環境はバージョンが変わると仕様がガラッと変わってしまうことがあって追いつくのが大変ですが、電子回路の場合は、新しい部品は出てくるものの、動きとしては「電気・電子の働き」という自然現象なのでバージョンアップで仕様が変更になる、ということはありません。知識を蓄積すればするほど視野が広がっていく、という感じですので、一生楽しめます!

それではまた何かわからないことがありましたらご質問いただければと思います。

キャップ
キャップ
返信  管理者
4 年 前

claynetsさん、すいません。また教えていただけないでしょうか。

以下のサイトの例ですが、ブザーの+に5V(3.3V?)を接続し、ブザーの-にGPIO19(OUTPUT)を接続しています。
http://osoyoo.com/2016/09/29/using-raspberry-pi-to-drive-buzzer/

GPIOの出力の反対側に電源を接続することに違和感があったのですが、一般的に行われる配線なのでしょうか?

お手数をおかけします、自分だけでは解決できそうに無かったので質問いたしました。

管理者
管理者
返信  キャップ
4 年 前

キャップさま、ご質問どうもありがとうございます。

はい、この海路で問題ありません。この海路の接続方法は、「+5V」→「ブザーのプラス側」→「ブザーのマイナス側」→「GPIO19」となっています。

この接続は、このページ(今ご覧いただいているページ)の最初の方で説明している「LED点灯回路のシンク接続」に相当します。この回路のLEDをブザーに置き換えれば、ご質問いただいたブザー回路と同じになります。

なお、この回路の場合、GPIO19を1にした時がブザーOFF、0にした時がブザーONになります。

言葉だけではなかなか分かりづらいと思いますが、何かご不明点などありましたら再度ご質問いただければと思います。

キャップ
キャップ
返信  管理者
4 年 前

お手数をおかけしました。しっかりこのページに書いてありました。
再度熟読して理解します。
ご回答ありがとうございました。

3.3Vと3.3Vが向かい合わせに接続されることに慣れていなかったので違和感を感じてしまいましたが、問題ないということで理解できました。

管理者
管理者
返信  キャップ
4 年 前

電子回路はいろいろありますが、パターンを覚えていくとだんだん複雑な回路も理解できるようになってきますので、今回のようにいろいろと疑問を持たれて覚えていくのはとてもいいことだと思います。

また何かわからないことなどありましたらご質問いただければと思います。

管理者
管理者
5 年 前

コメントどうもありがとうございます!

コメントいただいた記事、再度読み直してみたのですが、ちょっとわかりづらいかな、ということころもありそうな感じでした。もしちょっとでもわかりづらいところがありましたらご指摘いただければと思います。

このようなサイトを通じて、電子工作に興味の持つ方が増えるといいな、と思ってます。

LIU
LIU
5 年 前

分かりやすい説明です。大変参考になりました。ありがとうございます。

目次
閉じる