Увеличение скорости датчиков Vl6180x

У меня есть 5 датчиков ToF vl6180x Pololu. Мне удалось подключить все датчики к Arduino через I2C, запустив каждый датчик в разное время, а когда они это сделали, изменив их адреса, но, хотя я могу довольно легко их прочитать, это занимает очень много времени, 50 мс - 300 мс. Я использую библиотеку Pololu VL6180x, и когда я исследовал библиотеку, я не смог найти никаких задержек в код. Я также пытался изменить тактовую частоту I2C на 400 кГц, но это, похоже, не повлияло на скорость. В техническом описании датчиков говорится, что датчику может потребоваться ~ 63 мс для ответа, но есть ли способ сделать это быстрее? Если нет, могу ли я считать датчики с помощью AtTiny13A и отправить данные с каждого чипа на Arduino? Какой протокол я должен использовать для связи с ними, если я хочу прочитать их измеренное расстояние?

Пс. Я делаю робота, который должен быстро двигаться и быстро реагировать на каждый датчик. (всего 11 датчиков, ни один, кроме ToF, не I2C)

, 👍-1


1 ответ


0

Вы можете использовать startRangeContinuous и readRangeContinuous, чтобы датчик непрерывно измерял расстояние, избавляя от необходимости ждать, пока датчик выполнит измерение.

Использование readRangeSingle запустит одно измерение, и эта функция просто будет ждать завершения измерения, после чего она вернет результат.

,

Что ж, я только что попробовал, кажется, что скорость датчиков почти не меняется (остается ~ 60 мс, когда он ничего не видит, и ~ 20 мс, когда видит), и он продолжает падать каждые 5 секунд, что мешает мне читать дальше., @PotatoMan

@PotatoMan Может быть, он падает, потому что 400 кГц слишком быстро для вашей настройки. Это на макетной плате? Они обычно имеют относительно высокую емкость. Если это так, вы можете попытаться уменьшить сопротивление подтягивания., @Sim Son

@SimSon Я делаю все это на макетной плате и пробовал с 10 кГц безрезультатно, но, тем не менее, я могу получить несколько необработанных показаний и вижу, что при чтении этих значений время по-прежнему остается около 10 мс - 60 мс. .., @PotatoMan

Не видя кода, я не могу помочь., @Gerben