Страница 1 из 1

не могу понять причину

Добавлено: 03 дек 2019, 11:04
Sanbi4
Всем привет!
Во вложении проект под 6,1,1 и ПБ, которую я в проекте использовал.

Смысл в чем: при подаче на вывод "Ближ" 1 - вращаем мотор в одну сторону, пока не упремся в конечник, уперлись - останов, делаем паузу, и отсчитываем шаги в другую сторону - это плата "Инициализация". как только отработала инициализация - плату эту отключаем, и начинает работать плата 2.

Только вот в чем фишка, не могу понять из-за чего это. при компиляции платы "инициализация" без платы 2 - все работает как надо.
при компиляции обеих плат - не выполняется команда "Ближ", а вот команда по "датчику" работает, переход на работу 2ой платы есть, 2я плата работает как надо.

что не так я сделал?

не могу понять причину

Добавлено: 03 дек 2019, 12:00
AlexCrane
[ref]Sanbi4[/ref], Данный блок ШД, как бы можно использовать один раз в проекте, в том виде в котором он представлен

не могу понять причину

Добавлено: 03 дек 2019, 12:51
Sanbi4
тогда почему работает всё, кроме вкл по сигналу "ближ"? повторюсь, по сигналу "Датчик" отработка происходит, а по завершению идет переход на 2ю плату, и там все отрабатывается как надо!!!

не могу понять причину

Добавлено: 03 дек 2019, 13:34
AlexCrane
[ref]Sanbi4[/ref], Потому-что смотри 2 пост, организуй логику для работы с одним блоком

Что мешает сделать на входы блока ШД по переменной и расположить на отдельной плате!!!

А дальше передавайте на нее что угодно из своих плат
ШД000.png
Подкорректируете проект по необходимости, как пример делал
A4988 шаговый с датчиком положения v2.flp

не могу понять причину

Добавлено: 03 дек 2019, 16:30
Sanbi4
Спасибо, попробую


PS. да, так все работает. принцип понял, спасибо за направление!!!

не могу понять причину

Добавлено: 04 дек 2019, 19:58
Sanbi4
Всем снова привет! С предложенной программой такой косяк: при отработке инициализации, после нажатия на конечник количество шагов берется из платы 2. Для примера я выставил сначала 300 шагов везде, но в реале начинаю подбирать шаги и ничего не получается. В итоге в плате инициализации должно 30 шагов от датчика, а на 2ой плате по 50 в обе стороны. А получается так, что после нажатия на конечник мотор делает 50 шагов, а не 30, как задаю в переменную. Пробовал выставлять значения по умолчанию 30, но мотор все равно шагает на 50. Пробовал ставить задержку записи 1 в переменную инициализация - работает только плата 1. В чем дело не пойму.

не могу понять причину

Добавлено: 04 дек 2019, 22:15
leons
Sanbi4 писал(а): 03 дек 2019, 11:04 вращаем мотор в одну сторону, пока не упремся в конечник, уперлись - останов, делаем паузу, и отсчитываем шаги в другую сторону
а без концевика ?? по количеству шагов не пробовали ,и сам алгоритм в право лево одинаково должно быть, и по кругу ??

не могу понять причину

Добавлено: 05 дек 2019, 09:48
Sanbi4
алгоритм инициализации должен быть такой:
Запуск системы - подача 1 на вход ближ. мотор начинает вращаться против часовой до момента нажатия на концевик. это нулевая точка отсчета. как только нажали на концевик - останавливаем мотор, выжидаем 2 сек, и уже по часовой отсчтываем 30 шагов. как только инициализация прошла, плата "инициализация" перестает работать, ну и, соответственно, перестает реагировать на изменение состояния входа Ближ, начинает работать плата 2. по сигналу лог 1 на вход дальний - мотор делает 50 шагов по часовой (то есть добавляет количество шагов от нулевой точки), при лог 0 на этом входе - мотор отматывает обратно эти 50 шагов и должен встать на то место, где 30 шагов от нулевой точки. как-то так....

проект под мегу 2560, драйвера у меня А4988.

Отправлено спустя 1 час 11 минут 22 секунды:
решил задачу!!! на плате 2 поставил таймер на 100мс, который включает запись переменной _Steps_ от переменной "инициализация"