def calibrate(self, samples=300): max_val = 0 for _ in range(samples): val = self.pin() if val > max_val: max_val = val time.sleep_ms(10) self.threshold = max_val * 1.2