74HC595 L293D
- Войдите на сайт для отправки комментариев
Чт, 04/02/2016 - 07:04
Доброе время суток форумчане, вопрос следующий:
Решил расширить количество ног на ардуино нано, для увеличения использовал пару сдвиговых регистров (74HC595), для теста поразвлекался с библиотекой Shift595 всё работает, дальше пришла мысть что схема управления шаговиками немного изменилась и теперь вместо включения или отключения ноги на дурине нужно на ноги байты посылать. Тут я немного приуныл так как естественно библиотека AccelStepper с подачей байтов на ноги не дружит. Нужно ли переписывать эти библы для совместной работы или есть какие-то уже решения?
AccelStepper нужна для управления паралельно несколькими шаговиками (5 шт).
Вот кусок из библиотеки AccelStepper, файл AccelStepper.cpp, в нем видно, как выполняются шаги:
Зачем вам библиотека для управления шаговыми? Она ведь просто перебирает ноги в нужном порядке. В вашем случае лучше сделать так: подготовка состояния выводов по всем шаговым (иначе говоря то что в библиотеке меняет состояние вывода надо сохранить в переменную без команды смены состояния), собираете состояния выводов в байт или в 2 байта, отправляете на сдвиговый регистр. Можете переделать библиотеку под получение состояний вывода вместо его смены, а смену уже делайте вручную после получения состояния для всех 5 шаговиков.
В моей версии всё более со стороны функций запутанно, если не трудно скинте свою версию сюда.
Спасибо разобрался.
После несложных манипуляций с подключением библиотеки Shift595 и небольного редактирования библиотеки AccelStepper была переписана функция setOutputPins.
На входе в функцию setOutputPins приходит это: 0b0101 (что в дальнейшем летит в регистр и включает соответственно указанные ноги).
До редактирования:
После:
Изменение работает и движок крутиться, но только немного не с той скоростью с которой крутился без сдвиговых регистров (медленнее), после изменения скорости вращения двигателя со сдвиговыми регистрами через setMaxSpeed и setAcceleration ничего кроме замедления добиться не получаеться, в чем может быть проблема?