
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();
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?
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


0