Помогите новичку!!!
- Войдите на сайт для отправки комментариев
Чт, 12/03/2015 - 11:48
Доброго времени суток!
помогите разобратся новичку, идея очень простая, а вот с реализацией никак не выходит. суть идеи вот в чем : нужно запустить одновременно 3 двигателя сначало в одну сторону, затем задержка, потом в другую сторону и опять задержка. действие зациклено. но никак не получается настраивать действия двигателей независимо друг от друга, все получается последовательно. подскажите пожалуйста как создать функцию для второго и третьего двигателя но чтобы она выполнялась одновременно с первым?
вот пример того что я уже написал.
int IN3 = 5;
int IN4 = 4;
int IN1 = 2;
int IN2 = 3;
int IN5 = 6;
int IN6 = 7;
void setup()
{
pinMode (IN4, OUTPUT);
pinMode (IN3, OUTPUT);
pinMode (IN2, OUTPUT);
pinMode (IN1, OUTPUT);
pinMode (IN5, OUTPUT);
pinMode (IN6, OUTPUT);
}
void loop()
{
{
digitalWrite (IN1, HIGH);
digitalWrite (IN2, LOW);
delay(40000);
digitalWrite (IN1, LOW);
delay(5000);
digitalWrite (IN2, HIGH);
digitalWrite (IN1, LOW);
delay(40000);
digitalWrite (IN1, LOW);
delay(5000);
}
{
digitalWrite (IN3, HIGH);
digitalWrite (IN4, LOW);
delay(40000);
digitalWrite (IN3, LOW);
delay(5000);
digitalWrite (IN4, HIGH);
digitalWrite (IN3, LOW);
delay(40000);
digitalWrite (IN3, LOW);
delay(5000);
}
}
А лучше от делаев уходить
вы наверное меня не так поняли. мне нужно сделать так чтобы все три двигателя работали одновременно но задержку и работу для каждого двигателя можно было настраивать отдельно и независимо то других.
тогда избавляйтесь от delay иначе никак
тогда подскажите пожалуйста как это можно осуществить.
Начните с простого, вставьте вот эти дефайны в самое начало.
Это сильно добавит коду "читабельности" (нам и вам), сильно поможет логическому мышлению и в будущем сократит размер кода.
Как использовать- вроде должно быть понятно: M1_CV; M1_CCV; M1_STOP;
вы наверное меня не так поняли. мне нужно сделать так чтобы все три двигателя работали одновременно
Не думали ли Вы использовать такого рода управление-задержку?
//###### #define IN1 2 #define IN2 3 #define IN4 4 #define IN3 5 #define IN5 6 #define IN6 7 // unsigned long previousMillis(n++) = 0; // unsigned int interval(n) = N++; void setup(); { pinMode (1, OUTPUT); pinMode (2, OUTPUT); pinMode (3, OUTPUT); pinMode (4, OUTPUT); pinMode (5, OUTPUT); pinMode (6, OUTPUT); digitalWrite(1, LOW); digitalWrite(2, LOW); digitalWrite(3, LOW); digitalWrite(4, LOW); digitalWrite(5, LOW); digitalWrite(6, LOW); } void loop(); { unsigned long currentMillis = millis(); if (currentMillis - previousMillis > interval(n++)) { previousMillis = currentMillis; /// digitalWrite((n), LOW); } }но задержку и работу для каждого двигателя можно было настраивать отдельно и независимо то других.
Тогда наверное стоит их всех по отдельности занести в плавающею и дергать как вам угодно.
З.Ы. Я сам как бы не очень в программировании, но думаю раздать всем задержку и дергать нитки будет проще?