Блок управления шаговым двигателем на PIC16F628A
Блок управления шаговым двигателем на PIC16F628A
Имеется шаговый двигатель и его драйвер http://radiokot.ru/forum/download/file.php?id=54259
Ищу человека способного написать прошивку для управления этим железом на PIC16F628A.
Необходимо вращение в обе стороны с регулировкой скорости двигателя + обработка сигнала с термистора и управлением нагрузкой. Но главное - запустить шаговик.
Ищу человека способного написать прошивку для управления этим железом на PIC16F628A.
Необходимо вращение в обе стороны с регулировкой скорости двигателя + обработка сигнала с термистора и управлением нагрузкой. Но главное - запустить шаговик.
Я рожден при социализме, и я этим горжусь!
- Реклама
Re: Блок управления шаговым двигателем на PIC16F628A
1. Это для работы или хобби? Если для работы, нужно обозначить бюджет и сроки.
2. Необходимо уточнить способ регулировки скорости и задания направления, например, кнопки, переменный резистор, программно с компьютера.
3. Что за термистор, какой с него сигнал.
4. Какой нагрузкой управлять.
Короче, ТЗ надо.
А движок покрутить - вроде и не проблема вовсе.
2. Необходимо уточнить способ регулировки скорости и задания направления, например, кнопки, переменный резистор, программно с компьютера.
3. Что за термистор, какой с него сигнал.
4. Какой нагрузкой управлять.
Короче, ТЗ надо.
А движок покрутить - вроде и не проблема вовсе.
Re: Блок управления шаговым двигателем на PIC16F628A
1. Это исключительно для хобби. Вот начало истории http://radiokot.ru/forum/viewtopic.php?f=3&t=40670 Очень хочется делать печатные платы качественнее, но программировать я не умею
2. Для задания направления можно кнопки "по часовой", "против часовой". Для скорости - переменный резистор. Компьютер здесь не нужен вовсе.
3,4 буду разбираться досконально когда найдётся добрый человек для реализации управления шаговым двигателем.
2. Для задания направления можно кнопки "по часовой", "против часовой". Для скорости - переменный резистор. Компьютер здесь не нужен вовсе.
3,4 буду разбираться досконально когда найдётся добрый человек для реализации управления шаговым двигателем.
А вот для меня проблема, поскольку электротехнического образования не имею.bolek писал(а): А движок покрутить - вроде и не проблема вовсе.
Я рожден при социализме, и я этим горжусь!
Re: Блок управления шаговым двигателем на PIC16F628A
Если есть время - подожди, что-нибудь напишу для кручения ШД.
А микроконтроллер есть чем запрограммировать?
А микроконтроллер есть чем запрограммировать?
Re: Блок управления шаговым двигателем на PIC16F628A
Конечно подожду, без вопросов.
Недавно программатор простенький собрал для PIC16F628Abolek писал(а): А микроконтроллер есть чем запрограммировать?
Я рожден при социализме, и я этим горжусь!
- Реклама
Re: Блок управления шаговым двигателем на PIC16F628A
Держи.
В архиве схема (в pdf), прошивка и картинка с битами конфигурации.
По идее, программатор сам должен прочитать конфигурацию, но если не сможет, проконтролируй, чтобы
1. был задан внутренний генератор - это основное
2. разрешен внешний RESET
3. отключен WDT
Подключение к драйверу: в основном все написано на схеме. Общий схемы на PIC соединить с GND (по твоей картинке, +5В схема на PIC соединить с +5В драйвера.
Названия выходов PIC подписаны несколько иначе, чем на твоей схеме, ориентируйся по номерам выводов.
Вроде все, должно все работать, не паял, конечно, но в протеусе модельку погонял.
Прошивка реализует минимум функций:
- кнопками задается направление вращения
- есть возможность выбрать режим работы ШД - шаг или полушаг.
Генератор сделал внешний, лень было думать над реализацией измерения сопротивления переменного резистора и перевода его в частоту внутри PIC. С другой стороны, тебе будет проще подогнать требуемый диапазон скоростей внешними элементами без изменения прошивки.
Успехов!
В архиве схема (в pdf), прошивка и картинка с битами конфигурации.
По идее, программатор сам должен прочитать конфигурацию, но если не сможет, проконтролируй, чтобы
1. был задан внутренний генератор - это основное
2. разрешен внешний RESET
3. отключен WDT
Подключение к драйверу: в основном все написано на схеме. Общий схемы на PIC соединить с GND (по твоей картинке, +5В схема на PIC соединить с +5В драйвера.
Названия выходов PIC подписаны несколько иначе, чем на твоей схеме, ориентируйся по номерам выводов.
Вроде все, должно все работать, не паял, конечно, но в протеусе модельку погонял.
Прошивка реализует минимум функций:
- кнопками задается направление вращения
- есть возможность выбрать режим работы ШД - шаг или полушаг.
Генератор сделал внешний, лень было думать над реализацией измерения сопротивления переменного резистора и перевода его в частоту внутри PIC. С другой стороны, тебе будет проще подогнать требуемый диапазон скоростей внешними элементами без изменения прошивки.
Успехов!
- Вложения
-
- Bistep.zip
- Схема, прошивка, конфигурация
- (102.33 КБ) 1408 скачиваний
Re: Блок управления шаговым двигателем на PIC16F628A
Ух ты! Спасибо bolek! Как только появится возможность собрать и протестировать - сразу отпишусь 
Я рожден при социализме, и я этим горжусь!
Re: Блок управления шаговым двигателем на PIC16F628A
Ну вот и протестировал.
Двигатель крутится, но очень медленно. Тогда я поставил конденсатор генератора С1 = 0,1мкф. Двигатель стал вращаться быстрее, но появился какой-то писк. Драйвер двигателя греется не хило.
Двигатель крутится, но очень медленно. Тогда я поставил конденсатор генератора С1 = 0,1мкф. Двигатель стал вращаться быстрее, но появился какой-то писк. Драйвер двигателя греется не хило.
Я рожден при социализме, и я этим горжусь!
Re: Блок управления шаговым двигателем на PIC16F628A
Очень медленно - это сколько?
Дело в том, что ШД и не предназначены для быстрого вращения, их дело - точное позиционирование без применения обратной связи по положению.
Для прикидки можно считать, что обычный ШД может шагать со скоростью 1000 полных шагов (или 2000 полушагов) в секунду.
Если при этом ШД делает 200 шагов на один полный оборот (типичное значение), то выходит, что он будет крутиться со скоростью 5 оборотов в секунду (300 в минуту) - примерно в 10 раз медленнее чем типичные двигатели переменного тока.
Поищи характеристики своего ШД, по осциллографу посмотри частоту шагов и прикинь, все ли работает как надо.
Писк (если двигатель крутится) - это движок работает как громкоговоритель, нормально.
Если при писке не крутится, или легко останавливается пальцами - частота шагов слишком велика.
Дело в том, что ШД и не предназначены для быстрого вращения, их дело - точное позиционирование без применения обратной связи по положению.
Для прикидки можно считать, что обычный ШД может шагать со скоростью 1000 полных шагов (или 2000 полушагов) в секунду.
Если при этом ШД делает 200 шагов на один полный оборот (типичное значение), то выходит, что он будет крутиться со скоростью 5 оборотов в секунду (300 в минуту) - примерно в 10 раз медленнее чем типичные двигатели переменного тока.
Поищи характеристики своего ШД, по осциллографу посмотри частоту шагов и прикинь, все ли работает как надо.
Писк (если двигатель крутится) - это движок работает как громкоговоритель, нормально.
Если при писке не крутится, или легко останавливается пальцами - частота шагов слишком велика.
Re: Блок управления шаговым двигателем на PIC16F628A
лист бумаги между валами будет прокручивать минут пятнадцатьbolek писал(а):Очень медленно - это сколько?
А как он тогда в принтере работал на прокручивание валов?bolek писал(а): Дело в том, что ШД и не предназначены для быстрого вращения, их дело - точное позиционирование без применения обратной связи по положению.
Пищит сам по себе при НЕ нажатых кнопках, если конденсатор генератора поставить 0,1мкф.bolek писал(а): Если при писке не крутится, или легко останавливается пальцами - частота шагов слишком велика.
Двигатель M49SP-1Нашёл на форуме тему http://www.radiokot.ru/forum/viewtopic. ... 4fdec30655bolek писал(а): Поищи характеристики своего ШД, по осциллографу посмотри частоту шагов и прикинь, все ли работает как надо.
и там ссыль на даташит в котором всё по-китайски http://www.radiokot.ru/forum/download/file.php?id=17517
Я рожден при социализме, и я этим горжусь!
Re: Блок управления шаговым двигателем на PIC16F628A
Вот это неправильно, когда кнопки не нажаты, двигатель находится в состоянии удержания и пишать не должен. Шипение или писк означают, что драйвер ШД работает неустойчиво.Соник писал(а):Пищит сам по себе при НЕ нажатых кнопках, если конденсатор генератора поставить 0,1мкф.
Драйвер точно от этого ШД?
А если драйвер отключить от МК, при этом все входы драйвера (ENABLE и PHASE) посадить на общий провод, тоже свистит/шипит?
Какова длина проводов, соединяющих МК и драйвер?
Не фонтан, может у него еще и обмотки с большой индуктивностью.Двигатель M49SP-1
Re: Блок управления шаговым двигателем на PIC16F628A
Да, 100%bolek писал(а): Драйвер точно от этого ШД?
Шлейф сантиметров 30. Знаю что длинный. Я его к плате подпаивал, с запасом брал.bolek писал(а): Какова длина проводов, соединяющих МК и драйвер?
Попробую, отпишусь. А можно как-то скорость вращения увеличить?bolek писал(а): А если драйвер отключить от МК, при этом все входы драйвера (ENABLE и PHASE) посадить на общий провод, тоже свистит/шипит?
Я рожден при социализме, и я этим горжусь!
Re: Блок управления шаговым двигателем на PIC16F628A
Скорость шагания - это характеристика двигателя, зависит от многих параметров.
Самый простой способ - поднять напряжение питания силовой части драйвера, правда в разы ее не увеличить.
Например, ШД от 5" дисковода никак не будет шагать быстрее 200-300 (не помню точно, давно дело было) шагов в секунду, и никакое разумное поднятие напряжения питание не помогает - индуктивность обмоток слишком велика.
С другой стороны, если движок и драйвер родные и стояли на протяжке бумаги, не свистели/шипели, то ШД должен как минимум крутиться с той же скоростью и без свиста. Что то здесь не так.
Скорость шагания в схеме полностью задается емкостью конденсатора во внешнем генераторе и сопротивлением переменного резистора (там же).
Самый простой способ - поднять напряжение питания силовой части драйвера, правда в разы ее не увеличить.
Например, ШД от 5" дисковода никак не будет шагать быстрее 200-300 (не помню точно, давно дело было) шагов в секунду, и никакое разумное поднятие напряжения питание не помогает - индуктивность обмоток слишком велика.
С другой стороны, если движок и драйвер родные и стояли на протяжке бумаги, не свистели/шипели, то ШД должен как минимум крутиться с той же скоростью и без свиста. Что то здесь не так.
Скорость шагания в схеме полностью задается емкостью конденсатора во внешнем генераторе и сопротивлением переменного резистора (там же).
Re: Блок управления шаговым двигателем на PIC16F628A
Извиняюсь, я разобрался. Оказалось что переменный резистор изношен, ползунок слабо контактирует с резистивной дорожкой.bolek писал(а): С другой стороны, если движок и драйвер родные и стояли на протяжке бумаги, не свистели/шипели, то ШД должен как минимум крутиться с той же скоростью и без свиста. Что то здесь не так.
Скорость шагания в схеме полностью задается емкостью конденсатора во внешнем генераторе и сопротивлением переменного резистора (там же).
Вся конструкция питается от своего родного блока питания +5 и +24В.
Тоже шипит и посвистывает с разной частотой. Думаете питание нестабильно?bolek писал(а): А если драйвер отключить от МК, при этом все входы драйвера (ENABLE и PHASE) посадить на общий провод, тоже свистит/шипит?
Ещё минус конструкции: драйвер и сам двигатель через пару минут работы нагреваются так, что палец обжигает.
Я рожден при социализме, и я этим горжусь!
Re: Блок управления шаговым двигателем на PIC16F628A
Вот это и странно: принтеры обычно сделаны хорошо, и свиста быть не должно.Соник писал(а):...Тоже шипит и посвистывает с разной частотой. Думаете питание нестабильно?
Ещё минус конструкции: драйвер и сам двигатель через пару минут работы нагреваются так, что палец обжигает.
Что изменилось в конструкции драйвера, соединительных проводах, что он засвистел?
Вообще, драйвер как сделан? Просто вырезан кусок платы принтера? Провода к двигателю какой длины и как идут?
Греются - это понятно, так и должно быть. Двигатель отдает тепло через железо станины, к которой прикреплен. На драйвер, при желании можно прикрутить радиатор с вентилятором от старой видюшки.
Чтобы избежать перегрева в принтерах во время простоя обычно снижают ток в обмотках ШД.
В данном случае можно перейти на другой режим работы ШД, но при этом снизится момент - двигатель будет легче остановить.
Я бы на этом пока не заострял внимания, сначала нужно добиться вращения с требуемой скоростью (если это возможно), потом уже думать над снижением температуры. К тому же при работе на максимальной скорости ШД и драйвер будут греться меньше.
Re: Блок управления шаговым двигателем на PIC16F628A
Драйвер с обвязкой установлен на той же плате что и импульсный БП принтера. От платы шёл жгут проводов на плату процессора (4 провода драйвера, питание, оптический датчик, управление тиристором печки). Провода к двигателю идут прямо от драйвера, длина минимальна. Около 80 мм.bolek писал(а): Что изменилось в конструкции драйвера, соединительных проводах, что он засвистел?
Вообще, драйвер как сделан? Просто вырезан кусок платы принтера? Провода к двигателю какой длины и как идут?
Что изменилось? Даже не знаю. Шлейф я подпаял к драйверу, длиной с полметра. Лишние нагрузки поотключал: процессор, ворох датчиков, вентилятор. Может поэтому и ВЧ-пульсации прут по питанию, или самовозбуд драйвера (а бывает такое?)?
Греются это слабо сказано. Они горячие!bolek писал(а): Греются - это понятно, так и должно быть. Двигатель отдает тепло через железо станины, к которой прикреплен. На драйвер, при желании можно прикрутить радиатор с вентилятором от старой видюшки.
С регулировкой вращения проблем нет. Подберу RC в ходе экспериментов.bolek писал(а):сначала нужно добиться вращения с требуемой скоростью (если это возможно), потом уже думать над снижением температуры. К тому же при работе на максимальной скорости ШД и драйвер будут греться меньше.
Похоже можно переходить ко второй "фазе". bolek, а не затруднит ли Вас приладить к МК управление печкой с плавным её пуском (лампа накаливания) и отключение её при превышении допустимой температуры с возможностью регулировки (датчик температуры - терморезистор)?
Я рожден при социализме, и я этим горжусь!
Re: Блок управления шаговым двигателем на PIC16F628A
Такие вещи заочно сложно диагностировать. Надо осциллографом смотреть.Соник писал(а):...поотключал: процессор, ворох датчиков, вентилятор. Может поэтому и ВЧ-пульсации прут по питанию, или самовозбуд драйвера (а бывает такое?)?
ВЧ пульсации по питанию маловероятны, если под горячую руку не отрезаны конденсаторы на питании.
Драйвер не склонен к возбуду, а вот помехи может ловить: там стоит ШИМ на регулировке тока, чего на измерительных резисторах и проводах насобирает, то и нарегулирует.
Для реализации управления драйвером ШД я просто полистал даташит на A2918 и подправил старую разработку (которую тоже выкладывал в интернет), поэтому это не заняло у меня много времени.Похоже можно переходить ко второй "фазе". bolek, а не затруднит ли Вас приладить к МК управление печкой с плавным её пуском (лампа накаливания) и отключение её при превышении допустимой температуры с возможностью регулировки (датчик температуры - терморезистор)?
А вот реализация остального уже потребует времени, которое мне есть куда потратить
Надо ведь разобраться с задачками, придумать, как это реализовать...
Да и без реального железа это не отладить.
Так что придется делать самостоятельно, или найдется еще кто-то, кто поможет.
Re: Блок управления шаговым двигателем на PIC16F628A
Спасибо, bolek 
Я рожден при социализме, и я этим горжусь!
Re: Блок управления шаговым двигателем на PIC16F628A
Ну как, дело движется, или застряло?
Re: Блок управления шаговым двигателем на PIC16F628A
Продвижение было существенное, теперь всё застопорилось. Я всё рассказывал в этой теме http://radiokot.ru/forum/viewtopic.php?f=3&t=40670
Я рожден при социализме, и я этим горжусь!


