Arduino - Problema programación tiempos de ejecución

 
Vista:
Imágen de perfil de Gorka

Problema programación tiempos de ejecución

Publicado por Gorka (6 intervenciones) el 13/08/2017 23:59:14
Para manejar la ruta de mi robot a traves de 2 motores DC controlados por un L298N he realizado varios void que luego introduzco en el void loop() para que sigan un bucle.
Mi problematica es que cuando introduzco estos void en el void setup, al añadir el tiempo de ejecucion al traves de la funcion delay() pues no se me activa niguno, no hace caso.
Pero por separado si funcionan
Os dejo el ejemplo de mi programacion, para que veais que tengo distintos vois creados: void Adelante(), void Atras, void Izquierda(), void Derecha(), void parar();

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
//MOTOR B
int IN3 = 7;
int IN4 = 4;
//MOTOR A
int IN1 = 2;
int IN2 = 3;
 
 
 
 
void setup()
 {
 //MOTOR B
 pinMode (IN3, OUTPUT);
 pinMode (IN4, OUTPUT);
 //MOTOR A
 pinMode (IN1, OUTPUT);
 pinMode (IN2, OUTPUT);
}
 
void Derecha()
{
 
 
 // Motor B
 digitalWrite(IN3, LOW);
 digitalWrite(IN4, LOW);
 analogWrite(IN3, 200);
 
 
 //MOTOR A
 digitalWrite(IN1, HIGH);
 digitalWrite(IN2, LOW);
 analogWrite(IN1, 200);
 
}
 
void Adelante()
{
 
 
 // Motor B
 digitalWrite(IN3, HIGH);
 digitalWrite(IN4, LOW);
 analogWrite(IN3, 200);
 
 
 //MOTOR A
 digitalWrite(IN1, HIGH);
 digitalWrite(IN2, LOW);
 analogWrite(IN1, 200);
 
}
 
void Atras()
{
 
 
 // Motor B
 digitalWrite(IN3, LOW);
 digitalWrite(IN4, HIGH);
 analogWrite(IN3, 200);
 
 
 //MOTOR A
 digitalWrite(IN1, LOW);
 digitalWrite(IN2, HIGH);
 analogWrite(IN1, 200);
 
}
 
void Izquierda()
{
 
 
 // Motor B
 digitalWrite(IN3, HIGH);
 digitalWrite(IN4, LOW);
 analogWrite(IN3, 200);
 
 
 //MOTOR A
 digitalWrite(IN1, LOW);
 digitalWrite(IN2, LOW);
 analogWrite(IN1, 200);
 
}
 
void Parar()
{
 
 
 // Motor B
 digitalWrite(IN3, LOW);
 digitalWrite(IN4, HIGH);
 analogWrite(IN3, 200);
 
 
 //MOTOR A
 digitalWrite(IN1, LOW);
 digitalWrite(IN2, HIGH);
 analogWrite(IN1, 200);
 
}
 
void loop() {
 Adelante ();
delay (2000);
Atras ();
delay (2000);
Derecha ();
delay (1000);
Izquierda ();
delay (1000);
Parar ();
delay (4000);
}

De esta forma no ocurre nada, únicamente funcionan los motores a una velocidad hacia delante y ya, no cumple la rutina creada en el void loop().

¿Puede ser problema del delay?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder