Page 68 - Programacion
P. 68

void loop()
{
servo1.write(0);
servo1.write(90);
servo1.write(180);
}
No funcionó tan bien, ¿cierto? Esto
se debe a que el programa lee las
instrucciones demasiado rápido, y
aunque puede ejecutarlas a gran
velocidad, los componentes mecánicos
no pueden reaccionar de la misma forma.
Esto implica que tendremos que agregar
algo a las instrucciones anteriores.
¡Correcto! Para que nuestro servomotor
pueda reaccionar, necesitaremos darle
tiempo: en otras palabras, hay que
agregar un delay entre cada cambio de
ángulo. Quedará así:
void loop()
Aquí tienes un pequeño reto. Si te das
cuenta, el servomotor cambia de cero
a 90 grados y posteriormente a 180
grados, pero después regresa a cero
de inmediato para repetir la secuencia
completa. ¿Sabes qué tendríamos que
hacer para que, en lugar de regresar
directamente a cero primero pasara por
90 grados? La respuesta es: agregar dos
líneas más ya que, cuando termine de
regresarlas, nuevamente estará en cero.
Quedaría así:
void loop()
{
servo1.write(0);
delay(1000);
servo1.write(90);
delay(1000);
servo1.write(180);
delay(1000);
servo1.write(90);
delay(1000);
{
servo1.write(0);
delay(1000);
servo1.write(90);
delay(1000);
servo1.write(180);
delay(1000);
}
Recuerda que el tiempo que va dentro
del delay está en milisegundos y que, si
ponemos mil, le estamos pidiendo que
espere un solo segundo. Haz la prueba
y cambia la cifra que está junto a delay
para ver qué ocurre.
}
Ahora que ya has practicado, es
momento de que resuelvas otro reto
usando lo que ya hemos visto. Realiza un
programa que haga que un servomotor
vaya cambiando de ángulo lentamente,
desde cero grados hasta 180 grados, y
de ahí de regreso de 180 grados a cero
grados.
El programa para realizar la tarea que te
solicitamos es:
66































   66   67   68   69   70