49 lines
951 B
Python
49 lines
951 B
Python
import time, board
|
|
|
|
|
|
def read_id(pin):
|
|
|
|
L1 = board.pin(pin, board.GPIO.IN, board.GPIO.PULL_UP)
|
|
a = []
|
|
t1 = time.ticks_us()
|
|
while L1.value() == 1:
|
|
t2 = time.ticks_us()
|
|
if time.ticks_diff(t2, t1) > 1000000:
|
|
# raise ValueError("[MixNo]:Sensor read error")
|
|
break
|
|
pass
|
|
|
|
time.sleep_us(13560)
|
|
|
|
for i in range(1000):
|
|
v = L1.value()
|
|
a.append(v)
|
|
time.sleep_us(56)
|
|
|
|
a_c = []
|
|
count = 0
|
|
|
|
for i in a:
|
|
if i == 1:
|
|
count += 1
|
|
|
|
elif i == 0:
|
|
if count > 0:
|
|
a_c.append(count)
|
|
count = 0
|
|
|
|
for i in range(len(a_c)):
|
|
if a_c[i] > 10:
|
|
a_c[i] = "1"
|
|
else:
|
|
a_c[i] = "0"
|
|
|
|
B1 = "".join(a_c)
|
|
B2 = B1[16:32]
|
|
# print(len(B1))
|
|
if len(B1) == 32 or len(B1) == 33 or len(B1) == 46:
|
|
B3 = int(B2, 2)
|
|
return B3
|
|
else:
|
|
return None
|