Gracias por la respuesta.
Los servos “grandes” los tengo alimentados externamente, desde una fuente de 7.4V y al arduino conectados por el cable de señal.
Dado que no conseguía avanzar, ahora mismo he prescindido de los servos y los tengo desconectados.
Estoy trabajando solo con los leds y su programación, luego le añadiré lo demás.
Y aun así, me ha surgido un problema.
Básicamente, tengo un ciclo de encendido de leds…
int led_ea = 10; // pin del led de la espalda alta
int led_eb = 11; // pin del led de la espalda baja
int led_bat = 8; // pin del indicador de bateria
int led_batblink = 12; //pin del indicador parpadeante de bateria
int led_front = 9; // pin del led del peto frontal
//int s1 = 2; //pin del led1 del secuenciador
//int s2 = 3; //pin del led2 del secuenciador
//int s3 = 4; //pin del led3 del secuenciador
//int s4 = 5; //pin del led4 del secuenciador
//int s5 = 6; //pin del led5 del secuenciador
//int s6 = 7; //pin del led6 del secuenciador
int timersecuencia = 100; //temporizador de encendido del secuenciador
int timersecuenciaonoff = 500;
int brightness = 0; // how bright the LED is
int fadeAmount = 5; // how many points to fade the LED by
void setup() {
// put your setup code here, to run once:
pinMode(led_ea, OUTPUT);
pinMode(led_eb, OUTPUT);
pinMode(led_bat, OUTPUT);
pinMode(led_batblink, OUTPUT);
pinMode(led_front, OUTPUT);
for (int s = 2; s < 8; s++) {
pinMode(s, OUTPUT);
}
//hasta aqui se definen los pines.
//Empieza el encendido
//PARTE TRASERA
digitalWrite(led_bat, HIGH);
for (int i=1; i<4; i++) {
digitalWrite(led_batblink, HIGH);
delay(timersecuenciaonoff);
digitalWrite(led_batblink, LOW);
delay(timersecuenciaonoff);
}
digitalWrite(led_batblink, HIGH);
//encendemos la espalda baja
digitalWrite(led_eb, HIGH);
delay(100);
digitalWrite(led_eb, LOW);
delay(50);
digitalWrite(led_eb, HIGH);
delay(70);
digitalWrite(led_eb, LOW);
delay(50);
// wait for 30 milliseconds to see the dimming effect
digitalWrite(led_eb, HIGH);
//encendemos la espalda baja
for (int l=1; l<256; l++){
analogWrite(led_ea, brightness);
// change the brightness for next time through the loop:
brightness = brightness + fadeAmount;
// reverse the direction of the fading at the ends of the fade:
if (brightness == 0 || brightness == 255) {
fadeAmount = -fadeAmount ;
}
// wait for 30 milliseconds to see the dimming effect
delay(20);
}
digitalWrite(led_ea, HIGH);
//PARTE DELANTERA
//el secuenciador se ilumina y parpadea completo dos veces
for (int s = 2; s < 8; s++) {
digitalWrite(s, HIGH);
delay(timersecuencia);
}
delay (timersecuenciaonoff);
for (int s = 2; s < 8; s++) {
digitalWrite(s, LOW);
}
delay (timersecuenciaonoff);
for (int s = 2; s < 8; s++) {
digitalWrite(s, HIGH);
}
delay (timersecuenciaonoff);
for (int s = 2; s < 8; s++) {
digitalWrite(s, LOW);
}
delay (timersecuenciaonoff);
for (int s = 2; s < 8; s++) {
digitalWrite(s, HIGH);
}
delay (timersecuenciaonoff);
//enciende el frontal con parpadeo y blink
digitalWrite(led_front, HIGH);
delay(100);
digitalWrite(led_front, LOW);
delay(50);
digitalWrite(led_front, HIGH);
delay(70);
digitalWrite(led_front, LOW);
delay(50);
for (int j=1; j<256; j++){
analogWrite(led_front, brightness);
// change the brightness for next time through the loop:
brightness = brightness + fadeAmount;
// reverse the direction of the fading at the ends of the fade:
if (brightness == 0 || brightness == 255) {
fadeAmount = -fadeAmount ;
}
// wait for 30 milliseconds to see the dimming effect
delay(20);
}
digitalWrite(led_front, HIGH);
//pasamos al loop apagando el secuenciador para que pueda oscilar
for (int s = 2; s < 8; s++) {
digitalWrite(s, LOW);
}
delay (timersecuenciaonoff);
}
void loop() {
for (int s = 2; s < 8; s++) {
digitalWrite(s, HIGH);
delay(timersecuencia);
}
for (int s = 2; s < 8; s++) {
digitalWrite(s, LOW);
delay(timersecuencia);
}
digitalWrite(led_batblink, HIGH);
delay(timersecuenciaonoff);
digitalWrite(led_batblink, LOW);
}
Y funciona perfectamente… siempre que lo conecte al USB, una vez le alimento por 9V a traves del pin Vin… me hace solo una parte del código, y luego se resetea el arduino y vuelve a empezar…
¿Alguna idea sobre este problema?