Я пытаюсь прочитать несколько отражающих ИК-датчиков непрерывно, пока каждый из них не будет заблокирован. Я использую Arduino под управлением стандартной библиотеки Firmata и Pythons Pyfirmata.
Каждый раз, когда я пробую стандартное чтение без вывода результата в цикле while, я получаю задержку в 15-30 секунд (не могу понять, почему):
Example1 - работает, но со случайной необъяснимой задержкой:
Sensor1 = board.get_pin('a,0,i') #analogue, pin 0, input mode
while Sensor1.read() != 0: #Sensor defaults to 0.6 V but when blocked 0.0v
Sensor1.read()
Example2 - работает, но теперь у меня есть несколько выходов для чтения с датчиков:
Sensor1 = board.get_pin('a,0,i') #analogue, pin 0, input mode
while Sensor1.read() != 0: #Sensor defaults to 0.6 V but when blocked 0.0v
Sensor1.read()
print(Sensor1.read()) # this prints a bunch of read outputs
Для некоторыхпричина, когда я добавляю печать (Sensor1.read ()), я получу немедленный ответ, когда датчик заблокирован. Но если я удаляю эту часть кода, чтобы устранить вывод мусора, я получаю необъяснимую задержку между тем, когда датчик блокируется и когда он распознается кодом и движется дальше. То, что я хотел бы сделать, это постоянно читать датчик без печати, который считывает и получает немедленную реакцию на разрыв цикла while, когда датчик заблокирован и выдает 0.0v. Я считаю, что у меня также есть возможность подавления вывода на печать для этих циклов while, но я хочу знать, есть ли альтернатива? Большое спасибо за просмотр этого вопроса и миллион за любую помощь!