He trasladado su tema de una categoría de idioma inglés del foro a la categoría International > Español@maximoracing.
En adelante por favor usar la categoría apropiada a la lengua en que queráis publicar. Esto es importante para el uso responsable del foro, y esta explicado aquí la guía "How to get the best out of this forum".
Este guía contiene mucha información útil. Por favor leer.
#include <Servo.h>
Servo servo;
unsigned long tiempoAnterior = 0; // Variable para almacenar el tiempo anterior
const unsigned long intervalo = 10000; // Intervalo de 10 segundos en milisegundos
bool enMovimiento = false; // Variable para controlar si el servo está en movimiento
void setup() {
servo.attach(3);
}
void loop() {
unsigned long tiempoActual = millis(); // Obtiene el tiempo actual
if (!enMovimiento && tiempoActual - tiempoAnterior >= intervalo) {
// Si el servo no está en movimiento y ha pasado el intervalo de tiempo
enMovimiento = true; // Activar el movimiento
tiempoAnterior = tiempoActual; // Actualizar el tiempo anterior
}
if (enMovimiento) {
if (tiempoActual - tiempoAnterior <= 500) {
// Mueve el servo a 180 grados durante los primeros 500ms
servo.write(180);
} else if (tiempoActual - tiempoAnterior <= 1000) {
// Luego, mueve el servo a 0 grados durante los siguientes 500ms
servo.write(0);
} else {
// Desactivar el movimiento después de completar el ciclo
enMovimiento = false;
}
}
}
#include <Servo.h>
Servo servo;
unsigned long tiempoAnterior = 0; // Variable para almacenar el tiempo anterior
const unsigned long intervalo = 10000; // Intervalo de 10 segundos en milisegundos
bool movimientoActivo = false; // Variable para controlar si el movimiento está activo
void setup() {
servo.attach(3);
}
void loop() {
unsigned long tiempoActual = millis(); // Obtiene el tiempo actual
if (!movimientoActivo && tiempoActual - tiempoAnterior >= intervalo) {
// Si el movimiento no está activo y ha pasado el intervalo de tiempo
movimientoActivo = true; // Activar el movimiento
tiempoAnterior = tiempoActual; // Actualiza el tiempo anterior
}
if (movimientoActivo) {
servo.write(180);
delay(500);
servo.write(0); // Vuelve a la posición inicial
delay(500);
servo.write(90); // frena
delay(500);
movimientoActivo = false; // Desactivar el movimiento después de completarlo
}
}