Page 28 - Armaturobot
P. 28

También debemos indicarle que
retroceda. Para ello tendremos que
decirle que apague las variables que
están encendidas y que encienda los
otros pines. Quedará de la siguiente
manera:
void loop() {
digitalWrite(mia,HIGH);
digitalWrite(mda,HIGH);
digitalWrite(mir,LOW);
digitalWrite(mdr,LOW);
delay(3000);
digitalWrite(mia,LOW);
digitalWrite(mda,LOW);
digitalWrite(mir,HIGH);
digitalWrite(mdr,HIGH);
delay(3000);
void loop() {
digitalWrite(mia,HIGH);
digitalWrite(mda,HIGH);
digitalWrite(mir,LOW);
digitalWrite(mdr,LOW);
delay(3000);
digitalWrite(mia,LOW);
digitalWrite(mda,LOW);
delay(200);
digitalWrite(mir,HIGH);
digitalWrite(mdr,HIGH);
delay(3000);
digitalWrite(mir,LOW);
digitalWrite(mdr,LOW);
delay(200);
}
Cuando lo logres, ¡date un momento
para celebrar antes de pasar a lo
siguiente!
}
Es momento de probarlo. Es probable
que tu robot haga lo siguiente: que
empiece a avanzar y que, cuando vaya
a retroceder, se escuche un sonido
como si la tarjeta se desconectara y
el programa reiniciara, pero el robot
funcionará bien. Esto se debe a que,
hace el cambio de señales de alta a
baja y viceversa con demasiada rapidez,
que es como si enviáramos dos pulsos
altos al L293; esto causa un conflicto a
la tarjeta y se reinicia para protegerse.
Por eso necesitamos enviar primero
unas señales bajas a los pines donde se
declaró el alcance, y después darle un
delay (aunque sea pequeño) para que
la tarjeta tenga tiempo de reaccionar y
hacer los cambios de pulso. Así, nuestro
programa debería quedar de la siguiente
manera.
26









































   26   27   28   29   30