Тема: шаговый мотор как добавить 2 мотор
не пойму как добавить в скеч второй шаговый мотор задача такова один мотор крутится постоянно второй мотор на ниже скорости крутится медленней
добавил второй мотор в общем работает но оба мотора на одинаковой скорости останавливаются задача чтобы один мотор останавливался второй крутился постоянно
/*Программа для вращения шагового мотора NEMA 17, серии 17HS4402 + драйвер A4988. Сначала мотор совершает полный оборот в одну сторону, потом в другую*/
const int pinStep1 = 13; /*целочисленная константа, хранящая номер цифрового контакта Arduino, который подаёт сигнал Step на драйвер. Каждый импульс от этого контакта — это перемещение мотора на один шаг*/
const int pinStep2 = 11;
const int pinDir1 = 12; /*целочисленная константа, хранящая номер цифрового контакта Arduino, который подаёт сигнал Direction на драйвер. Наличие импульса - мотор вращается в одну сторону, отсутствие - в другую*/
const int pinDir2 = 10;
#define BTN1_PIN 5 // Концевик 1.
#define BTN2_PIN 6 // Концевик 2.
//временная задержка между шагами мотора в мс
const int move_delay = 1; //стояло 3
//шагов на полный оборот
const int steps_rotate_360 = 200;
/*Функция, в которой происходит инициализация всех переменных программы*/
void setup()
{
/*задаём контактам Step и Direction режим вывода, то есть они выдают напряжение*/
pinMode(pinStep1, OUTPUT);
pinMode(pinDir1, OUTPUT);
pinMode(pinStep2, OUTPUT);
pinMode(pinDir2, OUTPUT);
//устанавливаем начальный режим
digitalWrite(pinStep1, HIGH);
digitalWrite(pinDir1, LOW);
digitalWrite(pinStep2, HIGH);
digitalWrite(pinDir2, LOW);
}
/*Функция-цикл в которой задаётся поведение программы*/
void loop()
{
//устанавливаем направление вращения
digitalWrite(pinDir1, HIGH);
digitalWrite(pinDir2, HIGH);
for(int i = 0; i < steps_rotate_360; i++)
{
digitalWrite(pinStep1, HIGH);
delay(move_delay);
digitalWrite(pinStep1, LOW);
delay(move_delay);
digitalWrite(pinStep2, HIGH);
delay(move_delay);
digitalWrite(pinStep2, LOW);
delay(move_delay);
}
delay(move_delay*10);
//устанавливаем направление вращения обратное
digitalWrite(pinDir1, LOW);
digitalWrite(pinDir2, LOW);
for(int i = 0; i < steps_rotate_360; i++)
{
digitalWrite(pinStep1, HIGH);
delay(move_delay);
digitalWrite(pinStep1, LOW);
delay(move_delay);
digitalWrite(pinStep2, HIGH);
delay(move_delay);
digitalWrite(pinStep2, HIGH);
delay(move_delay);
}
delay(move_delay*10);
}