デジタル入出力を操作する(Python)
準備
初めて使用する場合は、セットアップ(ボードの取り付け)をおこないます。
DIO-8/4RD-IRCのセットアップ(ラズベリーパイ)
DIO-8/4RD-IRCのセットアップ(NVIDIA Jetson Nano 開発者キット)
python-smbusがインストールされてない場合は、インストールします。
$ sudo apt-get install python-smbus
プログラムの作成
「test_dio84rd.py」というファイル名で以下のファイルを保存します。
(または test_dio84rd.py からダウンロードします)
import smbus
PCA9535_REG_INPUT_PORT1 = 1
PCA9535_REG_OUTPUT_PORT0 = 2
PCA9535_REG_CONFIG_PORT0 = 6
class DIO_8_4RD_IRC():
i2c = smbus.SMBus(1)
def __init__(self, slave=0x23):
self.address = slave
self.i2c.write_byte_data(self.address, PCA9535_REG_CONFIG_PORT0, 0xf0)
# デジタル出力
def output(self, value):
self.i2c.write_byte_data(self.address, PCA9535_REG_OUTPUT_PORT0, ~value)
# デジタル入力
def input(self):
return ~self.i2c.read_byte_data(self.address, PCA9535_REG_INPUT_PORT1) & 0xff
expander = DIO_8_4RD_IRC()
# デジタル出力
# (例)OUT2とOUT0をオン(OUT3とOUT1をオフ)
expander.output(0x05)
# デジタル入力
print('InputData: 0x{:02x}'.format(expander.input()))
動作確認
プログラムを実行します。
$ sudo python test_dio84rd.py
デジタル出力のOUT2とOUT0がオンします。
デジタル入力値が表示されます。
InputData: 0x40