Gracias por las respuestas!
Pasa por este enlace y lee las normas del foro por favor. Mira el punto 7 Como insertar códigos
siento lo del codigo, ya esta arreglado!
Muchos módulos de relés funcionan con lógica inversa (se encienden con low y se apagan con high).
Ostras! pues si que el problema era que se encienden con low y se apagan con high 
Que es o de donde sacaste la librería <Metro.h>
Pues la he encontrado por internet, es para controlar los tiempos, es que con el millis este no me aclaraba
cuando es mayor a 2.15 actuas con el estado de ledstate y luego los pones en LOW?
Porque la idea es que cuando baja de cierto voltaje se apague todo si o si
Bueno, he retocado un poco el codigo;
#include <Metro.h>
#include <Wire.h>
Metro serialMetro = Metro(2000);
int rele = 2;
int rele2 = 6;
int estadorele = LOW;
int valor;
float voltage;
float readBattery(){
voltage = analogRead(3);
return voltage;
}
void setup() {
pinMode(rele, OUTPUT);
pinMode(rele2, OUTPUT);
pinMode(3,INPUT);
Serial.begin(9600);
}
void loop() {
Serial.println (voltage);
delay(300);
if (readBattery() > 400){
if (serialMetro.check() == 1) {
if (estadorele == LOW) {
estadorele = HIGH;}
else {
estadorele = LOW;}
}
digitalWrite(rele, estadorele);
digitalWrite(rele2, !estadorele);
}
else{
digitalWrite(rele, HIGH);
digitalWrite(rele2, HIGH);
}
}
ahora mirare esto de la histeresis esta a ver, tambien estoy intentando averiguar como hacer para que me diga en la pantalla lcd quien esta en marcha, si el rele 1 o el 2. Se visualizar en el lcd lo que quiera mas o menos pero estoy intentando ver en que parte del codigo ponerlo.
Victor