Страница 4 из 5

Re: Подключение шагового двигателя к микроконтроллерам AVR

Добавлено: 26 янв 2018, 21:23
demogorgon
AntonChip писал(а): 26 янв 2018, 20:57 Архив не открывается, пишет неизвестный формат или ошибка
а если так?

Re: Подключение шагового двигателя к микроконтроллерам AVR

Добавлено: 05 фев 2018, 15:41
demogorgon
demogorgon писал(а): 26 янв 2018, 21:23
AntonChip писал(а): 26 янв 2018, 20:57 Архив не открывается, пишет неизвестный формат или ошибка
а если так?
Здравствуйте. При количестве импульсов на оборот двигателя равном 48,если задать более 5(а нужно 9) оборотов, двигатель начинает вращаться постоянно и не останавливается.Насколько я понимаю, проблема в переполнении счетного регистра таймера Т0. Если у Вас есть время подскажите, пожалуйста, возможно ли устранить эту проблему используя Т0 (как правильно переписать по совпадению или еще что то). Или же как правильно использовать Т1(16 битный) для этих нужд, не могу разобраться как правильно написать и переподключить.((((((

Re: Подключение шагового двигателя к микроконтроллерам AVR

Добавлено: 13 фев 2018, 22:22
manojsoorya
Пожалуйста, кто-нибудь может помочь мне сделать это? Мне нужно просто так
Нажмите и удерживайте кнопку: Работа двигателя (для обоих направлений)
Unpress: остановка двигателя (для обоих направлений)
Скорость: от 0 до 200 об / мин на той же схеме. Это очень срочно. Пожалуйста, помогите мне.....

Re: Подключение шагового двигателя к микроконтроллерам AVR

Добавлено: 13 фев 2018, 23:34
manojsoorya
Its working....................waw........waw....

Thank you so much Sir. One more doubg.. How to speedup the Engine bit high?

Re: Подключение шагового двигателя к микроконтроллерам AVR

Добавлено: 22 апр 2018, 10:39
Rus47
Здравствуйте!Помогите пожалуйста!Есть Тини85 нужна под неё программа включение двух портов.Которые включаются по очереди, с интервалом ровно через минуту на 2-3 сек.

Re: Подключение шагового двигателя к микроконтроллерам AVR

Добавлено: 25 апр 2018, 18:11
Rus47
Чёт не кто не отвечает.:( Есть у меня вторичные часы.Хотел бы подключить к Attiny85.

Re: Подключение шагового двигателя к микроконтроллерам AVR

Добавлено: 05 окт 2018, 13:12
GenukUA
Вижу тема заброшена но... Как увеличить максимальные обороты шаговика на Tiny13a c поста #13? Работает на 9.6М, деления на 8 нет. Но максимальная скорость двигателя при задержке 10, дальше пропуски. Тот же двигатель на таких же драйверах но на Tiny2313a с другой программой работает на намного большей скорости. Т.е дело в программе? Или от контроллера тоже зависит? Спасибо.
Р.С. Программа на ассемблере, ее я не осилю переделать никак.

Re: Подключение шагового двигателя к микроконтроллерам AVR

Добавлено: 26 ноя 2019, 10:52
jes
Не подскажете, как сделать, чтобы программа - могла выдавать пачки шагов-импульсов, регулируемые внешним переменным резистором?
Скажем, от 1 до 200, а при задании более 200 - игнорировала режим пачек, и переходила в режим беспрерывного вращения.
Наряду с регулировкой скорости резистором, и управления кнопками направлением движения.
Теоретически надо добавить опрос-преобразование еще одного канала АЦП (с дополнительным переменным резистором), и ввести дополнительную переменную-счетчик для подсчета шагов.

Почему именно такое требование, есть желание попробовать собрать диспенсер для паяльной пасты (флюса).
В принципе, программа с управлением движком от кнопок (в изначально остановленном состоянии) - полностью подходит для этой цели.
Но, хотелось бы задавать именно длительность отработки нажатия кнопок - чтобы при необходимости выставлять дозу выдавливаемой пасты одним нажатием на кнопку, а не держать постоянно кнопку нажатой.

Показалось, что прикрутить еще один переменный резистор - гораздо проще и удобней в работе, чем заморачиваться со всяким программированием кнопок, подключением дисплея и прочим.

Re: Подключение шагового двигателя к микроконтроллерам AVR

Добавлено: 29 ноя 2019, 17:06
AntonChip
Здравствуйте Jes. Немного изменил код выложенный в этой ветке, добавил еще один потенциометр на вход ADC1. Проверяйте, исходник и Протеус во вложении

Re: Подключение шагового двигателя к микроконтроллерам AVR

Добавлено: 30 ноя 2019, 16:46
jes
Проверил прошивку в реальности, она работает, правда, есть кое-какие нюансы.
Желательно сделать какую нибудь защиту от дребезга, а то срабатывает и при нажатии на кнопку, и при ее отжатии тоже.
Между нажатиями кнопок - наверное, лучше поставить минимальную задержку, типа 0.2 секунды.
Кнопки - все таки должны работать две, одна на вращение в одну сторону, другая - в другую сторону.
И потом, наверное, нужно убрать условие превышения шагов более 200 - крутится постоянно, показалось, это - не комильфо.

Конечно, надо пробовать с механикой, я еще ее не сделал, там несложно, просто заморочено.
То, что при не нажатой кнопке снимается питание со всех обмоток шаговика - это хорошо, нет постоянного разогрева его обмоток, да и берет меньше мощности в состоянии покоя.
У меня под рукой не было шаговика-биполярника, на макете поставил униполярник с ULN2003A.

P.S.
Вам спасибо огромное за программу, она натолкнула на разные мысли по реализации диспенсера.

Re: Подключение шагового двигателя к микроконтроллерам AVR

Добавлено: 30 ноя 2019, 16:59
jes
Сейчас воюю с AVR Studio v4.18 build 684 и с WinAVR - если выбрать режим компиляции с отладкой, не создает объектный файл для передачи параметров в отладчик студии.
Уж и так и эдак, подумываю может перейти в CodeVision, но, наверное - там вылезут другие грабли, да и формат там некоторых функций - отличается от студийных, например, тех же прерываний.
Самое интересное, при работе с ассемблером - все нормально, а когда WinAVR компилирует СИ-шный файл - не создает нужного объектного файла для отладчика студии...
Вылезает вот такое сообщение -
"Coordinator: None of the available object file readers can read the specified object file. Please check the format of the object file.
Error loading object file C:\WinAVR-20060421\motor\default\motor.elf"

А переставлять с нуля операционку, и все равно потом танцевать с бубном - уж очень не хочется...

Re: Подключение шагового двигателя к микроконтроллерам AVR

Добавлено: 30 ноя 2019, 22:25
AntonChip
Я для таких простых программ использую AVRstudio 4.19 и AVR toolchain 3.3.0, все устраивает

Re: Подключение шагового двигателя к микроконтроллерам AVR

Добавлено: 01 дек 2019, 09:25
jes
Решил проблему тем, что установил AVRstudio 4.12 в связке с WinAVR-20060421.
Тоже была идея поставить AVR toolchain, но, пока не стал, как говорится, ...раз оно работает - значит, чинить не нужно...
Дальше будет видно.

Re: Подключение шагового двигателя к микроконтроллерам AVR

Добавлено: 02 дек 2019, 03:23
jes
AntonChip, уточните, - в последней прошивке АЦП опрашивается именно в цикле прерывания по INT0.
А можно его опрашивать в основном цикле (как в прошивке с 1 поста - bipolar_step_motor_2.rar), только меняя каналы по очереди, или не получится?
По идее, там надо друг за другом поставить код запуска АЦП, но, с различным номером канала, добавив между опросами небольшую задержку.
Почему так - необходимо, чтобы движок отрабатывал нажатия на обе кнопки, с разницей в направлении вращения, (как в вышеупомянутой прошивке).

И еще, где, по вашему лучше поставить задержку (и какой длительности), чтобы нажатие на кнопку - вызывало только один запуск шагового движка?
Или надо обязательно организовывать проверку на повторность нажатия кнопки?

Re: Подключение шагового двигателя к микроконтроллерам AVR

Добавлено: 02 дек 2019, 08:09
AntonChip
В последней программе каналы АЦП поочередно опрашиваются в главном цикле
Пока двигатель не пройдет все шаги повторное нажатие кнопки не обрабатывается
Вы хотите использовать две кнопки - вперед и назад?

Re: Подключение шагового двигателя к микроконтроллерам AVR

Добавлено: 02 дек 2019, 15:11
jes
Да, необходимо в программе использовать 2 кнопки, как и в прошивке 1 поста для изначально остановленного двигателя.
Если шагов много, тогда выполнение защиты от дребезга - выполнится автоматически, а если шагов всего пара-тройка (в частном случае - один), тогда вряд ли.
Видимо, между нажатиями кнопок, обязательна нужна задержка 0.2 - 0.3 секунды, или около того.

Re: Подключение шагового двигателя к микроконтроллерам AVR

Добавлено: 02 дек 2019, 17:10
AntonChip
много это сколько?

Re: Подключение шагового двигателя к микроконтроллерам AVR

Добавлено: 02 дек 2019, 18:24
jes
Вы имеете ввиду число шагов, ну, например, 50, или более.
Но, мое мнение более простое и радикальное - задержка для нажатий кнопок должна быть независимо от числа шагов, мне кажется так будет правильно.
То есть, отрабатывается 1-е нажатие кнопки, а все, что попало в следующие 0.3 - 0.5 секунды - игнорируется в любом случае.
Затем, опять ожидается нажатие какой либо кнопки, и так далее.
Теоретически можно будет ставить кнопки, наверное, с почти любым временем дребезга, если так можно сказать, хотя, обычно, даже в наиболее худшем варианте он не превышает 0.1 секунды.
Других кнопок я просто никогда не встречал.

Re: Подключение шагового двигателя к микроконтроллерам AVR

Добавлено: 03 дек 2019, 11:05
AntonChip
Заметил одну особенность, при повторном нажатии кнопки двигатель немного поворачивается в обратную сторону потом вращается нормально, чтобы такого не было надо запоминать последнее положение ротора и в последующем начинать движение с этого места

Re: Подключение шагового двигателя к микроконтроллерам AVR

Добавлено: 03 дек 2019, 17:18
jes
А немного - это насколько он поворачивается назад?
Мне кажется, можно просто сделать таблицу не шагов, а полушагов.
Там будет массив из 8 байт на каждое направление вращение, вот так:
unsigned char cw_dir[8]=
{
0b00000001,
0b00000011,
0b00000010,
0b00000110,
0b00000100,
0b00001100,
0b00001000,
0b00001001
};
Влияние возврата назад - будет меньше, да и движок будет крутиться плавнее.
Только надо обязательно в паузе снимать напряжение с обмоток (то есть обнулять порт), иначе увеличится потребление тока, и нагрев обмоток.
А можно пару бит задействовать для контроля вращения, неважно в какую сторону.
Один бит - выводит лог.1, а другой - лог.0, это позволит применять различные драйверы для шаговика, которые активируются нулем, или единицей.
Нет активного уровня - драйвер не подает ток в обмотки.