half 3axis контроллер шаговыз двигателей hobbyrc

STEPMOTOR

В копилку нашего форума !

Сделал на pic 16f877A плату навроде hobbycnc , работает на аппаратных прерываниях по приходу сигнала в порт B. Работает в полушаге ! Имеется шим регулировка тока удержания ротора(Правда пока на уровне исходника). Потом сделаю программу в которую можно будет изменять параметры шим-а. Пока тестировал на тестовой плате. Кто будет делать рекомендую поставить оптопары типа PC847 на входы step/dir.

Прошивка с шим удержания ,нижний уровень 100мс и верхний 100мс
Проштвка с шим 1мс и 1мс для тестирования в PIC Simulator IDE для наглядности.

ATLab
STEPMOTOR:

В копилку нашего форума !

Сделал на pic 16f877A плату навроде hobbycnc , работает на аппаратных прерываниях по приходу сигнала в порт B. Работает в полушаге ! Имеется шим регулировка тока удержания ротора(Правда пока на уровне исходника). Потом сделаю программу в которую можно будет изменять параметры шим-а. Пока тестировал на тестовой плате. Кто будет делать рекомендую поставить оптопары типа PC847 на входы step/dir.

Прошивка с шим удержания ,нижний уровень 100мс и верхний 100мс
Проштвка с шим 1мс и 1мс для тестирования в PIC Simulator IDE для наглядности.

Замечания к схеме те же, что и в rcopen.com/forum/f41/topic41741

Пожелания:

  1. не хватает керамических конденсаторов в питании +5В (у выводов питания PIC - обязательно)
  2. емкость электролитического конденсатора в цепи +5В (470 мкФ) слишком велика, да и не нужна такая большая - мощных потребителей тока по питанию +5В нет, а, с другой стороны, такая большая емкость
  • нарушает нормальный режим работы стабилизатора +5В (посмотрите типовые схемы включения стабилизаторов, там конденсатор большой емкости включается перед стабилизатором)
  • может привести к сбоям в работе PIC из-за нарушения ограничений по скорости нарастания напряжения питания (таблица 17.1 параметр Svdd),
  1. нужно поставить в цепь MCLR PIC супервизор питания, или хотя бы его суррогат на транзисторе или (в крайнем случае) просто конденсатор - см. типовые схемы из раздела 14.4 datasheet.
  2. обязательно) добавить резисторы включеные между затворами и стоками (общим проводом) для исключения ситуации, когда выход PIC будет в 3-м состоянии (настроен на вход при включении (до инициализации) или из-за сбоя), и через IRLZ будет течь неконтролируемый ток, что может привести к перегоранию обмоток двигателей или транзисторов
  3. обязательно поставить диоды параллельно обмоткам двигателя
  4. организовать аппаратный контроль тока через обмотки (в PIC же есть и АЦП и компараторы) или поставить токоограничивающие резисторы в цепи стоков.

Какова частота и разрядность ШИМ для управления током через обмотки (мне лень дизассемблировать прошивку и разбиравться с ней)?
Наверняка ведь частота ШИМ не превышает нескольких килогерц даже при кварце 20 МГц и небольшой разрядности, поскольку реализация программная. Поэтому предвижу проблемы с максимальной частотой шагов двигателя.

По поводу опторазвязки:
не вижу смысла ее ставить после LPT - Вы же не ставите опторазвязку на принтер или плоттер? Возможно имеет смысл ее поставить между PIC и ключами IRLZ, тогда силовая и сигнальная части будут разделены, хотя при грамотной разводке платы и это не нужно.

P.S. Может Вам, все же сначала почитать/перечитать статью Л.Ридико “Контроллер шагового двигателя”?
P.P.S. IMHO, вы напрасно взяли за основу идею венгра - это ошибка, тупик.

STEPMOTOR

P.S. Может Вам, все же сначала почитать/перечитать статью Л.Ридико “Контроллер шагового двигателя”?

Первое что прочитал это была эта статья !

За советы спасибо !
Я же не говорил что это конечный результат , доведу до ума схему, сделаю платку под утюг !

ATLab
STEPMOTOR:

[За советы спасибо !
Я же не говорил что это конечный результат , доведу до ума схему, сделаю платку под утюг !

А ШИМ то на какой частоте и с какой разрядностью?

STEPMOTOR

Вот печатка в формате sprint layout

И фотки ,то что у меня вышло .

STEPMOTOR

Исходник на PCW C Compiler IDE

Просто и работает быстро ! Мож кто еще че нибудь посоветует добавить в прошивку ?

ATLab
STEPMOTOR:

Исходник на PCW C Compiler IDE

Просто и работает быстро ! Мож кто еще че нибудь посоветует добавить в прошивку ?

Так я все же про частоту ШИМ:
правильно ли я понял, что оператор
delay_ms(delay)
формирует задержку в миллисекундах?
Если это так, то, как я и предполагал, никакого ШИМ управления током в обмотках нет, поскольку
последовательность операторов в main loop
loop:
output_a(step[stx]);

delay_ms(shim_delay); // 100 мс
output_a(0);
delay_ms(shim_delay2); // 200 мс

goto loop;
выполняется примерно за 300 мс, т.е. частота ШИМ будет около 3,3 Гц.
Налицо явное непонимание того, что такое ШИМ, и модуляция вообще - частота несущей не должна быть ниже частоты модулирующего сигнала (обычно предполагается, что частота несущей не меньше чем на порядок выше частоты модулирующего сигнала). В данном конкретном случае - частота несущей 3,3 Гц, а частота модулирующего сигнала (частота шагания) может быть, например, 1000 Гц. Нонсенс. Поэтому, фактически никакого ШИМ нет, основной цикл работы программы - в обработчике прерываний.
Теперь по поводу обработки прерываний:
обработка прерываний от сигналов STEP (RB4-RB6) сделана не совсем корректно - для целей данного приложения - поэтому шагание будет производиться дважды на каждый импульс шага (по переднему и заднему фронту).

Выводы: молодец, что своими руками что-то делаешь (а ведь мог бы вместо этого водку пить!), но лучше бы сначала самому во всем разобраться, все проверить и опробовать, а потом уже предлагать народу для использования.

STEPMOTOR

АтLab Вы бы вместо постояннолй критики взяли бы да и сделали что нибудь хорошее для народа, по всем Вашим правилам. Рас Вы такой профессионал.

Насчет двойного шагания брехня, загрузите в эмулятор для наглядности и посмотрите что шаг происходит только после прихода следующего сигнала.

А про ШИМ
Широтно-импульсная модуляция – это способ влияния на управляющее воздействие при дискретном выходе. А у меня как раз это и есть. В режиме простоя вал ШД удерживается импульсами с заданной частотой.

ATLab
STEPMOTOR:

АтLab Вы бы вместо постояннолй критики взяли бы да и сделали что нибудь хорошее для народа, по всем Вашим правилам. Рас Вы такой профессионал.

А народу это надо? Чтобы я его облагодетельствовал?

Насчет двойного шагания брехня, загрузите в эмулятор для наглядности и посмотрите что шаг происходит только после прихода следующего сигнала.

Читайте datasheet.
А если кратко, то интересующие нас прерывания возникают от изменения состояния выводов PORTB4-7.

  1. Предположим, что на входе изначально был 0, его и считали с порта при инициализации (в защелке порта 0).
  2. Пришел импульс STEP вида __/—\__, длительностью, скажем 200 мкс.
  3. По переднему фронту возникает прерывание (на входе 1 а в защелке 0), в обработчике прерываний считываем состояние порта, ликвидируя тем самым разницу между входом и защелкой порта (в защелке порта теперь 1). Здесь же выполняем шаг двигателя, считав очередную комбинацию сигналов из таблицы. Затем возвращаемся из прерывания.
  4. По заднему фронту вновь возникнет прерывание - поскольку на входе 0, а в защелке 1. Снова обработка прерывания и очередной шаг. И т.д.

Чтобы это понять не нужен никакой эмулятор, достаточно знать работк микроконтроллера, тем более что среда, в которой Вы программируете и на которую Вы ссылаетесь, не слишком широко распространена.

А про ШИМ
Широтно-импульсная модуляция – это способ влияния на управляющее воздействие при дискретном выходе. А у меня как раз это и есть. В режиме простоя вал ШД удерживается импульсами с заданной частотой.

Тут вообще без комментариев… %)

P.S. Выкладывая свое творение на всеобщее обозрение, нужно быть готовым к его критике.
“Мож кто еще че нибудь посоветует добавить в прошивку?” - не Ваш ли призыв?
Вот я и посоветовал - разобраться с устройством и работой микроконтроллера, ШИМ, и причесать свое произведение. Чего обижаться-то?

Успехов!

STEPMOTOR

Неспорю насчет ваших знаний по части работы МК ,но вот я вижу что с C вы неработали. Нормальную работу шаг/импульс обеспечивает оператор input().

На этом я закончу диалог ,с Вами можно спорить очень долго !

maxvovk
STEPMOTOR:

Неспорю насчет ваших знаний по части работы МК ,но вот я вижу что с C вы неработали. Нормальную работу шаг/импульс обеспечивает оператор input().

На этом я закончу диалог ,с Вами можно спорить очень долго !

Вам все правильно говорят. Учитесь понимать и принимать критику. А то, что вы сделали, я бы пока не советовал предлагать общественности - сыро, даже мокро 😃.

12 days later
Аэробус

2 STEPMOTOR

Хочу спросить… Вы эксплуатируете данный контроллер? Какие результаты?

GOOD

Уважаемый ALL

Остановился на схеме
mac1.ifrance.com/cnc3ax/index.htm
можно ли ей доверять кто юзал ее?
рабочая ли схема и плата этого сайта?
Какие корявки (если они есть) в ней?
Сам я не силен в схемотехнике.
Как запитывать движки?
Подавать питание на каждый отдельно
(поставить на каждый блок питания 2,4А 36В)
или все запитать через один блок питания?
У меня движки 3А 36В.

С уважением

STEPMOTOR
GOOD:

Уважаемый ALL

Остановился на схеме
mac1.ifrance.com/cnc3ax/index.htm
можно ли ей доверять кто юзал ее?
рабочая ли схема и плата этого сайта?
Какие корявки (если они есть) в ней?
Сам я не силен в схемотехнике.
Как запитывать движки?
Подавать питание на каждый отдельно
(поставить на каждый блок питания 2,4А 36В)
или все запитать через один блок питания?
У меня движки 3А 36В.

С уважением

Я эту плату собирал, с первого раза полностью не заработала, но потом разобрался в чем дело и все закрутилось завертелось ! Правда потом из-за нагрева сильного движков в режиме простоя решил собрать с сайта hobbycnc.hu ,все работало хорошо только один недостаток что в режиме полного шага ! Решил сделать свой ,сейчас на нем в полушаге пашет !

GOOD
STEPMOTOR:

Я эту плату собирал, с первого раза полностью не заработала, но потом разобрался в чем дело и все закрутилось завертелось ! Правда потом из-за нагрева сильного движков в режиме простоя решил собрать с сайта hobbycnc.hu ,все работало хорошо только один недостаток что в режиме полного шага ! Решил сделать свой ,сейчас на нем в полушаге пашет !

Спасибо, буду знать что там козявки,
но если знаете какие, можно намылить
чтоб человек не мучился

STEPMOTOR
GOOD:

Спасибо, буду знать что там козявки,
но если знаете какие, можно намылить
чтоб человек не мучился

Посмотрите внимательно на печатку и схему и все увидете !

GOOD
STEPMOTOR:

Посмотрите внимательно на печатку и схему и все увидете !

А вы садист однако ))
Может проще ткнуть где козявка!

OneStep
GOOD:

А вы садист однако ))
Может проще ткнуть где козявка!

😦
Учитывая что я тоже собираю французский вариант, хотелось бы знать где грабли 😵

Не мучте. Поделитесь с народом.

18 days later
alex_PS

По поводу драйверов на ПИКах…
Вот пара “апликух” с микрочипа, там на доступном английском 😃 всё расписано
Может кому пригодится - у меня руки не доходят 😦

00907a.rar00906a.rar

7 months later
alkg

STEPMOTOR

В печатке и схеме выложеной отличие есть , может выложите схему соответствуюшую печатке

Anton_M

Пауза в мС и правда крутовато. Наверно мкС нужны там.

Наверно можно настроить ШИМ регулирование тока под КОНКРЕТНЫЙ МОТОР и напряжение питания с приемлимой точностью без обратной связи.

Вначале включение до достижения заданого тока, а затем постоянный ШИМ. Нужна осторожная настройка.

Можно сделать на ATmega16 - он побыстрей молотит.

транзисторы я бы заменил на irl24 у них входн емкость 480 пФ а у irlz44n 1700 пФ.