#include <Servo.h>
Servo esc; // Objeto para controlar el ESC
int pinESC = 9; // Pin PWM al que está conectado el cable de señal del ESC
int maxPowerSignal = 2000; // Valor de microsegundos para máxima potencia
int minPowerSignal = 1000; // Valor de microsegundos para mínima potencia
// Variables para la calibración
unsigned long calibracionStart;
bool calibracionCompleta = false;
bool enviandoMax = false;
bool enviandoMin = false;
void setup() {
Serial.begin(9600);
esc.attach(pinESC, minPowerSignal, maxPowerSignal);
Serial.println("Iniciando calibracion del ESC...");
calibracionStart = millis(); // Guarda el tiempo de inicio de la calibración
enviandoMax = true;
esc.writeMicroseconds(maxPowerSignal); // Envía señal máxima al inicio
Serial.println("Conecta la bateria ahora. El ESC piteara en unos segundos.");
}
void loop() {
// Proceso de calibración en el loop usando millis()
if (!calibracionCompleta) {
if (enviandoMax && millis() - calibracionStart >= 5000) { // Espera 5 segundos
enviandoMax = false;
enviandoMin = true;
esc.writeMicroseconds(minPowerSignal); // Envía señal mínima
calibracionStart = millis(); // Reinicia el contador para el siguiente paso
Serial.println("Enviando señal minima para armar. Espera otros 5 segundos.");
}
if (enviandoMin && millis() - calibracionStart >= 5000) { // Espera otros 5 segundos
enviandoMin = false;
calibracionCompleta = true;
Serial.println("¡Calibracion completa! Motor funcionando a maxima potencia.");
}
} else {
// Código para mantener la máxima potencia de forma constante
esc.writeMicroseconds(maxPowerSignal);
}
}
Comentarios
Publicar un comentario