Intervallometro per time lapse

Ok, devo essere io che sbaglio qualcosa ma non so che cosa....mmmm.... ho fatto esattamente tutto come mi avete detto e a quanto vedo è un progetto abbastanza banale e le istruzioni sono minime, eppure non funziona... mi spiego meglio.. continua a usare un solo intervallo di tempo e non lo cambia al variare dello stato del pin di input.
Ho anche provato a usare soltanto due pin di output ognuno con due tempi di "blink" diversi, ma niente, associa il primo tempo che legge anche al secondo pin... dove sbaglio?

in teoria dovrebbe funzionare...
prova a postare lo sketch che stai usando.

int m1=8;
int m2=9;

void setup()
{
  pinMode(m1, OUTPUT);
  pinMode(m2, OUTPUT);
}

void loop()
{
    digitalWrite(m2,HIGH);
    delay(100);
    digitalWrite(m2,LOW);
    delay(100);
    digitalWrite(m1,HIGH);
    delay(100);
    digitalWrite(m1,LOW);
    delay(1000);
    }

Più semplice di cosi...eppure lampeggia in ogni caso solo a una frequenza...

ok ce l'ho fatta finalmente!! gestisco i due tempi da due pin diversi collegati ad uno switch, a sua volta collegato al modulo relè.
i delay non andavano bene e così ho gestito tutto con i millis, con ottimi risultati! Allego il codice qui sotto:

unsigned long pmillis = 0;
unsigned long pmillis2 = 0;
const unsigned long timeOn = 500;  //tempo on modalita1
const unsigned long timeOff = 3000;  //tempo off modalità1
const unsigned long timeOn2 = 500;  // tempo on modalità2
const unsigned long timeOff2 = 1000;  // tempo off modalita 2

int led_level = LOW;
int led2_level = LOW;
int nextEventTime = 0;
int nextEventTime2 = 0;

void setup() {
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
}

void loop() {
  if (millis() - pmillis >= nextEventTime) {
    pmillis = millis ();
    
    if (led_level) {
      nextEventTime = timeOff;
    } else {
      nextEventTime = timeOn;
    }
    led_level = !led_level;
    
    digitalWrite (8, led_level);
  }
  if (millis() - pmillis2 >= nextEventTime2) {
    pmillis2 = millis ();
    
    if (led2_level) {
      nextEventTime2 = timeOff2;
    } else {
      nextEventTime2 = timeOn2;
    }
    led2_level = !led2_level;
    
    digitalWrite (9, led2_level);
  }
}