Как видно из названия, я пытаюсь получить значение от двух датчиков vl53l0x, подключенных к Raspberry Pi Zero W.
Я все хорошо подключил и проверил датчики один за другим. Они хорошо работают.
Проблема в том, что, когда они оба подключены к шине I2C, я не могу с ними разговаривать, потому что они имеют одинаковый адрес по умолчанию 0x29 (проверяется с помощью следующей команды: sudo i2cdetect -y 1
)
Я прочитал таблицу данных датчика и искал в Интернете ресурсы, чтобы понять, как изменить значение регистра датчика, в котором хранится адрес. Есть конкретный способ сделать это, как вы можете видеть здесь: AN4846 Замечание по применению со страницы 5.
И чем я нашел этот репозиторий , который я сейчас используюдля достижения цели.
Но когда я запускаю VL53L0X_multi_example.py, я получаю этот вывод
VL53L0X Start Ranging Address 0x2B
Setting I2C Address to 0x2B
Call of VL53L0X_SetAddress
API Status: -20 : Control Interface Error
VL53L0X Start Ranging Address 0x2D
Setting I2C Address to 0x2D
Call of VL53L0X_SetAddress
API Status: -20 : Control Interface Error
VL53L0X_BETTER_ACCURACY_MODE
Set Accuracy
API Status: -20 : Control Interface Error
VL53L0X_BETTER_ACCURACY_MODE
Set Accuracy
API Status: -20 : Control Interface Error
Timing 20 ms
1 - Error
2 - Error
...
Call of VL53L0X_StopMeasurement
API Status: -20 : Control Interface Error
Call of VL53L0X_StopMeasurement
API Status: -20 : Control Interface Error
Я не могу понять, почему эта ошибка ( Состояние API: -20:Ошибка интерфейса управления ) с комментариями
Ошибка при очистке прерывания
в Api / core / inc / vl53l0x_def.h. Что не так?