Temporizador de encendido de leds

AlexLPD:
Lo que tu buscas esta en un ejemplo: dentro de la IDE de Arduino, BlinkWithoutDelay.

Eso lo se pero no consigo implementarlo pero consegui que se apague cuando conteo llega a 6000, pero no consigo que se repita de nuevo cuando pulso, solo puedo cuando lo reinicio.
Yo hago que cuando llega a mas de 6000 apague el led y resetee la variable conteo, lo hace porque lo comprobe pero no vuelve a contar al darle al boton. No se si es por las variables de estado o salida, el codigo lo dejo para que lo veais:

#define boton 2
int led = 6;
int leds = 3;

int estado = 0;
int estadoAN = 0;
int salida = 0;
int salidaAN;

unsigned long conteo;
unsigned long tempOn = 6000;


void setup() {
  // put your setup code here, to run once:
  pinMode(boton, INPUT_PULLUP);
  pinMode(led, OUTPUT);
  pinMode(leds, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  estado = digitalRead(boton);

  if((estado == 1)&&(estadoAN == 0)){
    salida = 1 - salida;
  }

  estadoAN = estado;

  if(salida == 0){
    digitalWrite(led, HIGH);
    digitalWrite(leds, HIGH);
    conteo = millis();
    if ((conteo >= tempOn)){
      digitalWrite(led, LOW);
      digitalWrite(leds, LOW);
      conteo = 0;
      salida = 1 - salida;
    }else{
      digitalWrite(led, HIGH);
      digitalWrite(leds, HIGH);
    }
  }
  else{
    digitalWrite(led, LOW);
    digitalWrite(leds, LOW);
  }
  
}