Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
07.06.2013, 12:25
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Шаговый мотор (микрошаг) + атмега
Сообщение от oleg110592
|
Шим фильтруется RC цепочкой - получаем напряжение, подаем на компаратор. На второй вход компаратора подается напряжение с токового резистора L298. выход компаратора на вход EnA L298. То есть чем больше значение шим, тем выше напряжение на входе компаратора и выше ток обмотки. А в программе тупо выставили логические значения на входах In L298 и например шим1=200, шим2=0, затем шим1=150, шим2=50, затем шим1=100, шим2=100 , затем шим1=50, шим2=150 и т.д. У меня оказалось хватило 1/4 шага. Может и неправильно, но работало с двумя движками по X и Y, даже в исходную точку возвращалось
|
Попробую для начала так...Также и EnB для второй обмотки делать через второй компаратор? Так получается L298 сможет например 1/16 делать? А мне нужно будет всего лишь давать полношаг или полушаг на входы In? Получается надо сделать таблицу, в которой на каждый шаг сделать шим1,шим2,и комбинацию полношаг или полушаг?
1 шаг - шим1=100,шим2=0,PORTB=0b00000001
2 шаг - шим1=80,шим2=20,PORTB=0b00000011
3 шаг - шим1=60,шим2=40,PORTB=0b00000110
и так далее?....
|
|
|
|
07.06.2013, 13:05
|
|
Гражданин KAZUS.RU
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
|
Re: Шаговый мотор (микрошаг) + атмега
Сообщение от miwutka
|
Также и EnB для второй обмотки делать через второй компаратор? Так получается L298 сможет например 1/16 делать?
|
Да и для второй обмотки отдельный компаратор (у меня ОУ сдвоенный). Теоретически можно и 1/256 - лучше для шима использовать значения синусоиды. Насчет In в документации посмотреть, у меня так было:
|
|
|
|
07.06.2013, 13:18
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 7,983
Сказал спасибо: 0
Сказали Спасибо 4,941 раз(а) в 2,370 сообщении(ях)
|
Re: Шаговый мотор (микрошаг) + атмега
|
|
|
|
07.06.2013, 13:24
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Шаговый мотор (микрошаг) + атмега
74HC00B1 вроде компаратор тот что надо?
|
|
|
|
07.06.2013, 13:32
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 7,983
Сказал спасибо: 0
Сказали Спасибо 4,941 раз(а) в 2,370 сообщении(ях)
|
Re: Шаговый мотор (микрошаг) + атмега
Сообщение от miwutka
|
74HC00B1 вроде компаратор
|
а если гуглем поискать?
|
|
|
|
07.06.2013, 13:36
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Шаговый мотор (микрошаг) + атмега
ок, ща буду читать... вообще хочю попробовать сделать чтото типа часов на шаг моторе, поэтому и посмотрел в сторону L298 )).
|
|
|
|
07.06.2013, 13:38
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Шаговый мотор (микрошаг) + атмега
Сообщение от jump
|
а если гуглем поискать?
|
Ну по гуглу посмотрел)) я ж в электрике не очень... QUAD 2-INPUT NAND GATE - по схемке вроде как компаратор... 1+1=0 а при других условия =1. вроде... Это то что под рукой нашел...
|
|
|
|
07.06.2013, 13:43
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Шаговый мотор (микрошаг) + атмега
вопрос не по теме - подключаю энкодер обычный(как кнопка).
Использую такой код:
PHP код:
|
void EncoderScan (void){ unsigned char New; New = PINC & 0x03; // Берем текущее значение // И сравниваем со старым switch(EncState) { case 2: { if(New == 3){ CNC1required++; OCR2_temp++; if (menu==2) OCR1A++; if (menu==3) OCR1B++; }; if(New == 0){ CNC1required--; OCR2_temp--; if (menu==2) OCR1A--; if (menu==3) OCR1B--; }; break; } case 0: { if(New == 2){ CNC1required++; OCR2_temp++; if (menu==2) OCR1A++; if (menu==3) OCR1B++; }; if(New == 1){ CNC1required--; OCR2_temp--; if (menu==2) OCR1A--; if (menu==3) OCR1B--; }; break; } case 1: { if(New == 0){ CNC1required++; OCR2_temp++; if (menu==2) OCR1A++; if (menu==3) OCR1B++; }; if(New == 3){ CNC1required--; OCR2_temp--; if (menu==2) OCR1A--; if (menu==3) OCR1B--; }; break; } case 3: { if(New == 1){ CNC1required++; OCR2_temp++; if (menu==2) OCR1A++; if (menu==3) OCR1B++; }; if(New == 2){ CNC1required--; OCR2_temp--; if (menu==2) OCR1A--; if (menu==3) OCR1B--; }; break; } } EncState = New; // Записываем новое значение предыдущего состояния
|
Тут надо подключать энкодер к двум первым портам. Я с масками не научился еще работать, подскажите пожалуйста как бы так написать маску чтобы подключать можнобыло к любым ножкам и использовать примерно этот же алгоритм.
Последний раз редактировалось miwutka; 07.06.2013 в 13:46.
|
|
|
|
07.06.2013, 13:45
|
|
Гражданин KAZUS.RU
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
|
Re: Шаговый мотор (микрошаг) + атмега
По ссылке, которую вам дали есть схема с компаратором LM393 - практически то что нужно.
Насчет энкодера использовал код того же Леонида Ивановича - можно поискать.
нашел http://caxapa.ru/207402.html
Последний раз редактировалось oleg110592; 07.06.2013 в 13:49.
|
|
|
|
07.06.2013, 13:50
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 7,983
Сказал спасибо: 0
Сказали Спасибо 4,941 раз(а) в 2,370 сообщении(ях)
|
Re: Шаговый мотор (микрошаг) + атмега
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 19:11.
|
|