Raspberry Pi3 センサの購入とプルアップ/プルダウン
センサ購入
前回Raspberry Pi3とセンサをつなげる際に使用する通信規格を何にするかを考えてI2Cを採用することにしました。
そこで今回、秋月電子さんで以下のSPIとI2C対応の気温・湿度・気圧を取得できるセンサキットK-09421を購入しました。
BME280使用 温湿度・気圧センサモジュールキット: センサ一般 秋月電子通商 電子部品 ネット通販akizukidenshi.com
今回作成するシステムは湿度と温度を用いてエアコンを制御するシステム(詳しくは以下のリンク)でしたので気圧が取得できるのは若干オーバースペックですが、仕事ではないので扱えるデータが増えると割り切って使ってみたいと思います。
Raspberry pi 3でエアコン制御システム構築の構想とGPIO仕様について - Raspberry Pi3 で家庭用IoTkagemomiji.hateblo.jp
GPIOのプルアップ/ダウンについて
今回購入したセンサキットK-09421は基盤自体に通信線のプルアップ抵抗が乗っていて、はんだでジャンパさせることで有効化できます。
GPIOでI2Cに使用するのはGPIO2,GPIO3です。この端子におけるPullUp、もしくはPullDownがどうなっているのか調べてみました。
pinout.xyz
上記ページからGPIO2,GPIO3は1.8kΩのプルアップ抵抗が入っているようです。なのでセンサ側でPullUpする必要はありません。
ちなみにその他のGPIOはプログラム上どちらかに設定できるということでしたが実際に現状どうなっているのかわからりません。
なので確認するすべがないか探してみました。
結論から言うと以下のコマンドをraspbianのターミナル上で使用することで確認できます。
$sudo raspi-gpio funcs
詳細を以下のコマンドで確認します。
$ raspi-gpio help
raspi-gpio funcs [GPIO] Note that omitting [GPIO] from raspi-gpio get prints all GPIOs. raspi-gpio funcs will dump all the possible GPIO alt funcions in CSV format or if [GPIO] is specified the alternate funcs just for that specific GPIO.
とあり raspi-gpio funcでGPIOの選択可能な機能がCSV形式で出力するコマンドのようです。
また、さらに下の記述でGPIOのpull up/downの抵抗は50kΩということも読み取れます。
$sudo raspi-gpio funcs | less
何も設定していない時の出力は以下のようになります。(GPIO1~10まで)
GPIO | DEFAULT PULL | ALT0 | ALT1 | ALT2 | ALT3 | ALT4 | ALT5 |
0 | UP | SDA0 | SA5 | PCLK | AVEOUT_VCLK | AVEIN_VCLK | - |
1 | UP | SCL0 | SA4 | DE | AVEOUT_DSYNC | AVEIN_DSYNC | - |
2 | UP | SDA1 | SA3 | LCD_VSYNC | AVEOUT_VSYNC | AVEIN_VSYNC | - |
3 | UP | SCL1 | SA2 | LCD_HSYNC | AVEOUT_HSYNC | AVEIN_HSYNC | - |
4 | UP | GPCLK0 | SA1 | DPI_D0 | AVEOUT_VID0 | AVEIN_VID0 | ARM_TDI |
5 | UP | GPCLK1 | SA0 | DPI_D1 | AVEOUT_VID1 | AVEIN_VID1 | ARM_TDO |
6 | UP | GPCLK2 | SOE_N_SE | DPI_D2 | AVEOUT_VID2 | AVEIN_VID2 | ARM_RTCK |
7 | UP | SPI0_CE1_N | SWE_N_SRW_N | DPI_D3 | AVEOUT_VID3 | AVEIN_VID3 | - |
8 | UP | SPI0_CE0_N | SD0 | DPI_D4 | AVEOUT_VID4 | AVEIN_VID4 | - |
9 | DOWN | SPI0_MISO | SD1 | DPI_D5 | AVEOUT_VID5 | AVEIN_VID5 | - |
10 | DOWN | SPI0_MOSI | SD2 | DPI_D6 | AVEOUT_VID6 | AVEIN_VID6 | - |
GPIO0~8はデフフォルトPullUp 9,10はPullDownのようです。ちなみに44,45はNoneという記述があるようですのでPullUp,PullDown,Noneの3状態が存在するようです。Noneの時は気を付けなければショートさせてしまいますので接続するまえにこのPullの欄は確認しましょう。
今回はここまでです。
次はセンサを接続して値を読み込たいと思います。