[Решен] датчик расстояния VL6180

Акронис
Вт 27 июня 2017 г. 7:05 утра
Привет. Расскажите, какую библиотеку лучше использовать и как физически подключить STM32F103 Датчик расстояния VL6180 https: // ru.aliexpress.com/item/1pcs-vl6 ... 0.0.T4KPJC

Zoomx
Вт 27 июня 2017 г. 7:17 утра
Мммм я купил VL53L0X и использовал первую библиотеку, которую я нашел, возможно, эти датчики используют тот же протокол.

Акронис
Вт 27 июня 2017 г. 8:20 утра
Как подключить вывод SCL и SDA VL6180?
Они терпимы только до 2.8 В

https: // cdn.Sparkfun.com/datahasthets/sen ... UT_V10.PDF

https: // учиться.Sparkfun.com/turniormes/vl ... ОКУП-ГИДЕ

Zoomx
Вт 27 июня 2017 г. 10:51
Если у вас есть только датчик, вы должны построить схему, похожую на Sparkfun One.
Например, этот
Изображение
Схема подключения для прорыва VL6180 и 3.3V Pro-Mini
что вы можете найти во второй ссылке вашего первого поста.

Поскольку промини - 3.3V версия, значения одинаковы для платы STM32

Акронис
Вт 27 июня 2017 г. 14:08
Примечание. Для использования этой диаграммы убедитесь, что два подтягивающих резистория на про-минине не заполнены.

Такое соединение возможно, если не припаковало резисторы на Pro Mini.
И как это на STM32 ?

Стивестронг
Вт 27 июня 2017 г. 14:24
Какую плату STM32 вы используете?
В целом, на досках STM32 на не оставшихся в ямах резисторов нет резисторов.

Акронис
Вт 27 июня 2017 г. 14:36
https: // ru.aliexpress.com/item/2-stm32f ... 0.0.D46SWF

Я делаю прямую связь с PINS SCL и SDA ? Но как насчет максимального напряжения 2,8 В ?

Стивестронг
Вт 27 июня 2017 г. 15:13
[Акронис - Вт 27 июня 2017 г. 14:36] - Я делаю прямую связь с PINS SCL и SDA ?
Да.
Breakoutannotated [1] .png
BreakoutAnnotated [1].PNG (189.96 киб) просмотрено 1041 раз

Rogerclark
Вт 27 июня 2017 г. 9:41 вечера
Сколько тока занимает?

Возможно, вы можете сбросить 3.3 В до 2.7 с 2 диодами последовательно

Акронис
Чт 13 июля 2017 г. 5:28 утра
https: // github.com/adafruit/adafruit_vl6180x

Эта библиотека отлично работает на STM32.

Rogerclark
Чт 13 июля 2017 г., 6:34
Спасибо, что сообщили нам.

Rogerclark
Сб 15 июля 2017 г. 11:17
Ммм

Мой датчик - VL53L0XV2, и, похоже, не работает с этой либерацией :-(

Я попробую эту либера

https: // github.com/pololu/vl53l0x-arduino

Редактировать.
То, что Lib не составлял, мне, вероятно, нужно добавить некоторые функции в проволоку, так как компилятор не знал, как обрабатывать провод.Напишите, что пройдет 32 -битный int

Я сделал быстрый взломан в библиотеке, но, кажется, работает только для ценностей < 1024

Также я не получаю никакой ценности ниже 45.

И я не думаю, что число, которое выводит LIB, - это MM

Zoomx
Пт, 04 августа 2017 г., 19:51
Я проверил библиотеку Adafruit
https: // github.com/adafruit/adafruit_vl53l0x
и загрузил единственный пример: он компилирует.

Я использовал ядро, в котором есть несколько месяцев, 8 апреля 2017 года.

Поскольку есть ветка о vl53l0x, который я тоже опубликовал.

Пять
Вт 05 декабря 2017 г. 9:32 утра
Привет

Как получить vl6180 работать с Adafruit? Я использую STM32F103 "Bluebill" со ST-Link. Я знаю, что это компилирует, но в настройке есть VL.начинать(). Если я удалю это, мой другой код работает, если я ничего не сработает (Test Test и SSD1306 OLED). Если я тестировал с помощью OLED, то в OLED -коде работает до VL.begin () называется после этого OLED замерзания.

Пять
Ср. 06 декабря 2017 12:13
Я думаю, что проблема в моем чертеже. Я сделал еще одну тестов:

STM32F103, загруженный ST -Link, серийный монитор над USB - 893 счета (72 МГц), 882 счета (48 МГц)
Arduino Nano, загруженная с USB, серийный монитор над USB - 980 CONC
Arduino Mega, загруженная с USB, серийный монитор над USB - 1033 CONTS

Датчик VL6180 находится в 30 мм от черной поверхности
Тестовый код: #include #include "Adafruit_VL6180X.h" Adafruit_VL6180X vl = Adafruit_VL6180X(); void setup() { Serial.begin(115200); // wait for serial port to open on native usb devices while (!Serial) { delay(1); } Serial.println("Adafruit VL6180x test!"); if (! vl.begin()) { Serial.println("Failed to find sensor"); while (1); } Serial.println("Sensor found!"); } void loop() { unsigned long startCounting = millis(); int count = 0; while (millis() - startCounting <= 10000) { if (vl.readRange()) { count++; } } Serial.println(count); }

Стивестронг
Ср. 06 декабря 2017 12:58
Это может быть проблемой для Adafruit Lib.
Кажется, что в функции read8 () строка 246 не хватает провода.Доступен () Проверьте, что есть в функции read16 () строка 267.
Таким образом, может произойти, что readrange () возвращает недопустимое значение 0 (прежде чем какие -либо данные будут получены от датчика), поэтому ваш эскиз не считается.
Это также может объяснить, почему разные платформы дают разные результаты, потому что каждый из них работает с разной скоростью.
F1, кажется, может быть самым быстрым, поэтому он пропускает больше всего байтов.

Пять
Ср. 06 декабря 2017 г. 15:10
[Стивестронг - Ср. 06 декабря 2017 12:58] - Это может быть проблемой для Adafruit Lib.
Кажется, что в функции read8 () строка 246 не хватает провода.Доступен () Проверьте, что есть в функции read16 () строка 267.
Таким образом, может произойти, что readrange () возвращает недопустимое значение 0 (прежде чем какие -либо данные будут получены от датчика), поэтому ваш эскиз не считается.
Это также может объяснить, почему разные платформы дают разные результаты, потому что каждый из них работает с разной скоростью.
F1, кажется, может быть самым быстрым, поэтому он пропускает больше всего байтов.
Я также протестировал F4. VL6180 работает с STM32GENERIERC PB6 и PB7

STM32F407, загруженный с помощью ST -Link, серийный монитор над USB - 898 CONCTS

Я купил эти единицы STM32 для более быстрого чтения датчиков : D . Но моя главная проблема - запустить VL6180 и SSD1306 OLED, и я не могу заставить их работать вместе. Я попробую это завтра на F4.

Стивестронг
Чт, 07 декабря 2017 г. 9:23 утра
Вы пытались вставить линию, как я указал выше?

Пять
Чт, 07 декабря 2017 12:16
[Стивестронг - Чт, 07 декабря 2017 г. 9:23 утра] - Вы пытались вставить линию, как я указал выше?
Да, и это не внесло изменения в