秋月電子で購入したHX711のモジュールは、電源を入れると、約85us幅のPOSパルスが
10Hzで出力されている。
このパルスをセンスして、すぐに、CLKパルスを25発入れてやることで、1パルスごとに1ビットのデータを返し、24bitのデータを返すようになっている。最後のCLK1発は、次のデータの計測モードを制御する。
試しのために、RaspberrypiPicoがきちんと受信できるパフォーマンスがあるのかどうかを確認してみた。
from machine import Pin
import utime
import time
Clk=Pin(1,Pin.OUT)
Dat=Pin(2,Pin.IN)
c=0
a=0
b=0
while c<10:
b=a
t1=time.ticks_us()
while b==a:
a=Dat.value()
t2=time.ticks_us()
print(t2-t1,b)
c=c+1
簡単なパルス幅の計測プログラムを作成してみた。
結果は、下記の様になった。
65664 0
42 1
97824 0
29 1
984749 0
30 1
98248 0
28 1
98243 0
32 1
us単位の時間と、パルスのNEG/POSになっている。
NEGは、98ms程度になるはずだが、980msになってしまうことがあるようだ。
しかし、オシロスコープで確認すると、パルスが抜けていることは確認できなかった。
きちんととれていることもあることから、プログラムによるものというよりは、信号のアナログ的な振る舞いに原因がありそうだ。