Здравствуйте! Без трех дней осваиваю flprog и в целом все интуитивно понятно. Но столкнулся неразрешимой (Для меня) проблемой.
Накидал схему для железа состоящего из arduino uno, cnc shield v3, фоторезистора, двух драйверов A4988 и двух Nema17. Суть простая, один двигатель крутится только в одну сторону, в то время как второй (работая с меньшей на скоростью) меняет свое направление от замыкания двух кнопок (каждый клик меняет направление движения - т.е двигатель бегает "туда-сюда") и все это дело останавливается и стартует в зависимости от фоторезистора (Есть свет - двигаемся, нет света - стоим).
Эту схему (Прилагаю файл во вложении) я осилил с помощью данного форума и youtube'а, все работает как надо и можно было бы запускать проект но, есть острая необходимость регулировки скорости работы данных двигателей, чтоб можно было во время работы подрегулировать обороты, и вот здесь я напоролся на стену, пробовал через scale подключать аналоговый потенциометр на параметр onval в генераторах управляющих двигателями, но они на него абсолютно не реагируют, пробовал подключать энкодер и по готовым библиотеками, и собирал по схемам из интернета, все им (двигателям) побоку (Кстати энкодер мне больше нравится, так как там есть кнопка которую можно повесить на вкл/выкл и не городить отдельную, да и в целом он как то уверенней крутится).
Так вот. Может кто подскажет как это реализовать? Заранее благодарен любой помощи.
P.S. И еще два момента, не таких критичных как регулировка оборотов, но все же если кто знает как сделать поделитесь пожалуйста.
1. Плавный старт и остановка двигателей при срабатывании фоторезистора.
2. Снижение оборотов двигателя (который бегает от кнопки к кнопке), при каждом клике на определенную величину (т.е. раз клик на единицу медленней, два клик еще на единицу медленней).
Управление скоростью шагового двигателя
Управление скоростью шагового двигателя
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Управление скоростью шагового двигателя
Спасибо за ответ! Эту тему я нашел и проштудировал в первую очередь. Но часть блоков оттуда у меня просто не заработала (вернее при компилировании flprog вылетал с ошибкой). А с частью я не почему то не подружился, в частности с AlexCrane v 1.3 - возможно до конца не разобрался, но в целом собранная мною схема на стандартных блоках меня полностью устраивает и видимо поэтому я сильно не углублялся.
Уверен, что есть возможность опять таки на стандартных блоках собрать регулировку скорости, но так как я новичек, то пока не могу понять как это сделать, надеясь на помощь Форумчан в более быстром решении этого вопроса.
Суть проекта, это намотчик с укладчиком, на просторах интернета есть есть похожие проекты, но по тем или иным причинам они меня не устраивают, вот и решил попробовать....
- Davit07
- Сержант
- Сообщения: 175
- Зарегистрирован: 05 янв 2020, 03:39
- Откуда: Краснодар
- Имя: Давит
- Благодарил (а): 7 раз
Управление скоростью шагового двигателя
[ref]richialex[/ref], Вы какой ШД используете ?
Если же управление через сигналы Step/ Dir, то луче блока AlexCrane Вы не найдете. Всё-таки послушайте совет [ref]av[/ref] и обратите внимание на данный блок
Если же управление через сигналы Step/ Dir, то луче блока AlexCrane Вы не найдете. Всё-таки послушайте совет [ref]av[/ref] и обратите внимание на данный блок
Управление скоростью шагового двигателя
Ух ты. Спасибо большое! Искал по "укладчик" и "намотчик", но не встречал эту тему.av писал(а): 03 июл 2020, 13:30 [ref]richialex[/ref], где то здесь на форуме была тема форумчанина из Германии как раз по укладчику/намотчику. Я ему помогал разобраться как его сделать на блоках от уважаемого [ref]AlexCrane[/ref]. Как называется тема увы не помню. Создавалась программа с меню управления зависящая от толщины и длины намотки. Ищите эту тему, я тоже поищу может найду.
Отправлено спустя 1 час 29 минут 21 секунду:
Тему еле нашелназвание и расположение вообще непонятно по каким критериям создавалось. Вот эта тема и проект к ней в версии 6.3.1
Для Gennadij2_v3.rar
Попробую разобраться, блока кнопок как у немца у меня нет, а в Вашем проекте единственный вход это A0 с данного блока. Да и экран мне особо не нужен, диаметр проволоки как и ширина катушек у меня всегда постоянна. Еще момент, который мне не понравился в блоке уважаемого AlexCrane, с его блока не идет сигнал (И его нельзя указать в блоке) на пин Enable драйвера и его нужно добавлять отдельно, хотя может это связано c cnc shield который я использую, так как в большинстве проектов предполагают подключение питания напрямую к драйверу.
В еще, в своем проекте я использую фоторезистор для остановки-пуска всей системы во время намотки (По сути при натяжении проволока загораживает свет от диода и ставит на паузу двигатели, а при провисании свет вновь попадает на фоторезистор и движение продолжается), но я столкнулся с проблемой, что при подключении фоторезистора на аналоговый вход, максимальная скорость двигателя сильно падает (Причем при испытании на спец блоке от AlexCrane этот момент тоже присутствует). Не подскажете что может служить причиной (Подключаю через 10k резистор) и возможно ли это как-то обойти?
В любом случае, спасибо за Вашу помощь! Из проекта по укладчику, как новичок, почерпнул для себя много нового.
P.S Кстати с регулировкой скорости я вроде разобрался с помощью энкодера и стандартных блоков (во вложении). Да и с ускорением вроде тоже начало получатся через генератор + таймер, но пока не корректно (Видимо с логикой у меня на старости лет не совсем лады)
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Управление скоростью шагового двигателя
Просто оставлю это здесь. Вдруг кому поможет. Нашел решение для обхода данного ограничения. Перед прошивкой платы, в блоке void setup() Необходимо прописать следующие строки:av писал(а): 04 июл 2020, 09:04 Все дело в том что обработка аналогового сигнала занимает время поэтому программа в этот момент тормозит (программу, таймеры, генераторы). Где то здесь на форуме это обсуждалось, делались замеры времени задержки при обработке аналоговой состовляющей. Обойти это можно только если использовать вместо фотодатчика(на аналоговом пине) рычажок закрепленный на намоточной проволоке и свободно двигающийся относительно точки крепления. Который в свою очередь при натяжении проволоки замыкает цифровые контакты кнопки. Что то типа такого:
Код: Выделить всё
ADCSRA |= (1 << ADPS2); //Биту ADPS2 присваиваем единицу - коэффициент деления 16
ADCSRA &= ~ ((1 << ADPS1) | (1 << ADPS0)); //Битам ADPS1 и ADPS0 присваиваем нули
В связи с этим вопрос... Можно ли данный код прописать в каком либо блоке flprog? А то при частых перепрошивках иногда забываешь прописывать код отдельно.
- AlexCrane
- Капитан
- Сообщения: 903
- Зарегистрирован: 20 окт 2017, 13:22
- Откуда: Ульяновск
- Имя: Александр
- Поблагодарили: 12 раз
Управление скоростью шагового двигателя
[ref]richialex[/ref], Пару лет назад писал такой блок для А3
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя