Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Шаговый мотор (микрошаг) + атмега

Непрочитано 05.07.2013, 11:35  
miwutka
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: Шаговый мотор (микрошаг) + атмега

Возник вопрос. Когда выбираю следующий адрес происходит перепрыгивание на след. шаг. На коментарий не смотрите.
PHP код:
         case 27:                                           
                 A=0;   B=0;   OCR1A=80;    OCR1B=255;       //25%
                 break;  
         case 28:                                           
                 A=0;   B=0;   OCR1A=64;    OCR1B=255;       //25%
                 break;
         case 29:                                           
                 A=0;   B=0;   OCR1A=48;    OCR1B=255;       //25%
                 break;
         case 30:                                           
                 A=0;   B=0;   OCR1A=32;    OCR1B=255;       //25%
                 break;
         case 31:                                           
                 A=0;   B=0;   OCR1A=16;    OCR1B=255;       //25%
                 break;
         case 32:                                           
                 A=0;   B=0;   OCR1A=0;    OCR1B=255;       //25%
                 break;
                 
         
         
         
         case 33:                                           
                 A=0;   B=1;   OCR1A=0;    OCR1B=0;       //25%
                 break;
         case 34:                                           
                 A=0;   B=1;   OCR1A=16;    OCR1B=0;       //25%
                 break;
         case 35:                                           
                 A=0;   B=1;   OCR1A=32;    OCR1B=0;       //25%
                 break;
         case 36:                                           
                 A=0;   B=1;   OCR1A=48;    OCR1B=0;       //25%
                 break;
         case 37:                                           
                 A=0;   B=1;   OCR1A=64;    OCR1B=0;       //25%
                 break;
         case 38:                                           
                 A=0;   B=1;   OCR1A=80;    OCR1B=0;       //25%
                 break;
         case 39:                                           
                 A=0;   B=1;   OCR1A=96;    OCR1B=0;       //25%
                 break;
         case 40:                                           
                 A=0;   B=1;   OCR1A=112;    OCR1B=0;       //25%
                 break;
         case 41:                                           
                 A=0;   B=1;   OCR1A=128;    OCR1B=0;       //25%
                 break;
         case 42:                                           
                 A=0;   B=1;   OCR1A=144;    OCR1B=0;       //25%
                 break;
         case 43:                                           
                 A=0;   B=1;   OCR1A=160;    OCR1B=0;       //25%
                 break;
         case 44:                                           
                 A=0;   B=1;   OCR1A=176;    OCR1B=0;       //25%
                 break;
         case 45:                                           
                 A=0;   B=1;   OCR1A=192;    OCR1B=0;       //25%
                 break;
         case 46:                                           
                 A=0;   B=1;   OCR1A=208;    OCR1B=0;       //25%
                 break;
         case 47:                                           
                 A=0;   B=1;   OCR1A=224;    OCR1B=0;       //25%
                 break;
         case 48:                                           
                 A=0;   B=1;   OCR1A=240;    OCR1B=0;       //25%
                 break; 
         case 49:
                 A=0;   B=1;   OCR1A=255;    OCR1B=0;     //75%
                 break;
                 
                 
                 
                 
         case 50:
                 A=0;   B=1;   OCR1A=255;    OCR1B=255;     //75%
                 break;
         case 51:
                 A=0;   B=1;   OCR1A=0;    OCR1B=255;     //75%
                 break;
         case 52:                                           
                 A=1;   B=0;   OCR1A=255;    OCR1B=0;       //25%
                 break; 
на 33 шаге происходит смена адреса. Как сделать плавный поворот правильней? Пока написал как в коде, но поворот происходит очень грубо. Это же, когда оба ШИМа 0% то обмотки ШД не запитаны током. А когда я выбираю адрес и начинаю увеличивать один ШИМ то соответственно происходит неравномерный поворот. Чтобы равномерно было надо же обе обмотки запитывать. Вот как это решить?
Реклама:
miwutka вне форума  
Непрочитано 05.07.2013, 12:46  
vspvsp
Вид на жительство
 
Аватар для vspvsp
 
Регистрация: 30.10.2007
Адрес: Ростов-на-Дону
Сообщений: 281
Сказал спасибо: 19
Сказали Спасибо 39 раз(а) в 33 сообщении(ях)
vspvsp на пути к лучшему
По умолчанию Re: Шаговый мотор (микрошаг) + атмега

Я же вам писал, что при смене адреса выходы ШИМ, подключенные к текущей паре ключей "меняются местами", первый шим занимает место второго, а второй подключается к следующему выводу!

То есть в тот момент, когда у вас ШИМ А на 0, а ШИМ Б на 100% и вы переключаете адрес (и смените обмотки ШД - шаг 31 на 32) нужно "поменять местами" уставки ШИМ, первому ШИМу дать 100%, а второму, который теперь на следующей обмотке - 0% и далее по синусу. И так до бесконечности!

Вообще-то ваши значения в коде неверны и далее. Нужно примерно так:

case 1:
A=0; B=0; OCR1A=0; OCR1B=255; //25% - начало
break;
case 28:
A=0; B=0; OCR1A=32; OCR1B=255; //25%

где-то в середине A=0; B=0; OCR1A=255; OCR1B=255 по 100% обеих сторон (по формуле не 100% но потом поправите)

case 31:
A=0; B=0; OCR1A=16; OCR1B=255; //25%
break;
case 32:
A=0; B=0; OCR1A=0; OCR1B=255; //25%
break;


--вот момент переключения, меняем адрес на 1 и уровни ШИМ (двигатель при этом не провернётся, вернее следовало бы сразу добавить второй ШИМ на следующий шаг)

case 33:
A=0; B=1; OCR1A=255; OCR1B=0; //25% --- ШИМ Б =16
break;
case 34:
A=0; B=1; OCR1A=255; OCR1B=16; //25% -отсюда ШИМ Б - нарастает!!!

где-то в середине A=0; B=0; OCR1A=255; OCR1B=255 по 100% обеих сторон (по формуле не 100% но потом поправите)


---- далее ШИМ А уменьшается до 0

case 47:
A=0; B=1; OCR1A=255; OCR1B=100; //25%
break;
case 48:
A=0; B=1; OCR1A=128; OCR1B=100; //25%
break;
case 49:
A=0; B=1; OCR1A=0; OCR1B=100; //75%

--------- следующий адрес ------- опять меняем уровни ШИМ.


И где обещанная формула?!


Кстати там в разделе "Предложения по работе" нужен нестандартный контроллер ШД!

Последний раз редактировалось vspvsp; 05.07.2013 в 12:57.
vspvsp вне форума  
Непрочитано 05.07.2013, 12:54  
miwutka
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: Шаговый мотор (микрошаг) + атмега

Сообщение от vspvsp Посмотреть сообщение
Кстати там в разделе "Предложения по работе" нужен нестандартный контроллер ШД!
Понял, гляну вдруг осилю...
Сейчас займусь переменой ШИМов...
miwutka вне форума  
Непрочитано 05.07.2013, 12:58  
vspvsp
Вид на жительство
 
Аватар для vspvsp
 
Регистрация: 30.10.2007
Адрес: Ростов-на-Дону
Сообщений: 281
Сказал спасибо: 19
Сказали Спасибо 39 раз(а) в 33 сообщении(ях)
vspvsp на пути к лучшему
По умолчанию Re: Шаговый мотор (микрошаг) + атмега

Я же вам писал, что при смене адреса выходы ШИМ, подключенные к текущей паре ключей "меняются местами", первый шим занимает место второго, а второй подключается к следующему выводу!

То есть в тот момент, когда у вас ШИМ А на 0, а ШИМ Б на 100% и вы переключаете адрес (и смените обмотки ШД - шаг 31 на 32) нужно "поменять местами" уставки ШИМ, первому ШИМу дать 100%, а второму, который теперь на следующей обмотке - 0% и далее по синусу. И так до бесконечности!


Кстати там в разделе "Предложения по работе" нужен нестандартный контроллер ШД!
vspvsp вне форума  
Непрочитано 05.07.2013, 13:00  
vspvsp
Вид на жительство
 
Аватар для vspvsp
 
Регистрация: 30.10.2007
Адрес: Ростов-на-Дону
Сообщений: 281
Сказал спасибо: 19
Сказали Спасибо 39 раз(а) в 33 сообщении(ях)
vspvsp на пути к лучшему
По умолчанию Re: Шаговый мотор (микрошаг) + атмега

Какие-то глюки форума, при правке вставилось ещё пара сообщений и не могу удалить сообщение, кнопка "удалить" не работает!
vspvsp вне форума  
Непрочитано 05.07.2013, 13:49  
miwutka
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: Шаговый мотор (микрошаг) + атмега

Сообщение от vspvsp Посмотреть сообщение
И где обещанная формула?!
формула будет когда все шаги нормально будут выполняться ,а пока прошивка у меня недоработана... Сейчас попробую как вы написали сделать, но что только не делал всеравно мотор шага... Проверю и отпишусь.....
miwutka вне форума  
Непрочитано 05.07.2013, 13:53  
miwutka
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: Шаговый мотор (микрошаг) + атмега

PHP код:
 case 31:                                           
                 A=0;   B=0;   OCR1A=16;    OCR1B=255;       //25%
                 break;
         case 32:                                           
                 A=0;   B=0;   OCR1A=0;    OCR1B=255;       //25%
                 break;
                 
         
         
         
         case 33:                                           
                 A=0;   B=1;   OCR1A=255;    OCR1B=0;       //25%
                 break;
         case 34:                                           
                 A=0;   B=1;   OCR1A=255;    OCR1B=32;       //25%
                 break;
         case 35:                                           
                 A=0;   B=1;   OCR1A=255;    OCR1B=64;       //25%
                 break;
         case 36:                                           
                 A=0;   B=1;   OCR1A=255;    OCR1B=96;       //25%
                 break;
         case 37:                                           
                 A=0;   B=1;   OCR1A=255;    OCR1B=128;       //25%
                 break;
         case 38:                                           
                 A=0;   B=1;   OCR1A=255;    OCR1B=160;       //25%
                 break;
         case 39:                                           
                 A=0;   B=1;   OCR1A=255;    OCR1B=192;       //25%
                 break;
         case 40:                                           
                 A=0;   B=1;   OCR1A=255;    OCR1B=224;       //25%
                 break;
         case 41:                                           
                 A=0;   B=1;   OCR1A=255;    OCR1B=255;       //25%
                 break; 
вот так написал и всёравно при переходе с 32 на 33 мотор делает шаг, а дальше по микрошагу идет нормально.... Может я еще както не так подключить мог обмотки? (Но ведь полушаг работает нормально....хм....)

Последний раз редактировалось miwutka; 05.07.2013 в 14:07.
miwutka вне форума  
Непрочитано 05.07.2013, 14:16  
vspvsp
Вид на жительство
 
Аватар для vspvsp
 
Регистрация: 30.10.2007
Адрес: Ростов-на-Дону
Сообщений: 281
Сказал спасибо: 19
Сказали Спасибо 39 раз(а) в 33 сообщении(ях)
vspvsp на пути к лучшему
По умолчанию Re: Шаговый мотор (микрошаг) + атмега

Вот вам табличка в Экселе, забейте и попробуйте.

Адреса как назначены? А это A0, B это A1 дешифратора? Тогда у вас адрес скачет аж на 2 сразу и получается бардак в обмотках. Проверяйте ваше двоичное исчисление.

Адреса идут так:

A0 A1

00
10
01
11
00 и так далее
Вложения:
Тип файла: zip ШД1.zip (10.0 Кб, 58 просмотров)

Последний раз редактировалось vspvsp; 05.07.2013 в 14:21.
vspvsp вне форума  
Непрочитано 05.07.2013, 14:22  
miwutka
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: Шаговый мотор (микрошаг) + атмега

по таблице у вас на каждый шаг ШИМ1 увеличивается, а ШИМ2 уменьшаеться. У меня на каждый шаг ШИМ1 держиться 100%, а ШИМ2 увеличивается. У меня значит в этом ошибка?
miwutka вне форума  
Непрочитано 05.07.2013, 14:31  
miwutka
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: Шаговый мотор (микрошаг) + атмега

А это A0, B это A1 дешифратора - так у меня. Если меняю наоборот в программе, то мотор идет в обратном направлении, при переходе всёравно перескок Сейчас попробую по вашей таблице сделать.
miwutka вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Атмега 32а, не известно под какую частоту прошита. sae74 Микроконтроллеры, АЦП, память и т.д 1 10.04.2010 19:33
Шаговый двигатель (РХХ) Bruse82 Производственное оборудование 2 07.05.2008 20:54


Часовой пояс GMT +4, время: 15:58.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.