カシーフIftikhar:
私はArduinoのボードのデジタルピンを読み込んでプログラムを持っています。取締役会は、デジタルピンがPULLUP(キーワード)がある場合に出力を返しますPULLDOWN(キーワード)デジタル端子がOFFであることを意味している場合、デジタル端子が「B'1' 」と「B'0' 」としてONであることを意味します。出力がB'0' の場合は私は出力がB'1' であれば、配列と1に0を追加していと最後にそれらを印刷。しかし、それはエラーが発生します。コードは以下の通りです:
from serial import Serial
import time
arduinodata = Serial("COM4",9600)
a=1
i=0
current=0
data=[]
while (a<9):
binary = arduinodata.read()
if(binary==b'1'):
data[i].append(1)
i=i+1
a=a+1
if(binary==b'0'):
data[i].append(0)
current=i
i=i+1
a=a+1
for b in data:
print(data[b])
エラー:
Traceback (most recent call last):
File "GettingBitStatus.py", line 12, in <module>
data[i].append(1)
IndexError: list index out of range
カシーフIftikhar:
問題は、これらの行にあります。
data[i].append(1)
data[i].append(0)
以下は、これらの行を書き込むための正しい方法は次のとおりです。
data.append(1)
data.append(0)
エラーなしで最終的なコード:
from serial import Serial
import time
arduinodata = Serial("COM4",9600)
a=1
i=0
current=0
data=[]
while (a<9):
binary = arduinodata.read()
if(binary==b'1'):
data.append(1)
a=a+1
if(binary==b'0'):
data.append(0)
current=i
a=a+1
for b in data:
print(b)