автономный контроллер шагового двигателя

Все прочитали, вроде даже поняли, взяли паяльник - а нифига не получается? Скорее сюда! Поможем. Чем можем...
Ответить
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Сообщение Soir »

stasser68 писал(а):А, может, для плавности вращения попробовать режимы 1/4 шага, 1/8 шага?
Давайте пройдем сначала...
Soir писал(а):...Какая диаграмма его работы (способ управления)?
Реклама
Открыл глаза
Сообщения: 52
Зарегистрирован: Вт дек 11, 2012 14:17:21
Откуда: minsk, belarus

Сообщение stasser68 »

Я имел в виду, что при дроблении шага можно повысить плавность хода. Может быть можно добавить ШИМ для плавности хода? В википедии сказано: "Режим дробления шага (микрошаг) реализуется при независимом управлении током обмоток шагового электродвигателя. Управляя соотношением токов в обмотках можно зафиксировать ротор в промежуточном положении между шагами. Таким образом можно повысить плавность вращения ротора и добиться высокой точности позиционирования."
И второй вопрос: можно ли уменьшить количество полушагов до изменения направления вращения до 1 полушага?
Нет предела совершенству.
Реклама
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Сообщение Soir »

stasser68 писал(а):В википедии сказано...
У меня нет желания и времени изучать википедию, как и устройство шагового двигателя. Вы мне даете диаграмму работы, а я смотрю можно ли это реализовать в данном проекте.
ШИМ плавности хода не добавит. Двигатель шаговый, то есть изменение положения производится дискретно. Уменьшение питающего напряжения приведет к снижению его мощности, но не к изменению скорости его вращения. Конечно в определенный момент, когда он уже не сможет нормально провернуть ротор, скорость неконтролируемо упадет. Это приведет к потере позиционирования и возможно полной остановке...
stasser68 писал(а):можно ли уменьшить количество полушагов до изменения направления вращения до 1 полушага?
Можно, но Вы просили:
stasser68 писал(а):Регулировку можно сделать с дискретностью 10 шагов.
Указывайте новый диапазон и способ отображения (если шагов будет более 99), я сделаю.
Открыл глаза
Сообщения: 52
Зарегистрирован: Вт дек 11, 2012 14:17:21
Откуда: minsk, belarus

Сообщение stasser68 »

Я не хотел Вас обидеть, но шаговые двигатели не очень хорошо знаю.
Диапазон шагов (полушагов) от 1 до 99.
И ещё, можно ли добавить регулируемую паузу в крайних точках: влево-пауза-реверс-вправо-пауза-реверс. Диапазон паузы от 0 до 2 секунд
Нет предела совершенству.
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Сообщение Soir »

stasser68 писал(а):Я не хотел Вас обидеть, но шаговые двигатели не очень хорошо знаю.
За что тут обижаться? Я их тоже не знаю и готов только реализовать программно нужный алгоритм. Если приведете устраивающий Вас алгоритм работы, я посмотрю можно ли его в рамках этого проекта реализовать.
stasser68 писал(а):Диапазон шагов (полушагов) от 1 до 99.
И ещё, можно ли добавить регулируемую паузу в крайних точках: влево-пауза-реверс-вправо-пауза-реверс. Диапазон паузы от 0 до 2 секунд
Это можно.
Реклама
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Сообщение Soir »

stasser68 писал(а):Диапазон шагов (полушагов) от 1 до 99.
И ещё, можно ли добавить регулируемую паузу в крайних точках: влево-пауза-реверс-вправо-пауза-реверс. Диапазон паузы от 0 до 2 секунд
Сделал. Все во вложении. Проверяйте.
Поскольку дискретность установки паузы не была указана, на свой выбор сделал 0,1 сек. В связи с этим в схеме небольшое изменение для индикации разделительной точки.
Вложения
Stepper_control_v0.zip
(18.18 КБ) 253 скачивания
Реклама
Открыл глаза
Сообщения: 52
Зарегистрирован: Вт дек 11, 2012 14:17:21
Откуда: minsk, belarus

Сообщение stasser68 »

Спасибо! Проверил, все работает отлично. Буду дальше тестировать, может ещё что-нибудь придется изменить.
Нет предела совершенству.
Нашел транзистор. Понюхал.
Сообщения: 190
Зарегистрирован: Пт дек 17, 2010 23:19:40
Откуда: Чешская Республика

Сообщение pert »

Здравствуйте,
Как ведет себя двигатель в циклическом режиме при потере питания? Какие крайние позиции при новом включении питания?
Спасибо pert
Открыл глаза
Сообщения: 52
Зарегистрирован: Вт дек 11, 2012 14:17:21
Откуда: minsk, belarus

Сообщение stasser68 »

При отключении питания сохраняются только те настойки, которые были занесены в энергонезависимую память. Т. е. если после нажатия кнопки старт мы изменили скорость, то после повторного включения питания будет скорость, которая была занесена в память. И крайние позиции тоже не запоминаются. Но это только при отключении питания, а при останове кнопкой стоп- все сохраняется.
P.S. В протеусе всё наглядно показано. Всё так и в реальности.
Нет предела совершенству.
Открыл глаза
Сообщения: 52
Зарегистрирован: Вт дек 11, 2012 14:17:21
Откуда: minsk, belarus

Сообщение stasser68 »

Вопрос к Soir. Можно ли сделать визуальную индикацию паузы, светодиод+резистор?
Нет предела совершенству.
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Сообщение Soir »

stasser68 писал(а):Можно ли сделать визуальную индикацию паузы, светодиод+резистор?
Можно.
Вложения
Stepper_control_v0.zip
(19.19 КБ) 194 скачивания
Нашел транзистор. Понюхал.
Сообщения: 190
Зарегистрирован: Пт дек 17, 2010 23:19:40
Откуда: Чешская Республика

Сообщение pert »

Строительство заняло у меня,поэтому я построил из того,что дом дал. Я протестировал в реальной жизни. Скорость и количество шагов помнит , при потере питания, но не позиции, было бы возможно это исправить?
ссылка на видео
http://zalil.ru/34153362
pert
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Сообщение Soir »

pert писал(а):Скорость и количество шагов помнит , при потере питания, но не позиции, было бы возможно это исправить?
Контроллер должен знать, что питание отключится до того как оно отключится, чтобы успеть записать текущее состояние. Для этого нужно вводить схему контроля питающего напряжения.
Второй вариант, это установка датчиков конечного положения (концевиков), которые будут реверсировать направление вращения.
Какой вариант Вам больше подходит?
Открыл глаза
Сообщения: 52
Зарегистрирован: Вт дек 11, 2012 14:17:21
Откуда: minsk, belarus

Сообщение stasser68 »

Я так понял, что для первого варианта необходим источник бесперебойного питания, который при отключении основного должен питать некоторое время контроллер, чтобы он успел записать данные в энергонезависимую память?
Нет предела совершенству.
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Сообщение Soir »

stasser68 писал(а):Я так понял, что для первого варианта необходим источник бесперебойного питания, который при отключении основного должен питать некоторое время контроллер, чтобы он успел записать данные в энергонезависимую память?
В принципе, да. Таким источником может быть просто правильно подобранные конденсаторы в блоке питания и отдельная цепочка - детектор наличия основного питания.
Вопрос только в том, что изначально такой поворот не предполагался (впрочем, как многие другие) и выводы МК использовались не рационально и не оптимально для решения данной задачи. Оставшийся свободный вывод требует большего времени для детектирования отсутствия питания, чем, скажем, RB0 (вывод 6). Если ничего существенно не менять в схеме, то обнаружение отсутствия питания займет до 2 мсек (так в программе, и на незапланированные ранее фишки радикально менять я ее не буду). Сама запись в память займет времени 40-50 мсек (навскидку, надо еще глянуть какие параметры записывать). То есть, между отключением основного питания и отключением питания МК должно быть не менее 50 мсек. Отсюда и выбор схемы...
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Сообщение Soir »

Пример схемного решения этого вопроса во вложении. Прошивка и описание тоже.
Кнопка POWER нужна только для симуляции отключения питания в Proteus. Кроме того, при симулировании схемы следует учитывать, что в Proteus не предусмотрено иного отключения питания МК, как остановка симуляции.
Вложения
Stepper_control_v0.zip
(22.06 КБ) 202 скачивания
Нашел транзистор. Понюхал.
Сообщения: 190
Зарегистрирован: Пт дек 17, 2010 23:19:40
Откуда: Чешская Республика

Сообщение pert »

Так я это пробовал,но это не функциональное, позиция не записалась ни при регулярной остановке или при потере питания.
Иногда сделать при запуске скачок обратным направлением. При остановке в конечном положении и нажатие старт остается светить пауза

ссылка на видео

http://zalil.ru/34161514
http://zalil.ru/34161518
http://zalil.ru/34161522
pert
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Сообщение Soir »

pert писал(а):Так я это пробовал,но это не функциональное, позиция не записалась ни при регулярной остановке или при потере питания.
Попробуйте следующее.
1. После отключения питания считать данные из EEPROM программатором. Запись текущих данных производится в ячейки с адресами 0x06 - 0x0A.
2. Если в этих ячейках записаны 0xFF, то сделайте следующее. При работе шагового двигателя замкните на общий провод вывод 4 МК. При этом двигатель должен остановиться, индикатор погаснуть. Выключите полностью питание и снова включите, посмотрите с какой позиции стартует устройство. Снова считайте данные с EEPROM.
3. Если по п.1 запись не произвелась, а по п.2 все отработало согласно описанию, то у Вас неправильно выбраны номиналы деталей детектора питания и/или стабилизатора +5V.
4. Если запись не произошла ни в п.1, ни в п.2, значит я допустил ошибку в программе.
5. Если запись произошла в обоих случаях, но устройство все равно стартует не из запомненной позиции, значит тоже моя недоработка.
pert писал(а):Иногда сделать при запуске скачок обратным направлением.
Возможно это следствие проблемы записи положения. Устройство не знает в каком положении находится ротор двигателя и куда он вращался до отключения питания...
pert писал(а):При остановке в конечном положении и нажатие старт остается светить пауза
Остановили на паузе, потому и светится. При повторном нажатии на START запустится с продолжения выполнения паузы. Или не так? Или надо не так?
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Сообщение Soir »

Проверил на макете, все записывается и считывается. Шагового двигателя у меня нет, так что полностью проверить не смог. Но текущее состояние запоминает, это точно.
Так что займитесь формирователем и стабилизатором +5V. Можете применить любой другой. Главное, чтобы после падения напряжения на выводе 4 МК питание самого МК сохранялось еще не менее 50 мсек. Лучше по-больше, с запасом... Запитайте двигатель от отдельного выпрямителя. Или, по аналогии с предложенным вариантом, через диод, если трансформатор с одной обмоткой, чтобы предотвратить быструю разрядку конденсаторов стабилизатора +5V.
Нашел транзистор. Понюхал.
Сообщения: 190
Зарегистрирован: Пт дек 17, 2010 23:19:40
Откуда: Чешская Республика

Сообщение pert »

другие результаты
- Данные записываются в память
- питание двигателя из другого источника
- при регулярной остановке в конечном положении (L или R) - выключение питания- включение питания позиция не записалась
- при регулярной остановке в положении между L или R -выключение питания- включение питания позиция обычно хорошо.
- то же самое при потере питания.
pert
Вложения
sp.pdf
(123.49 КБ) 436 скачиваний
Ответить

Вернуться в «Практика»