短い答え
いいえ、あなたは(ほとんど)しません。これは実際には逆です。GPIOではなく、特別な目的のために設定する必要があります。唯一の例外はUARTピンです。また、I²Cピンはどういうわけか特別です。
UARTピン
UARTピンは、コンソールのカーネルによって使用されます。それらを使用できるようにしたい場合は、それらを使用しないようにシステムを構成する必要があります。
これで、ピンはシステムで使用されなくなり、使用できます
I²Cピン
I²Cピンには、オンボードの1.8kプルアップ抵抗が取り付けられています。無効にすることはできません。これにより、いくつかの状況でこれらのピンの使用が制限されます(他の状況では便利な場合があります)。
追加のソリューション
GPIOピンが不足している場合は、追加の(ただし単純な)ハードウェアを使用して、その数を簡単に拡張できることがあります。たとえば、出力には、shift registers
またはI²C I/O expanders
(I²Cバスエキスパンダーとも呼ばれます)を簡単に購入して使用できます。使用例はここにあります。
PFC8574
(またはこのファミリと同様)は非常に人気があり、すべての通信を処理するすぐに使用できるカーネルモジュールがあります(公式のRaspberryPiカーネルでは有効になっていません。使用するには、独自のカーネルをコンパイルする必要があります)。このモジュールはと呼ばれgpio_pcf857x
、modprobe
(I²Cドライバーと共に)ロードし、チップをI²C
バスに接続している場合、次のようにアクティブ化できます。
echo pcf8574 0x27 > /sys/class/i2c-adapter/i2c-0/new_device
どこpcf8574
あなたの実際のチップ名がある(このモジュールは、いくつかの異なるチップのように扱うことができるpca967x
とするmax732x
)と、0x27
そのアドレスが上にあるI²C
(それを配線するときに、チップのアドレスを設定することができます)。
これは、内のエントリが作成されます/sys/class/gpio/
、あなたが使用している提供し、RaspberryPi内の他のGPIOポートとしてそれらを同じように使用できるようになりますディレクトリsys
(例えばインタフェースwiringPiSetupSys()
wiringPi中を)。残念ながら、PythonのRPi.GPIO
モジュールはこのモードをサポートしていないため、このライブラリでこのピンを使用することはできません。ピンには、248-255などの高い数値があります。
注: PCF8574
あるsinking current
-それは20ミリアンペア限り(ロー状態で受け入れる)ドライブシンクを与えることができますが、それは高い状態にある唯一のソース0.1ミリアンペアすることができます。つまり、通常は逆のロジックで使用し+3.3V -> LED -> RESISTOR -> PCF8574_PIN
ます。