Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
05.07.2013, 14:36
|
|
Вид на жительство
Регистрация: 30.10.2007
Адрес: Ростов-на-Дону
Сообщений: 285
Сказал спасибо: 23
Сказали Спасибо 39 раз(а) в 33 сообщении(ях)
|
Re: Шаговый мотор (микрошаг) + атмега
Не 100% потому, что считается суммарный магнитный поток от двух катушек! Я эе делал оговорку как оно "в идеале" и как "на попробовать"!
Да, у вас адреса перепутаны. Для смены направления вращения меняется направление смены уровней ШИМ и адресов (3,2,1,0,3 ...) и вообще там 4 варианта туда-сюда смотря как обмотки одели!
|
|
|
|
05.07.2013, 14:41
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Шаговый мотор (микрошаг) + атмега
PHP код:
|
case 0:
A=0; B=0; OCR1A=255; OCR1B=0; //25%
break;
case 1:
A=0; B=0; OCR1A=250; OCR1B=49; //25%
break;
case 2:
A=0; B=0; OCR1A=235; OCR1B=97; //25%
break;
case 3:
A=0; B=0; OCR1A=212; OCR1B=141; //25%
break;
case 4:
A=0; B=0; OCR1A=180; OCR1B=180; //25%
break;
case 5:
A=0; B=0; OCR1A=141; OCR1B=212; //25%
break;
case 6:
A=0; B=0; OCR1A=97; OCR1B=235; //25%
break;
case 7:
A=0; B=0; OCR1A=49; OCR1B=250; //25%
break;
case 8:
A=0; B=1; OCR1A=0; OCR1B=255; //25%
break;
case 9:
A=0; B=1; OCR1A=250; OCR1B=49; //25%
break;
case 10:
A=0; B=1; OCR1A=235; OCR1B=97; //25%
break;
|
сделал по вашей таблице - всеравно при переходе с 8 на 9 перескок..... ничего не пойму.................. Проверяю на макетке - менял местами провода адреса, так мотор в обратную крутится тогда при переходе и тоже с рывком......
|
|
|
|
05.07.2013, 14:42
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Шаговый мотор (микрошаг) + атмега
Сообщение от vspvsp
|
Да, у вас адреса перепутаны. Для смены направления вращения меняется направление смены уровней ШИМ и адресов (3,2,1,0,3 ...) и вообще там 4 варианта туда-сюда смотря как обмотки одели!
|
Сейчас буду както проверять куда какой конец обмотки подключать....
|
|
|
|
05.07.2013, 14:47
|
|
Вид на жительство
Регистрация: 30.10.2007
Адрес: Ростов-на-Дону
Сообщений: 285
Сказал спасибо: 23
Сказали Спасибо 39 раз(а) в 33 сообщении(ях)
|
Re: Шаговый мотор (микрошаг) + атмега
Ну так опять адреса не поправили! Менять надо А с 0 на 1, а не Б с 0 на 1!!!
case 8:
A=0; B=0; OCR1A=49; OCR1B=255; //25%
break;
case 8:
A=1; B=0; OCR1A=255; OCR1B=0; //25% - вот так A=1; B=0;
break;
И менять уровни ШИМ не в следующем шаге, а в том же, где меняете адреса!!!!!!!!
Это я в экселе промазал на 1 с адресами. Сдвинуть вперёд на 1
Последний раз редактировалось vspvsp; 05.07.2013 в 14:58.
|
|
|
|
05.07.2013, 15:44
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Шаговый мотор (микрошаг) + атмега
PHP код:
|
case 0:
A=0; B=0; OCR1A=255; OCR1B=0; //25%
break;
case 1:
A=0; B=0; OCR1A=250; OCR1B=49; //25%
break;
case 2:
A=0; B=0; OCR1A=235; OCR1B=97; //25%
break;
case 3:
A=0; B=0; OCR1A=212; OCR1B=141; //25%
break;
case 4:
A=0; B=0; OCR1A=180; OCR1B=180; //25%
break;
case 5:
A=0; B=0; OCR1A=141; OCR1B=212; //25%
break;
case 6:
A=0; B=0; OCR1A=97; OCR1B=235; //25%
break;
case 7:
A=0; B=0; OCR1A=49; OCR1B=250; //25%
break;
case 8:
A=0; B=0; OCR1A=0; OCR1B=255; //25%
break;
case 9:
A=1; B=0; OCR1A=250; OCR1B=49; //25%
break;
case 10:
A=1; B=0; OCR1A=235; OCR1B=97; //25%
break;
case 11:
A=1; B=0; OCR1A=212; OCR1B=141; //25%
break;
case 12:
A=1; B=0; OCR1A=180; OCR1B=180; //25%
break;
case 13:
A=1; B=0; OCR1A=141; OCR1B=212; //25%
break;
case 14:
A=1; B=0; OCR1A=97; OCR1B=235; //25%
break;
case 15:
A=1; B=0; OCR1A=49; OCR1B=250; //25%
break;
case 16:
A=0; B=1; OCR1A=255; OCR1B=0; //25%
break;
|
непойму где я туплю. При переходе с 8 на 9 шагает назад и потом идет в томже направлении нормально что и до смены адреса. У меня диоды на стоят на обмотках. Они нужны? Может в них дело.....? Адреса уже все перепробовал
|
|
|
|
05.07.2013, 16:19
|
|
Вид на жительство
Регистрация: 30.10.2007
Адрес: Ростов-на-Дону
Сообщений: 285
Сказал спасибо: 23
Сказали Спасибо 39 раз(а) в 33 сообщении(ях)
|
Re: Шаговый мотор (микрошаг) + атмега
Диоды - обязательны, хотя они есть и в ULN-ке самой (вывод COM на "+" питания).
С виду всё выглядит правильно! Быть может обмотки как-то криво у вас стоят? Вы точно вызвонили середины обмоток и порядок концов?
Если обозвать центральные выводы обмоток 1 и 2, а "половинки" 1а и 1б, 2а и 2б, то, по идее, к выводам ключей они должны быть подключены "через одну", т.е. 1а, 2а, 1б, 2б.
Вы проверили промежуточные варианты работы схемы, без микрошага?
Нормально и в нужном ли направлении крутится двигатель полным шагом:
ШИМы оба по 100% меняем только адрес 0,1,2,3,0,1,2,3
Полушагом:
Меняем адрес 0,0,1,1,2,2,3,3,0,0
И меняем ШИМы
адрес шим а б
0 100 100
0 0 100
1 100 100
1 0 100
2 100 100
2 0 100
3 100 100
3 0 100
0 100 100
0 0 100
Пробуем "четвертинками"
0 100 0 - 0
0 100 50 - четвертинка
0 100 100 - половинка
0 50 100 - 3/4
1 100 0 - смена местами
1 100 50
1 100 100
1 50 100
2 100 0
2 100 50
2 100 100
2 50 100
3 100 0
3 100 50
3 100 100
3 50 100
0 100 0 - повтор
Выбрасывайте уже "наглядность" и переходите к массивам вместо switch - case и счётчик и не ошибётесь в двоичной арифметике) и переходить от шага к шагу (полный микро) и менять направление сможете просто переключением массива и направления указателя на число.
Последний раз редактировалось vspvsp; 05.07.2013 в 16:21.
|
|
|
|
05.07.2013, 16:20
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Шаговый мотор (микрошаг) + атмега
PHP код:
|
case 0:
A=0; B=0; OCR1A=255; OCR1B=0; //25%
break;
case 1:
A=0; B=0; OCR1A=250; OCR1B=49; //25%
break;
case 2:
A=0; B=0; OCR1A=235; OCR1B=97; //25%
break;
case 3:
A=0; B=0; OCR1A=212; OCR1B=141; //25%
break;
case 4:
A=0; B=0; OCR1A=180; OCR1B=180; //25%
break;
case 5:
A=0; B=0; OCR1A=141; OCR1B=212; //25%
break;
case 6:
A=0; B=0; OCR1A=97; OCR1B=235; //25%
break;
case 7:
A=0; B=0; OCR1A=49; OCR1B=250; //25%
break;
case 8:
A=1; B=0; OCR1A=255; OCR1B=0; //25%
break;
case 9:
A=1; B=0; OCR1A=250; OCR1B=49; //25%
break;
case 10:
A=1; B=0; OCR1A=235; OCR1B=97; //25%
break;
case 11:
A=1; B=0; OCR1A=212; OCR1B=141; //25%
break;
case 12:
A=1; B=0; OCR1A=180; OCR1B=180; //25%
break;
case 13:
A=1; B=0; OCR1A=141; OCR1B=212; //25%
break;
case 14:
A=1; B=0; OCR1A=97; OCR1B=235; //25%
break;
case 15:
A=1; B=0; OCR1A=49; OCR1B=250; //25%
break;
case 16:
A=0; B=1; OCR1A=255; OCR1B=0; //25%
break;
case 17:
A=0; B=1; OCR1A=250; OCR1B=49; //25%
break;
case 18:
A=0; B=1; OCR1A=235; OCR1B=97; //25%
break;
case 19:
A=0; B=1; OCR1A=212; OCR1B=141; //25%
break;
case 20:
A=0; B=1; OCR1A=180; OCR1B=180; //25%
break;
case 21:
A=0; B=1; OCR1A=141; OCR1B=212; //25%
break;
case 22:
A=0; B=1; OCR1A=97; OCR1B=235; //25%
break;
case 23:
A=0; B=1; OCR1A=49; OCR1B=250; //25%
break;
case 24:
A=1; B=1; OCR1A=255; OCR1B=0; //25%
break;
case 25:
A=1; B=1; OCR1A=250; OCR1B=49; //25%
break;
case 26:
A=1; B=1; OCR1A=235; OCR1B=97; //25%
break;
case 27:
A=1; B=1; OCR1A=212; OCR1B=141; //25%
break;
case 28:
A=1; B=1; OCR1A=180; OCR1B=180; //25%
break;
case 29:
A=1; B=1; OCR1A=141; OCR1B=212; //25%
break;
case 30:
A=1; B=1; OCR1A=97; OCR1B=235; //25%
break;
case 31:
A=1; B=1; OCR1A=49; OCR1B=250; //25%
break;
case 32:
A=1; B=1; OCR1A=255; OCR1B=0; //25%
break;
|
плавный переход только с 15 на 16, а в остальных рывок назад, и потом нормальный микрошаг...
|
|
|
|
05.07.2013, 16:33
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Шаговый мотор (микрошаг) + атмега
сейчас всё заново начну проверять от полношага... Знать бы как определить 1а или 1б. самито средние я вызвонил и их края. С мотора выходят вот так провода:
первые три: красный-1,белый-1, желтый-1 (белый средний)
под ними вторые три: желтый-2, белый-2,красный-2(белый средний)
оба белых на +5 В посадил.
Выходы ключа:
1 - красный-2
2 - красный-1
3 - желтый-2
4- желтый-1
|
|
|
|
05.07.2013, 16:35
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Шаговый мотор (микрошаг) + атмега
Сообщение от vspvsp
|
указателя на число.
|
Всё както ненайду время с указателем поработать... Вродь понимаю в программе чьейто, а сам не могу написать ))
|
|
|
|
05.07.2013, 17:23
|
|
Вид на жительство
Регистрация: 30.10.2007
Адрес: Ростов-на-Дону
Сообщений: 285
Сказал спасибо: 23
Сказали Спасибо 39 раз(а) в 33 сообщении(ях)
|
Re: Шаговый мотор (микрошаг) + атмега
Если вы перепутаете а и б то просто измените направление вращения, ничего страшного! А если 1 и 2, то будет бардак!
Для слежения за результатом предлагаю напаять светодиоды на выходы дешифратора - при нормальной работе там получится "волна света": загорается первый, потом плавно перетекает на второй, третий, четвёртый.
"указатель" это индекс массива, чего уж проще!
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 22:08.
|
|