Навчальні конструктори та DIY електроніка

Запуск шагового двигателя

2016-01-27

Пример: Arduino управляет шаговым двигателем при  помощи ULN2003

Модуль ULN2003

Подключения:

arduino, вывод 4 двигатель, вывод 1
arduino, вывод 5 двигатель, вывод 2
arduino, вывод 6 двигатель, вывод 3
arduino, вывод 7 двигатель, вывод 4
arduino, вывод 8 двигатель, вывод 5
arduino, вывод 11 через кнопку к +5В и через резистор 10 кОм на землю

Скетч:

char motorPin[]={
  4,5,6,7}; 
int i; 
int key = 0; 
int button = 11; 

void motor1() //
{ 
  digitalWrite(motorPin[0],LOW); 
  digitalWrite(motorPin [1],HIGH); 
  digitalWrite(motorPin [2],HIGH); 
  digitalWrite(motorPin [3],HIGH); 
} 
void motor2() 
{ 
  digitalWrite(motorPin [0],HIGH); 
  digitalWrite(motorPin [1],LOW); 
  digitalWrite(motorPin [2],HIGH); 
  digitalWrite(motorPin [3],HIGH); 
}
void motor3() 
{ 
  digitalWrite(motorPin [0],HIGH); 
  digitalWrite(motorPin [1],HIGH); 
  digitalWrite(motorPin [2],LOW); 
  digitalWrite(motorPin [3],HIGH); 
} 
void motor4() 
{ 
  digitalWrite(motorPin [0],HIGH); 
  digitalWrite(motorPin [1],HIGH); 
  digitalWrite(motorPin [2],HIGH); 
  digitalWrite(motorPin [3],LOW); 
} 
void motor5()
{
  digitalWrite(motorPin [0],HIGH); 
  digitalWrite(motorPin [1],HIGH); 
  digitalWrite(motorPin [2],HIGH); 
  digitalWrite(motorPin[3],HIGH); 
} 
void setup() 
{ 
  Serial.begin(9600); 
  for(i=0;i<4;i++) 
    pinMode(motorPin [i],OUTPUT); 
  pinMode(button,INPUT); 
} 
void loop() 
{ 
  key = digitalRead(button); 
  if(key==LOW) 
  { 
    motor1(); 
    delay(5); 
    motor2 (); 
    delay(5); 
    motor3(); 
    delay(5); 
    motor4();
    delay(5); 
  } 
  if(key==HIGH) 
  { 
    motor4(); 
    delay(10); 
    motor3(); 
    delay(10); 
    motor2(); 
    delay(10); 
    motor1(); 
    delay(10); 
  } 
} 

Купить плату управления шаговым двигателем можно в нашем магазине: ULN2003

Автор: hobbytech


Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *


© HobbyTech 2016