Выполнил конструктором FLProg счетчик на плате ESP8266 NodeMCU. На входе счетчика стоит Таблица состояний, управляемая двумя входами. По факту, два лазерных дальномера VL53L0X подключены к входам D1 и D2, соответственно SCL и SDA. Каждому из дальномеров присвоен свой адрес 41 и 42. И, вот вопрос: При наступлении определенных условий (расстояние меньше метра), на указанных выходах контроллера, соответствующих каждому из дальномеров, должна появится логическая 1. Как сделать, чтобы при наступлении этих условий логическая 1 устанавливалась не на выходе контроллера, а на входе Таблицы состояний. Сломал голову.Ответа не нашел. Подскажите, кто знает, плз! Заранее благодарю!
Нимагу установить вход в таблицу состояний с лазерных дальномеров
Нимагу установить вход в таблицу состояний с лазерных дальномеров
Здравствуйте, друзья!
Выполнил конструктором FLProg счетчик на плате ESP8266 NodeMCU. На входе счетчика стоит Таблица состояний, управляемая двумя входами. По факту, два лазерных дальномера VL53L0X подключены к входам D1 и D2, соответственно SCL и SDA. Каждому из дальномеров присвоен свой адрес 41 и 42. И, вот вопрос: При наступлении определенных условий (расстояние меньше метра), на указанных выходах контроллера, соответствующих каждому из дальномеров, должна появится логическая 1. Как сделать, чтобы при наступлении этих условий логическая 1 устанавливалась не на выходе контроллера, а на входе Таблицы состояний. Сломал голову.Ответа не нашел. Подскажите, кто знает, плз! Заранее благодарю!
![Изображение]()
Выполнил конструктором FLProg счетчик на плате ESP8266 NodeMCU. На входе счетчика стоит Таблица состояний, управляемая двумя входами. По факту, два лазерных дальномера VL53L0X подключены к входам D1 и D2, соответственно SCL и SDA. Каждому из дальномеров присвоен свой адрес 41 и 42. И, вот вопрос: При наступлении определенных условий (расстояние меньше метра), на указанных выходах контроллера, соответствующих каждому из дальномеров, должна появится логическая 1. Как сделать, чтобы при наступлении этих условий логическая 1 устанавливалась не на выходе контроллера, а на входе Таблицы состояний. Сломал голову.Ответа не нашел. Подскажите, кто знает, плз! Заранее благодарю!
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Arkan 18 окт 2019, 19:44, всего редактировалось 1 раз.
- Dryundel
- Полковник
- Сообщения: 2457
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 6 раз
- Поблагодарили: 31 раз
Нимагу установить вход в таблицу состояний с лазерных дальномеров
[ref]Arkan[/ref], файл проекта лучше выложите.
Нимагу установить вход в таблицу состояний с лазерных дальномеров
[ref]Dryundel[/ref], сейчас . Проект только готовится. Не пойму, как вставить файл. Вам нужен весь сохраненный проект?
Отправлено спустя 2 минуты 34 секунды:
Это он?
Отправлено спустя 2 минуты 34 секунды:
Это он?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Dryundel
- Полковник
- Сообщения: 2457
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 6 раз
- Поблагодарили: 31 раз
Нимагу установить вход в таблицу состояний с лазерных дальномеров
Ну мне то он не нужен, а вот Вам вряд ли кто поможет не видя Вашего творчества.
Теперь по существу.
Вы как то странно пытаетесь подключить два датчика VL53L0X.
Где у Вас блоки VL53L0X?
Дальномер присылает по шине I2C данные расстояния. Т.е. каждый из датчиков должен быть подключен к SCL и SDA.
А данные с них можно получить к примеру с помощью пользовательского блока типа этого
А вот с выхода этого блока надо ставить компараторы. И уже только после этого подавать сигнал на таблицу состояний.
- ViktorPetrov
- Капитан
- Сообщения: 807
- Зарегистрирован: 09 апр 2018, 23:56
- Имя: Виктор
- Благодарил (а): 4 раза
- Поблагодарили: 1 раз
Нимагу установить вход в таблицу состояний с лазерных дальномеров
Нужно добавить блок в проект : VL53L0X лазерный дальномер
Нимагу установить вход в таблицу состояний с лазерных дальномеров
Спасибо большое!
Для датчиков написана отдельная программа. Каждому присвоен свой адрес.
Блоков VL53LOx нет в программе FLProg . Пытаюсь совместить два скетча.
Постараюсь использовать Ваш совет.
Для датчиков написана отдельная программа. Каждому присвоен свой адрес.
Блоков VL53LOx нет в программе FLProg . Пытаюсь совместить два скетча.
Постараюсь использовать Ваш совет.
- Dryundel
- Полковник
- Сообщения: 2457
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 6 раз
- Поблагодарили: 31 раз
Нимагу установить вход в таблицу состояний с лазерных дальномеров
Где написана? Вы Правите скетч? Как Вы присваивали адрес?Arkan писал(а): 18 окт 2019, 20:44 Для датчиков написана отдельная программа. Каждому присвоен свой адрес.
В программе нет. Но пользовательский блок есть. Однако он вам не подойдет, т.к. в нем нет возможности прописывания адреса и он использует адрес по умолчанию.
Вывод: Надо делать новый пользовательский блок.
Нимагу установить вход в таблицу состояний с лазерных дальномеров
Упс!
#define VL53L0X1_ADDRESS 41
#define VL53L0X2_ADDRESS 42
VL53L0X sensor1;
VL53L0X sensor2;
В компараторе, опять же, два входа для выполнения условий.
Один вход, это датчик, а второй?
А условие для датчиков <= 1ooo (мм)
Отправлено спустя 1 минуту 59 секунд:
Может, легче компаратор новый создать, где можно прописывать условие по 1 входу?
Отправлено спустя 6 минут 30 секунд:
Спасибо, что возитесь со мной!
P/S Как Вы понимаете, для счетчика не важна точность (в мм), важны скорость и надежность.
#define VL53L0X1_ADDRESS 41
#define VL53L0X2_ADDRESS 42
VL53L0X sensor1;
VL53L0X sensor2;
В компараторе, опять же, два входа для выполнения условий.
Один вход, это датчик, а второй?
А условие для датчиков <= 1ooo (мм)
Отправлено спустя 1 минуту 59 секунд:
Может, легче компаратор новый создать, где можно прописывать условие по 1 входу?
Отправлено спустя 6 минут 30 секунд:
Мне, на самом деле не важно прописанные адреса, или по умолчанию. Главное, чтобы на вход Таблицы состояний приходили единицы от каждого датчика по выполнению условий.Dryundel писал(а): 18 окт 2019, 20:59 В программе нет. Но пользовательский блок есть. Однако он вам не подойдет, т.к. в нем нет возможности прописывания адреса и он использует адрес по умолчанию.
Вывод: Надо делать новый пользовательский блок.
Спасибо, что возитесь со мной!
P/S Как Вы понимаете, для счетчика не важна точность (в мм), важны скорость и надежность.
- Dryundel
- Полковник
- Сообщения: 2457
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 6 раз
- Поблагодарили: 31 раз
Нимагу установить вход в таблицу состояний с лазерных дальномеров
Эт точно УПС!Arkan писал(а): 18 окт 2019, 21:16 Упс!
#define VL53L0X1_ADDRESS 41
#define VL53L0X2_ADDRESS 42
VL53L0X sensor1;
VL53L0X sensor2;
В компараторе, опять же, два входа для выполнения условий.
Один вход, это датчик, а второй?
А условие для датчиков <= 1ooo (мм)

Отправлено спустя 57 секунд:
А это УПС-УПС!Arkan писал(а): 18 окт 2019, 21:16 Может, легче компаратор новый создать, где можно прописывать условие по 1 входу?
Отправлено спустя 47 секунд:
А вот это уже УУУУУУУУУУУУУУУУУУУУПС !!!Arkan писал(а): 18 окт 2019, 21:16 Мне, на самом деле не важно прописанные адреса, или по умолчанию. Главное, чтобы на вход Таблицы состояний приходили единицы от каждого датчика по выполнению условий.
Нимагу установить вход в таблицу состояний с лазерных дальномеров
Спасибо!
Поставил компаратор <=. На один вход - выход датчика. а второй - задал переменную (600). На второй компоратор , то же. И выходы обоих компараторов приходят на входы Таблицы состояний. На выходы таблицы состояний установил "выходы" для проверки светодиодами. И, вот какая ерунда: казалось бы, если расстояние, сканируемое датчиком меньше указанного в переменной, на выходе ТС должна появляться 1. Она появляется. Но, как-то странно. На мгновение вспыхивает сд. И тут же может вспыхнуть и второй. если держать препятствие над датчиками, то вспышка происходит разово. Если вообще происходит. Хотя, как я понимаю, должна висеть 1 постоянно.
На счет упс. Скетч с двуммя датчиками работает. Только с большими задержками., и с ложными несрабатываними.
Поставил компаратор <=. На один вход - выход датчика. а второй - задал переменную (600). На второй компоратор , то же. И выходы обоих компараторов приходят на входы Таблицы состояний. На выходы таблицы состояний установил "выходы" для проверки светодиодами. И, вот какая ерунда: казалось бы, если расстояние, сканируемое датчиком меньше указанного в переменной, на выходе ТС должна появляться 1. Она появляется. Но, как-то странно. На мгновение вспыхивает сд. И тут же может вспыхнуть и второй. если держать препятствие над датчиками, то вспышка происходит разово. Если вообще происходит. Хотя, как я понимаю, должна висеть 1 постоянно.
На счет упс. Скетч с двуммя датчиками работает. Только с большими задержками., и с ложными несрабатываними.
Нимагу установить вход в таблицу состояний с лазерных дальномеров
Тут возможно зависит от условий, которые вы прописали в компараторе. Если просто "=", то будет как раз происходить то, как вы описываете.Arkan писал(а): 18 окт 2019, 22:48 На один вход - выход датчика. а второй - задал переменную (600). На второй компоратор , то же. И выходы обоих компараторов приходят на входы Таблицы состояний. На выходы таблицы состояний установил "выходы" для проверки светодиодами. И, вот какая ерунда: казалось бы, если расстояние, сканируемое датчиком меньше указанного в переменной, на выходе ТС должна появляться 1. Она появляется. Но, как-то странно. На мгновение вспыхивает сд. И тут же может вспыхнуть и второй. если держать препятствие над датчиками, то вспышка происходит разово. Если вообще происходит. Хотя, как я понимаю, должна висеть 1 постоянно.
Нимагу установить вход в таблицу состояний с лазерных дальномеров
Понял в чем проблема. Проблема в пользовательском блоке лазерного датчика. Года датчик один, все нормально. Но когда их несколько, контроллер обрабатывает, полученную с них информацию, без разграничений. Блок очень сырой. Переделывать не буду. Изменю скетч. Нужно назначить каждому датчику свой адрес. Щас попробую решиь задачу.
Нимагу установить вход в таблицу состояний с лазерных дальномеров
Ничего не вышло. Не понимаю. Уменьшил схему до "не могу". Ну, почему она не работает?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Dryundel
- Полковник
- Сообщения: 2457
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 6 раз
- Поблагодарили: 31 раз
Нимагу установить вход в таблицу состояний с лазерных дальномеров
Ну так сам же писал ответ:Arkan писал(а): 20 окт 2019, 00:44 Ничего не вышло. Не понимаю. Уменьшил схему до "не могу". Ну, почему она не работает?
Это то о чем я говорил ранее:Arkan писал(а): 19 окт 2019, 21:28 Понял в чем проблема. Проблема в пользовательском блоке лазерного датчика. Года датчик один, все нормально. Но когда их несколько, контроллер обрабатывает, полученную с них информацию, без разграничений.
Вот здесь пример № 2 посмотрите.Dryundel писал(а): 18 окт 2019, 20:59 В программе нет. Но пользовательский блок есть. Однако он вам не подойдет, т.к. в нем нет возможности прописывания адреса и он использует адрес по умолчанию.
Вывод: Надо делать новый пользовательский блок.
И библиотеку поизучайте.
Отправлено спустя 5 минут 36 секунд:
А без переделок два датчика работать не будут.
Нимагу установить вход в таблицу состояний с лазерных дальномеров
Да. Спасибо!
Пример этот я видел.
У меня написан скетч счетчика на 2 . Но, хотелось разобраться с конструктором. В скетче устанавливаются адреса. И все, вроде, работает. однако, скетч тяжелый. Постоянно должны меняться адреса датчиков. Так же, присутствуют ложные не срабатывания. Или срабатывания в одну сторону (видимо не переключаются адреса). А по прошествии времени работы, вообще начинает глючить. Щас напаяю на плату, чтобы исключить дребезг.
Пришел к выводу, что проблема все же в конструкторе. Если каждый датчик, в отдельности работает сторонним скетчем. Скетч на 2 так же работает. Не работает конструктор. Т.е. при подключении датчиков к компараторам, при выполнении условий на любом из датчиков, на выходах обоих компараторов появляется 1. Вот я и не пойму, где ошибка! Не счтите за труд, посмотрите код, пожалуйста!
Пример этот я видел.
У меня написан скетч счетчика на 2 . Но, хотелось разобраться с конструктором. В скетче устанавливаются адреса. И все, вроде, работает. однако, скетч тяжелый. Постоянно должны меняться адреса датчиков. Так же, присутствуют ложные не срабатывания. Или срабатывания в одну сторону (видимо не переключаются адреса). А по прошествии времени работы, вообще начинает глючить. Щас напаяю на плату, чтобы исключить дребезг.
Пришел к выводу, что проблема все же в конструкторе. Если каждый датчик, в отдельности работает сторонним скетчем. Скетч на 2 так же работает. Не работает конструктор. Т.е. при подключении датчиков к компараторам, при выполнении условий на любом из датчиков, на выходах обоих компараторов появляется 1. Вот я и не пойму, где ошибка! Не счтите за труд, посмотрите код, пожалуйста!
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя