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