前回まででラズベリーパイのインストールは終わり、実際にラズベリーパイを使える状態になりました。ここでは周辺機器を制御するGPIOについてご紹介します⭐️

GPIOポートってなんだろう?

GPIOはGeneral Purpose Input Outputの略です。GPIOは汎用入出力とも呼ばれます。
ラズベリーパイではデジタル信号として、0/1の信号をやりとりするために使います。0は0V、1は3.3V/5.0Vとあります。

0/1の信号があればいろんなことができます。

  • LEDのオンオフ制御
  • LEDの明るさの制御(PWM制御による)
  • モーターの制御
  • I2C通信で周辺機器の設定をする

などなど。周辺機器からは気温や湿度、明るさを取得できるので、それらの情報に基づきLEDを点灯する、ファンを回す、ポンプを循環させることができます。

ラズベリーパイが人気なのはとても簡単にGPIO制御ができるからです。

ラズベリーパイのGPIOはどうなっているの?

最近売っているのは全てModel Bのピン配置ですのでModel Bの配置をこちらでご紹介します。


公式サイトのドキュメントから画像を引用しました。
黄色いのがGPIOです。いっぱいありますね。赤5Vとオレンジ3.3Vがちょっとした電源として使えます。黒はグランドで0Vです。
26本のpinがGPIO、他の14本のpinが電源関連です。

特別なGPIOもあります。

I2Cの制御ができるGPIO

  • GPIO2はI2CのSDA(データ)
  • GPIO3はI2CのSCL(クロック)

として使えます。I2C対応のセンサーをつなぎます。I2CはUSBと同じくいっぱい接続できるので気温や湿度、明るさ等をこれら2つのGPIOで取得できます。

PWM制御ができる

GPIO18のみハードウェアでPWM制御ができます。


PWM制御
水耕栽培でPWM制御をしている様子。


こんなに綺麗な波形が出ます。

水耕栽培で使っているラズベリーパイでPWM制御をしている様子。オシロスコープの画面。
Screen Capture

他のGPIOはソフトウェア制御はできますが、ソフトウェア制御だとうまく周波数が制御できません。ソフトウェア制御はプログラムの可能なタイミングでon/offするのですが、ソフトウェアだと割り込みが入ったりマルチスタスクによりCPUが共有のためどうしても誤差が大きくなってしまいます。
私の水耕栽培の装置でソフトウェア制御を検討しましたが失敗しております。詳しくはこちら

SPIも用意されています。

SPI通信もできます。

  • GPIO10はMOSI
  • GPIO9はMISO
  • GPIO11はSCLK

まとめ。

ラズベリーパイのGPIOについてご紹介しました。次は実際にLEDを制御していきます。

記事を読んでいただいてありがとうございます。この記事がいいなと思ったら下記のSNSボタンのクリックをお願いします。励みになります😁