GPIO とは

この記事は Raspberry Pi 勉強会 の一部です。

GPIO は、General Purpose Input/Output(汎用入出力)の略語である。
入力として動作した場合は電気回路のほかの部分からのデジタル信号を読み取り、出力として動作した場合は他デバイスの制御や信号の通知を行う。

GPIO: MODELS A+, B+, RASPBERRY PI 2 B AND RASPBERRY PI 3 B 

ラズパイのGPIO

ラズパイのGPIOは、デジタル入力とデジタル出力の他に、
PWM、シリアル、I2C、SPI などの機能があります。
アナログ入力はありません。
MCP3208 などの I2C や SPI などのインターフェイスを有するAD変換器を使います。
シリアルは、初期状態では、シリアルコンソール になっていますが。
プログラムから使うこともできます。

参考

  • GPIO: MODELS A+, B+, RASPBERRY PI 2 B AND RASPBERRY PI 3 B 
  • GETTING STARTED WITH PHYSICAL COMPUTING ON THE RASPBERRY PI

ピン配置

図は、ラズパイ 2B のものです。
ピン番号の呼び方には、物理ピン、BCM_GPIOピン、WiringPi ピンなどがあります。
プログラムでは BCM_GPIOピンを使うことは多いです。

GPIOの電流制限

1ピンあたり 3.3V 16mA
複数本が同時に流せる電流 50mA

参考
Arduino は、1ピンあたり 5V 40mA

POWER SUPPLY - Raspberry Pi

発光ダイオード LED

発光ダイオード(LED : Light Emitting Diode)はダイオードの一種で、順方向に電圧を加えた際に発光する半導体素子である。

電気特性

順方向電圧 (Forward Vias) と呼ばれる一定の電圧を境に、電流が流れない状態 (LED消灯) から、電流が流れる状態 (LED点灯) に変化します。
電流が流れる状態では、無限に電流が流れるので、ドライブ側の半導体やマイコンの端子が焼き切れることがあります。
それを防止するため位、電流値を制限する制限抵抗を挿入します。

LEDの制限抵抗

GPIOの電流制限に留意して、抵抗値を決めます。
例えば、LEDに10mA 流したときは
180Ω = 3.3V - 1.5V(LEDの順方向電圧) / 10mA

参考
LEDの基本 - マルツ

LEDの接続

P11(GPIO17)とP6(GND)の間に、LEDと330Ωの抵抗を直列に入れます。

CONNECTING AN LED WITHOUT A BREADBOARD

抵抗器

抵抗器(resistor)とは、一定の電気抵抗値を得る目的で使用される電子部品であり受動素子である。

カラーコード

小型の抵抗器には色の帯により抵抗値と誤差を表現するカラーコードが使われています。

参考
抵抗のカラーコードとE系列

タクトスイッチ

タクトスイッチは、タクタイルスイッチ (Tactile switch) の略で、「感触のあるスイッチ」という意味です。
人が操作部を押し込むことで電気回路を通電させます。
具体的には、操作部を押すとオンに、離すとオフになる「モーメンタリ」といわれる動作になります。
通電できる電圧および電流は、小さい領域に限定されます。

回路図

スイッチをP1(+3.3V)とP13(GPIO 27)の間に入れます。
スイッチには縦横があるので注意してください。
10KΩの抵抗をP13(GPIO 27)とP9(GND)の間に入れます。
抵抗は、スイッチがオンしたときに、+3.3V と GND が短絡されて、無限に電流が流れるのを防止するためです。
通常は、GPIO 27入力は Low ですが、 Hスイッチを押すと High になります。

ブレッドボード

ブレッドボード (breadboard)とは、電子回路の試作・実験用の基板のことである。
各種電子部品やジャンパ線を差し込むだけで電子回路を組むことの出来る、はんだ付けが不要な基板である。


ブレッドボードの配線

図のように、内部で配線されている。

ブレッドボード接続キット

ラズパイのGPIOのピン数が多くて、間違えやすいです。
ブレッドボード接続キット がお勧めです。

ブレッドボード接続キットのハンダ付け

ハンダ付けの際には、注意してください。
ピンヘッダが2種類あります。
基板に対して、表裏からはさみ込むようになります。
ブレッドボードに刺したときに、ピン番号が見えるようにします。

I2Cデバイス

ラズパイと接続できる3.3V対応のI2Cデバイスです
  • 小型LCDモジュール AQM0802
  • 温度センサ ADT7410
  • 温度センサ TMP102
  • 大気圧センサー MPL115A2
  • 気圧/高度センサ LPS331
  • 3軸加速度センサ LIS3DH
  • 3軸加速度センサ ADXL345
  • 3軸ジャイロセンサー L3GD20
  • ディジタル・コンパス HMC6352