前の実験からRaspberrypi Picoでは、最初のエッジのとり逃しをしてしまうことが分かった。そこで、頼みの綱のRaspberryPi3を接続してみた。しかし最初の方の計測で、重りなしでMSB=1となってしまうこと(上記画像)があり、そうしたケースは計測しないようにするようにプログラムしてみた。以前実験したときは10000回の連続計測でもエラーしなかったはずだったが、数回の計測でエラーとなるのはどうしたことか、温度のせいか。
かきのプログラムでomosa.omosa(10)などで、10回計測できるようにしてみた。
def omosa(kaisuu):
import RPi.GPIO as GPIO
from time import sleep
GPIO.setmode(GPIO.BCM)
GPIO.setup(17,GPIO.OUT) #CLK HX711 to Rsapberrypi GPIO
GPIO.setup(4,GPIO.IN) #Data HX711 to Rsapberrypi GPIO
n=kaisuu #loop iteration limit
k=0 #loop iteration
a=0
w=0
d=0
while k<n:
a=GPIO.input(4)
while a==GPIO.input(4):
pass
#if k==0:
# utime.sleep_us(100)
#utime.sleep_us(80)
a=0
test_list=[]
a=0
while a<25:
GPIO.output(17,GPIO.HIGH)
#sleep(0.5)
test_list.append(GPIO.input(4))
GPIO.output(17,GPIO.LOW)
a=a+1
a=0
c=24
b=0
while a<c:
data=test_list[a]
b=b+data*2**(c-a-1)
#print(data,b)
a=a+1
#print(b)
k=k+1
if b>16500000:
k=k-1
b=0
d=d+b
GPIO.cleanup()
d=d/n
return d
確認してみると、550サンプル中22サンプルの異常な値を検出した。
ちょっとまだ未完成の様だ