Нимагу установить вход в таблицу состояний с лазерных дальномеров

Ответить
Arkan
Рядовой
Сообщения: 72
Зарегистрирован: 16.04.2019{, 14:16}
Репутация: -1
Имя: Аркадий

Нимагу установить вход в таблицу состояний с лазерных дальномеров

#1

Сообщение Arkan » 18.10.2019{, 16:55}

Здравствуйте, друзья!
Выполнил конструктором FLProg счетчик на плате ESP8266 NodeMCU. На входе счетчика стоит Таблица состояний, управляемая двумя входами. По факту, два лазерных дальномера VL53L0X подключены к входам D1 и D2, соответственно SCL и SDA. Каждому из дальномеров присвоен свой адрес 41 и 42. И, вот вопрос: При наступлении определенных условий (расстояние меньше метра), на указанных выходах контроллера, соответствующих каждому из дальномеров, должна появится логическая 1. Как сделать, чтобы при наступлении этих условий логическая 1 устанавливалась не на выходе контроллера, а на входе Таблицы состояний. Сломал голову.Ответа не нашел. Подскажите, кто знает, плз! Заранее благодарю!

Изображение
Вложения
Сема счетчика.jpg
Сема счетчика.jpg (23 КБ) 522 просмотра
Последний раз редактировалось Arkan 18.10.2019{, 19:44}, всего редактировалось 1 раз.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Нимагу установить вход в таблицу состояний с лазерных дальномеров

#2

Сообщение Dryundel » 18.10.2019{, 17:34}

Arkan, файл проекта лучше выложите.

Arkan
Рядовой
Сообщения: 72
Зарегистрирован: 16.04.2019{, 14:16}
Репутация: -1
Имя: Аркадий

Нимагу установить вход в таблицу состояний с лазерных дальномеров

#3

Сообщение Arkan » 18.10.2019{, 19:30}

Dryundel, сейчас . Проект только готовится. Не пойму, как вставить файл. Вам нужен весь сохраненный проект?

Отправлено спустя 2 минуты 34 секунды:
Это он?
Вложения
New project.flp
(288.39 КБ) 32 скачивания

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Нимагу установить вход в таблицу состояний с лазерных дальномеров

#4

Сообщение Dryundel » 18.10.2019{, 20:30}

Arkan писал(а):
18.10.2019{, 19:33}
Вам нужен весь сохраненный проект?
Ну мне то он не нужен, а вот Вам вряд ли кто поможет не видя Вашего творчества.

Теперь по существу.
Вы как то странно пытаетесь подключить два датчика VL53L0X.
Где у Вас блоки VL53L0X?
Дальномер присылает по шине I2C данные расстояния. Т.е. каждый из датчиков должен быть подключен к SCL и SDA.
А данные с них можно получить к примеру с помощью пользовательского блока типа этого
А вот с выхода этого блока надо ставить компараторы. И уже только после этого подавать сигнал на таблицу состояний.

Аватара пользователя
ViktorPetrov
Лейтенант
Сообщения: 677
Зарегистрирован: 09.04.2018{, 23:56}
Репутация: 49
Имя: Виктор

Нимагу установить вход в таблицу состояний с лазерных дальномеров

#5

Сообщение ViktorPetrov » 18.10.2019{, 20:32}

Нужно добавить блок в проект : VL53L0X лазерный дальномер

Arkan
Рядовой
Сообщения: 72
Зарегистрирован: 16.04.2019{, 14:16}
Репутация: -1
Имя: Аркадий

Нимагу установить вход в таблицу состояний с лазерных дальномеров

#6

Сообщение Arkan » 18.10.2019{, 20:44}

Спасибо большое!
Для датчиков написана отдельная программа. Каждому присвоен свой адрес.
Блоков VL53LOx нет в программе FLProg . Пытаюсь совместить два скетча.
Постараюсь использовать Ваш совет.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Нимагу установить вход в таблицу состояний с лазерных дальномеров

#7

Сообщение Dryundel » 18.10.2019{, 20:59}

Arkan писал(а):
18.10.2019{, 20:44}
Для датчиков написана отдельная программа. Каждому присвоен свой адрес.
Где написана? Вы Правите скетч? Как Вы присваивали адрес?
Arkan писал(а):
18.10.2019{, 20:44}
Блоков VL53LOx нет в программе FLProg .
В программе нет. Но пользовательский блок есть. Однако он вам не подойдет, т.к. в нем нет возможности прописывания адреса и он использует адрес по умолчанию.
Вывод: Надо делать новый пользовательский блок.

Arkan
Рядовой
Сообщения: 72
Зарегистрирован: 16.04.2019{, 14:16}
Репутация: -1
Имя: Аркадий

Нимагу установить вход в таблицу состояний с лазерных дальномеров

#8

Сообщение Arkan » 18.10.2019{, 21:07}

Упс!
#define VL53L0X1_ADDRESS 41
#define VL53L0X2_ADDRESS 42
VL53L0X sensor1;
VL53L0X sensor2;
В компараторе, опять же, два входа для выполнения условий.
Один вход, это датчик, а второй?
А условие для датчиков <= 1ooo (мм)

Отправлено спустя 1 минуту 59 секунд:
Может, легче компаратор новый создать, где можно прописывать условие по 1 входу?

Отправлено спустя 6 минут 30 секунд:
Dryundel писал(а):
18.10.2019{, 20:59}
В программе нет. Но пользовательский блок есть. Однако он вам не подойдет, т.к. в нем нет возможности прописывания адреса и он использует адрес по умолчанию.
Вывод: Надо делать новый пользовательский блок.
Мне, на самом деле не важно прописанные адреса, или по умолчанию. Главное, чтобы на вход Таблицы состояний приходили единицы от каждого датчика по выполнению условий.
Спасибо, что возитесь со мной!
P/S Как Вы понимаете, для счетчика не важна точность (в мм), важны скорость и надежность.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Нимагу установить вход в таблицу состояний с лазерных дальномеров

#9

Сообщение Dryundel » 18.10.2019{, 22:12}

Arkan писал(а):
18.10.2019{, 21:16}
Упс!
#define VL53L0X1_ADDRESS 41
#define VL53L0X2_ADDRESS 42
VL53L0X sensor1;
VL53L0X sensor2;
В компараторе, опять же, два входа для выполнения условий.
Один вход, это датчик, а второй?
А условие для датчиков <= 1ooo (мм)
Эт точно УПС! :smile37:

Отправлено спустя 57 секунд:
Arkan писал(а):
18.10.2019{, 21:16}
Может, легче компаратор новый создать, где можно прописывать условие по 1 входу?
А это УПС-УПС!

Отправлено спустя 47 секунд:
Arkan писал(а):
18.10.2019{, 21:16}
Мне, на самом деле не важно прописанные адреса, или по умолчанию. Главное, чтобы на вход Таблицы состояний приходили единицы от каждого датчика по выполнению условий.
А вот это уже УУУУУУУУУУУУУУУУУУУУПС !!!

Arkan
Рядовой
Сообщения: 72
Зарегистрирован: 16.04.2019{, 14:16}
Репутация: -1
Имя: Аркадий

Нимагу установить вход в таблицу состояний с лазерных дальномеров

#10

Сообщение Arkan » 18.10.2019{, 22:48}

Спасибо!
Поставил компаратор <=. На один вход - выход датчика. а второй - задал переменную (600). На второй компоратор , то же. И выходы обоих компараторов приходят на входы Таблицы состояний. На выходы таблицы состояний установил "выходы" для проверки светодиодами. И, вот какая ерунда: казалось бы, если расстояние, сканируемое датчиком меньше указанного в переменной, на выходе ТС должна появляться 1. Она появляется. Но, как-то странно. На мгновение вспыхивает сд. И тут же может вспыхнуть и второй. если держать препятствие над датчиками, то вспышка происходит разово. Если вообще происходит. Хотя, как я понимаю, должна висеть 1 постоянно.
На счет упс. Скетч с двуммя датчиками работает. Только с большими задержками., и с ложными несрабатываними.

edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 65
Имя: Эдуард

Нимагу установить вход в таблицу состояний с лазерных дальномеров

#11

Сообщение edyapd » 19.10.2019{, 05:30}

Arkan писал(а):
18.10.2019{, 22:48}
На один вход - выход датчика. а второй - задал переменную (600). На второй компоратор , то же. И выходы обоих компараторов приходят на входы Таблицы состояний. На выходы таблицы состояний установил "выходы" для проверки светодиодами. И, вот какая ерунда: казалось бы, если расстояние, сканируемое датчиком меньше указанного в переменной, на выходе ТС должна появляться 1. Она появляется. Но, как-то странно. На мгновение вспыхивает сд. И тут же может вспыхнуть и второй. если держать препятствие над датчиками, то вспышка происходит разово. Если вообще происходит. Хотя, как я понимаю, должна висеть 1 постоянно.
Тут возможно зависит от условий, которые вы прописали в компараторе. Если просто "=", то будет как раз происходить то, как вы описываете.

Arkan
Рядовой
Сообщения: 72
Зарегистрирован: 16.04.2019{, 14:16}
Репутация: -1
Имя: Аркадий

Нимагу установить вход в таблицу состояний с лазерных дальномеров

#12

Сообщение Arkan » 19.10.2019{, 21:28}

Понял в чем проблема. Проблема в пользовательском блоке лазерного датчика. Года датчик один, все нормально. Но когда их несколько, контроллер обрабатывает, полученную с них информацию, без разграничений. Блок очень сырой. Переделывать не буду. Изменю скетч. Нужно назначить каждому датчику свой адрес. Щас попробую решиь задачу.

Arkan
Рядовой
Сообщения: 72
Зарегистрирован: 16.04.2019{, 14:16}
Репутация: -1
Имя: Аркадий

Нимагу установить вход в таблицу состояний с лазерных дальномеров

#13

Сообщение Arkan » 20.10.2019{, 00:44}

Ничего не вышло. Не понимаю. Уменьшил схему до "не могу". Ну, почему она не работает?
Два лазерных дальномера.jpg
Вложения
Два лазерных дальномера.flp
(166.65 КБ) 39 скачиваний

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Нимагу установить вход в таблицу состояний с лазерных дальномеров

#14

Сообщение Dryundel » 20.10.2019{, 09:03}

Arkan писал(а):
20.10.2019{, 00:44}
Ничего не вышло. Не понимаю. Уменьшил схему до "не могу". Ну, почему она не работает?
Ну так сам же писал ответ:
Arkan писал(а):
19.10.2019{, 21:28}
Понял в чем проблема. Проблема в пользовательском блоке лазерного датчика. Года датчик один, все нормально. Но когда их несколько, контроллер обрабатывает, полученную с них информацию, без разграничений.
Это то о чем я говорил ранее:
Dryundel писал(а):
18.10.2019{, 20:59}
В программе нет. Но пользовательский блок есть. Однако он вам не подойдет, т.к. в нем нет возможности прописывания адреса и он использует адрес по умолчанию.
Вывод: Надо делать новый пользовательский блок.
Вот здесь пример № 2 посмотрите.
И библиотеку поизучайте.

Отправлено спустя 5 минут 36 секунд:
Arkan писал(а):
19.10.2019{, 21:28}
Блок очень сырой. Переделывать не буду.
А без переделок два датчика работать не будут.

Arkan
Рядовой
Сообщения: 72
Зарегистрирован: 16.04.2019{, 14:16}
Репутация: -1
Имя: Аркадий

Нимагу установить вход в таблицу состояний с лазерных дальномеров

#15

Сообщение Arkan » 20.10.2019{, 14:26}

Да. Спасибо!
Пример этот я видел.
У меня написан скетч счетчика на 2 . Но, хотелось разобраться с конструктором. В скетче устанавливаются адреса. И все, вроде, работает. однако, скетч тяжелый. Постоянно должны меняться адреса датчиков. Так же, присутствуют ложные не срабатывания. Или срабатывания в одну сторону (видимо не переключаются адреса). А по прошествии времени работы, вообще начинает глючить. Щас напаяю на плату, чтобы исключить дребезг.
Пришел к выводу, что проблема все же в конструкторе. Если каждый датчик, в отдельности работает сторонним скетчем. Скетч на 2 так же работает. Не работает конструктор. Т.е. при подключении датчиков к компараторам, при выполнении условий на любом из датчиков, на выходах обоих компараторов появляется 1. Вот я и не пойму, где ошибка! Не счтите за труд, посмотрите код, пожалуйста!

Ответить

Вернуться в «Помогите, а то я "нимагу"»