Помогите новичку!!!

vovancho0
Offline
Зарегистрирован: 12.03.2015

Доброго времени суток!

помогите разобратся новичку, идея очень простая, а вот с реализацией никак не выходит. суть идеи вот в чем : нужно запустить одновременно 3 двигателя сначало в одну сторону, затем задержка, потом в другую сторону и опять задержка. действие зациклено. но никак не получается настраивать действия двигателей независимо друг от друга, все получается последовательно. подскажите пожалуйста как создать  функцию для  второго и третьего двигателя  но чтобы она выполнялась одновременно с первым?  

вот пример того что я уже написал.

01int IN3 = 5;
02int IN4 = 4;
03int IN1 = 2;
04int IN2 = 3;
05int IN5 = 6;
06int IN6 = 7;
07 
08void setup()
09{
10  pinMode (IN4, OUTPUT);
11  pinMode (IN3, OUTPUT);
12  pinMode (IN2, OUTPUT);
13  pinMode (IN1, OUTPUT);
14  pinMode (IN5, OUTPUT);
15  pinMode (IN6, OUTPUT);
16}
17void loop()
18{
19  {
20  digitalWrite (IN1, HIGH);
21  digitalWrite (IN2, LOW);
22  delay(40000);
23  digitalWrite (IN1, LOW);
24  delay(5000);
25  digitalWrite (IN2, HIGH);
26  digitalWrite (IN1, LOW);
27  delay(40000);
28  digitalWrite (IN1, LOW);
29  delay(5000);
30  }
31  {
32  digitalWrite (IN3, HIGH);
33  digitalWrite (IN4, LOW);
34  delay(40000);
35  digitalWrite (IN3, LOW);
36  delay(5000);
37  digitalWrite (IN4, HIGH);
38  digitalWrite (IN3, LOW);
39  delay(40000);
40  digitalWrite (IN3, LOW);
41  delay(5000);
42  }
43}

 

 

Penni
Penni аватар
Offline
Зарегистрирован: 18.01.2015
01digitalWrite (IN1, HIGH);
02digitalWrite (IN2, LOW);
03digitalWrite (IN3, HIGH);
04digitalWrite (IN4, LOW);
05digitalWrite (IN5, HIGH);
06digitalWrite (IN6, LOW);
07delay(40000);
08digitalWrite (IN1, LOW);
09digitalWrite (IN3, LOW);
10digitalWrite (IN5, LOW);
11delay(5000);
12digitalWrite (IN1, LOW);
13digitalWrite (IN2, HIGH);
14digitalWrite (IN3, LOW);
15digitalWrite (IN4, HIGH);
16digitalWrite (IN5, LOW);
17digitalWrite (IN6, HIGH);
18delay(40000);
19digitalWrite (IN2, LOW);
20digitalWrite (IN4, LOW);
21digitalWrite (IN6, LOW);
22delay(5000);

А лучше от делаев уходить

vovancho0
Offline
Зарегистрирован: 12.03.2015

вы наверное меня не так поняли. мне нужно сделать так чтобы все три двигателя  работали одновременно но задержку и работу для каждого двигателя можно было настраивать отдельно и независимо то других.  

Penni
Penni аватар
Offline
Зарегистрирован: 18.01.2015

тогда избавляйтесь от delay иначе никак

vovancho0
Offline
Зарегистрирован: 12.03.2015

тогда подскажите пожалуйста как это можно осуществить.

 

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Начните с простого, вставьте вот эти дефайны в самое начало.
Это сильно добавит коду "читабельности" (нам и вам), сильно поможет логическому мышлению и в будущем сократит размер кода.
Как использовать- вроде должно быть понятно: M1_CV;   M1_CCV;  M1_STOP;

01#define IN3  5
02#define IN4  4
03#define IN1  2
04#define IN2  3
05#define IN5  6
06#define IN6  7
07 
08#define M1_CV   digitalWrite (IN1, HIGH);  digitalWrite (IN2, LOW)
09#define M1_CCV  digitalWrite (IN1, LOW);   digitalWrite (IN2, HIGH)
10#define M1_STOP digitalWrite (IN1, LOW);   digitalWrite (IN2, LOW)
11 
12#define M2_CV   digitalWrite (IN3, HIGH);  digitalWrite (IN4, LOW)
13#define M2_CCV  digitalWrite (IN3, LOW);   digitalWrite (IN4, HIGH)
14#define M2_STOP digitalWrite (IN3, LOW);   digitalWrite (IN4, LOW)
15 
16#define M3_CV   digitalWrite (IN5, HIGH);  digitalWrite (IN6, LOW)
17#define M3_CCV  digitalWrite (IN5, LOW);   digitalWrite (IN6, HIGH)
18#define M3_STOP digitalWrite (IN5, LOW);   digitalWrite (IN6, LOW)

 

Marlen S
Offline
Зарегистрирован: 13.01.2015

vovancho0 пишет:

вы наверное меня не так поняли. мне нужно сделать так чтобы все три двигателя  работали одновременно 

Не думали ли Вы использовать такого рода управление-задержку?

vovancho0 пишет:

но задержку и работу для каждого двигателя можно было настраивать отдельно и независимо то других.  

Тогда наверное стоит их всех по отдельности занести в плавающею и дергать как вам угодно.

З.Ы. Я сам как бы не очень в программировании, но думаю раздать всем задержку и дергать нитки будет проще?