Показать сообщение отдельно
Старый 29.01.2017, 05:57   #1
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Как заставить шаговый двигатель шагать

Булка, помоги. Подключил шаговый двигатель к AVR. Подаю в цикле по очереди напряжение на каждую из четырёх катушек (блок питания 12V 2A), но шагает как-то не очень уверенно. Может нужно подавать сигнал как-то хитрее? Например, питать по две соседних катушки одновременно, таким образом получится восемь состояний, а не четыре. Заодно предложите варианты, куда его можно применить, чтобы зря не валялся.



Ах да, почему тема в С++? Ну потому что раздела для электронщиков нет. Но зато у меня есть для вас КОД:

int main(void) {
  
  
PORTC &= ~((1 << 0) | (1 << 1) | (1 << 2) | (1 << 3));
  
DDRC |= ((1 << 0) | (1 << 1) | (1 << 2) | (1 << 3));
  
  while (
1) {
    
PORTC &= ~(1 << 0);
    
PORTC |= (1 << 1);
    
_delay_ms(10);
    
PORTC &= ~(1 << 1);
    
PORTC |= (1 << 2);
    
_delay_ms(10);
    
PORTC &= ~(1 << 2);
    
PORTC |= (1 << 3);
    
_delay_ms(10);
    
PORTC &= ~(1 << 3);
    
PORTC |= (1 << 0);
    
_delay_ms(10);
  }
  
} 
А ещё, подскажите, какая у подобных двигателей предельная скорость?
(Offline)
 
Ответить с цитированием