Всем привет!
Во вложении проект под 6,1,1 и ПБ, которую я в проекте использовал.
Смысл в чем: при подаче на вывод "Ближ" 1 - вращаем мотор в одну сторону, пока не упремся в конечник, уперлись - останов, делаем паузу, и отсчитываем шаги в другую сторону - это плата "Инициализация". как только отработала инициализация - плату эту отключаем, и начинает работать плата 2.
Только вот в чем фишка, не могу понять из-за чего это. при компиляции платы "инициализация" без платы 2 - все работает как надо.
при компиляции обеих плат - не выполняется команда "Ближ", а вот команда по "датчику" работает, переход на работу 2ой платы есть, 2я плата работает как надо.
что не так я сделал?
не могу понять причину
- AlexCrane
- Капитан
- Сообщения: 903
- Зарегистрирован: 20 окт 2017, 13:22
- Откуда: Ульяновск
- Имя: Александр
- Поблагодарили: 12 раз
не могу понять причину
[ref]Sanbi4[/ref], Данный блок ШД, как бы можно использовать один раз в проекте, в том виде в котором он представлен
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Если нет возможности отблагодарить материально, хотя бы оцени пост....
не могу понять причину
тогда почему работает всё, кроме вкл по сигналу "ближ"? повторюсь, по сигналу "Датчик" отработка происходит, а по завершению идет переход на 2ю плату, и там все отрабатывается как надо!!!
- AlexCrane
- Капитан
- Сообщения: 903
- Зарегистрирован: 20 окт 2017, 13:22
- Откуда: Ульяновск
- Имя: Александр
- Поблагодарили: 12 раз
не могу понять причину
[ref]Sanbi4[/ref], Потому-что смотри 2 пост, организуй логику для работы с одним блоком
Что мешает сделать на входы блока ШД по переменной и расположить на отдельной плате!!!
А дальше передавайте на нее что угодно из своих плат Подкорректируете проект по необходимости, как пример делал
Что мешает сделать на входы блока ШД по переменной и расположить на отдельной плате!!!
А дальше передавайте на нее что угодно из своих плат Подкорректируете проект по необходимости, как пример делал
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Если нет возможности отблагодарить материально, хотя бы оцени пост....
не могу понять причину
Спасибо, попробую
PS. да, так все работает. принцип понял, спасибо за направление!!!
PS. да, так все работает. принцип понял, спасибо за направление!!!
не могу понять причину
Всем снова привет! С предложенной программой такой косяк: при отработке инициализации, после нажатия на конечник количество шагов берется из платы 2. Для примера я выставил сначала 300 шагов везде, но в реале начинаю подбирать шаги и ничего не получается. В итоге в плате инициализации должно 30 шагов от датчика, а на 2ой плате по 50 в обе стороны. А получается так, что после нажатия на конечник мотор делает 50 шагов, а не 30, как задаю в переменную. Пробовал выставлять значения по умолчанию 30, но мотор все равно шагает на 50. Пробовал ставить задержку записи 1 в переменную инициализация - работает только плата 1. В чем дело не пойму.
не могу понять причину
а без концевика ?? по количеству шагов не пробовали ,и сам алгоритм в право лево одинаково должно быть, и по кругу ??Sanbi4 писал(а): 03 дек 2019, 11:04 вращаем мотор в одну сторону, пока не упремся в конечник, уперлись - останов, делаем паузу, и отсчитываем шаги в другую сторону
не могу понять причину
алгоритм инициализации должен быть такой:
Запуск системы - подача 1 на вход ближ. мотор начинает вращаться против часовой до момента нажатия на концевик. это нулевая точка отсчета. как только нажали на концевик - останавливаем мотор, выжидаем 2 сек, и уже по часовой отсчтываем 30 шагов. как только инициализация прошла, плата "инициализация" перестает работать, ну и, соответственно, перестает реагировать на изменение состояния входа Ближ, начинает работать плата 2. по сигналу лог 1 на вход дальний - мотор делает 50 шагов по часовой (то есть добавляет количество шагов от нулевой точки), при лог 0 на этом входе - мотор отматывает обратно эти 50 шагов и должен встать на то место, где 30 шагов от нулевой точки. как-то так....
проект под мегу 2560, драйвера у меня А4988.
Отправлено спустя 1 час 11 минут 22 секунды:
решил задачу!!! на плате 2 поставил таймер на 100мс, который включает запись переменной _Steps_ от переменной "инициализация"
Запуск системы - подача 1 на вход ближ. мотор начинает вращаться против часовой до момента нажатия на концевик. это нулевая точка отсчета. как только нажали на концевик - останавливаем мотор, выжидаем 2 сек, и уже по часовой отсчтываем 30 шагов. как только инициализация прошла, плата "инициализация" перестает работать, ну и, соответственно, перестает реагировать на изменение состояния входа Ближ, начинает работать плата 2. по сигналу лог 1 на вход дальний - мотор делает 50 шагов по часовой (то есть добавляет количество шагов от нулевой точки), при лог 0 на этом входе - мотор отматывает обратно эти 50 шагов и должен встать на то место, где 30 шагов от нулевой точки. как-то так....
проект под мегу 2560, драйвера у меня А4988.
Отправлено спустя 1 час 11 минут 22 секунды:
решил задачу!!! на плате 2 поставил таймер на 100мс, который включает запись переменной _Steps_ от переменной "инициализация"
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя