CJMCU-530 показывает нули
- Войдите на сайт для отправки комментариев
Втр, 12/12/2017 - 18:49
Доброго дня !
Пришел долгожданный датчик дальномер CJMCU-530
Подключал как положено питание SDA SCL. Бибилотеку использовал - VL53L0X.h
При всех вариация показывет или НОЛЬ или 65535 TIME OUT
Кто сталкивался с такой проблемой - отпишитесь что получилось решить ?
или датчик бракованый попался
Доброго.
Скетч?
Скетч стандартный из библиотеки:
Пробовал разные режимы: LONG_RANGE, HIGH_SPEED, HIGH_ACCURACY
Мда... видимо тут народ умеет только Скетч просить.
А шо, вы думаете, что тут люди весь алиэкспресс скупили и прямо-таки сидят и ждут, пока их спросят почему такой-то датчик не работает?
Посмотрели, убедились, что не blink заливаете, мыслей нет - никто не отвечает.
Тыркайте I2C сканером. Если на шине найдется сенсор, значит дело в программной части. Не найдется - в аппаратной (провода, питание, сам модуль).
Ну так у тебя же написано:
Кто сталкивался с такой проблемой - отпишитесь что получилось решить ?
Так как датчик сильно специфический, не думаю, что многанароду с ним работало. Поэтому и откликов нет. И дак еще не вечер же, основные писатели форумов внаработе.
Просто Гпнег с таким "умным видом лица" попросил скетч... Ладно ждемс...
пока "ждёмс" можно, как в #4 посоветовали, I2C сканером пройтися.
Нет такого сканера.
Нет такого сканера.
Есть такой сканер: https://playground.arduino.cc/Main/I2cScanner
Понял. Результат:
Scanning...
Понял. Результат:
Scanning...
Проверьте, что возвращает init() - должна возвращать true:
bool init(bool io_2v8 = true)
Iniitializes and configures the sensor. If the optional argument
io_2v8
is true (the default if not specified), the sensor is configured for 2V8 mode (2.8 V I/O); if false, the sensor is left in 1V8 mode. The return value is a boolean indicating whether the initialization completed successfully.Сори за тупость, но куда и как точно написать ? bool init(bool io_2v8 = true)
У тебя в твоём скетче строчка sensor.init(); есть? Есть. Вот результат отработки этой строчки и надо проверять:
Вернул Inited
Вернул Inited
Как проверяете? Рукой перед датчиком водите?
Всяко разно... или 0 или 65535
Всяко разно... или 0 или 65535
Попробуйте поставить delay(500) в конец loop, и посмотрите, изменится ли чего. И не мельтешить рукой перед датчиком, просто поставить перед ним препятствие.
Попробуйте сделать то, что в 26 строке скетча написано. Вдруг поможет.
Пробовал все 3 варианта... Не помогает...
Попробовать sensor.init(false) ? Если не поможет - возможно, с модулем проблемы, посмотрите на сопли, непропай - бывает, случается.
Вообще неплохо бы глянуть на то, какой библиотекой там ТС орудует. Что у него там в init() - можно только предполагать.
Не знаю, каким датчиком и какой библиотекой Вы пользуетесь, но у меня с этим:
https://ru.aliexpress.com/item/GY-530-VL53L0X-World-smallest-Time-o-f-Fl...
и этим:
проблем не возникло.
Что-то не так у вас с модулем, VL53L0X имеет заводской адрес 0х52, поменять его можно при иничиализации, но только до выключения питания, потом он станет снова 0х52, так что не может он у вас быть 0x29.
Библиотека работает именно с 0x52 и работает хорошо. а с вашим 0x29 она соответственно не работает.
Приехала новая партия на "ушастых" платах, так на них VL53L0X откликается на 0x29, но с библиотекой VL53L0X.h из ардуино работает. Там смысл в том что у чипа VL53L0X адрес меняется не аппаратно, а програмно в момент инициализации после включения питания, верояно 0x29 задает библиотека при инициализации. Три датчика повесил на шину - все работают, передают корректные показания, только реальная дальнось у них очень далека от рекламных двух метров.
по докам должен измерять до 2 м, у меня почему-то измеряет до 1.2м дальше отображает 8192.
как сделать чтоб вывод был не в мм, а в том что датчик измеряет, тикак, тактах или ещё в чем...
Плохо доки вы читали, если вы откроете 5 параграф раздела документации то увидите что 2м это максимум в режиме лонг рейдж при работе на белую поверхность с отражением 88% внутри закрытого помещения без посторонних источников ик света. То есть на какую нибудь глянцевую белую дверь в темном туалете срабает, в остальных случаях нет. Гарантированная дальность работы в помещении без ик света 120см на поверхность с отражением 88% и 70см на серую с отражением 17%. А с присутствием ик света производитель не обещает более 40см дальности. Читайте доки а не ведитесь на рекламу.
2yray
спасибо, меня 120см вполне устраивает.
а что по второму вопросу?
Читайте доки а не ведитесь на рекламу.
Это я с радостю бы делал, дак где ж взять на vl53l0x нормальное описание регистров. Не встречали юзер мануал i2c?
А то приехало, а как работать с ним напрямую непонятно. С адафруктом завелось нормально, но простейший экземпл дает
На сайте производителя полный sdk был, вот апи где все есть https://www.st.com/content/st_com/en/products/embedded-software/proximit...
кроме адафрута есть и более легкая и быстрая библиотека в ардуино https://github.com/pololu/vl53l0x-arduino
кстати может кто не в курсе - вышла новая модификация vl53l1x с рекламными аж 4 метрами дистанции измерения и по цене порядка 1т.р. Но если почитать доки то 4м это чистый маркетинг, реальная дальнось гарантируется 70см
По ссылке только
VL53L0X API is based on Photonic Abstraction Layer (PAL) specification. API is defined as the implementation of the PAL. The API exposes high level functions to be used by the customer application to control the device.
Бесполезно. Только сишные функции из этой самой PAL :(
Чем закончилось?
Уже закончилось?