Controllo on off blynk [RISOLTO]

Ciao a tutti, vi chiedo un aiuto se possibile. penso anche molto semplice. devo realizzare un programma che mi controlla un blynk. Ho un Led che mi lampeggia 4 volte al secondo poi quando entra una condizione il led si spegne per 5 secondi e poi riparte a lampeggiare. Nel momento che il led si spegne vorrei che si attivi un relè. Come posso fare ?

Ho pensato di fare una condizione che mi controlla il tempo tra i lampeggi è se il tempo cambia mi attiva il relè. Però non so come fare la condizione IF

Quindi dovremmo aiutarti a scrivere un If per verificare una condizione che non ci vuoi dire? :o

Scusa, non ho capito la tua domanda. Cosa dovrei dire. Ho solo chiesto se mi potete aiutare a creare una condizione che mi attivi un relè quando un led smette di lampeggiare. Sto cercando di capire qualcosa sugli impulsi. Ma non riesco. :(

Le informazioni che ci dai sono insufficienti per darti una risposta sensata. Ciao Uwe

Si scusa adesso posso dare qualcosa in più. ho realizzato questo :

const int ledPin = 2; // pin assegnato al contatto led
int rele = 9;
int Statoled = 0; // variabile per la lettura del led 
int Statoled_old = 0; // variabile per evitare doppio conteggio

int Conteggio = 0;// variabile che contiene il conteggio delle pulsazioni
unsigned long int TempoStart = 0; // memorizza i  millisecondi dalla
                                 //prima pulsazione conteggiata                                
unsigned long int Tempo = 0; // per conteggiare il tempo trascorso dalla prma pulsazione
unsigned long int TempoMax = 2000;// numero di millisecondi (2 seondi)

void setup() {
    Serial.begin(9600);   //attiva la porta seriale
    pinMode(ledPin, INPUT);// mette in ascolto il pin 2
     pinMode(rele, OUTPUT);
}

//--------------------------------------------
// loop principale
//--------------------------------------------

void loop() 
{
  Statoled = digitalRead(ledPin); // legge il led

  if (Statoled != Statoled_old) // si verifica se è cambiato
  {
    Statoled_old = Statoled;   // se SI si aggiorna lo stato
  
   if (Statoled == HIGH)  // si controlla SE è alto 
    {
      if (Conteggio == 0){ TempoStart =  millis();} 
     
      Conteggio = Conteggio + 1; // si aggiorna il contatore     
      Tempo = ( millis() - TempoStart); // si conteggia il tempo trascorso dallo start conteggio
   
      if (Tempo >=  TempoMax)   // se il tempo trascorso è maggiore o uguale al tempo impostato
                                     // si eseguono i calcoli e la stampa della velocità
          {
          int deltaTempo = ( Tempo/1000.0); // si trasforma in secondi
           //--------------------------------------
           // stampa i valori sul monitor
           //---------------------------------------
           Serial.print("Conteggio = ");
           Serial.println(deltaTempo);
           Conteggio = 0; // azzeriamo il conteggio per nuova lettura
           delay(100);// attesa per altra lettura         
          }
          
          
    }
  }
  if (Statoled == LOW )
            {
            digitalWrite (rele, HIGH);   
            }
}

Perchè se Statoled è LOW non mi attiva il relè ?

Perchè probabilmente su quel pin non c'è mai un livello LOW.

Bhe, a livello elettronico si, perchè se tolgo il contatto al led mi va a low

Scusa, ma nel primo post mi era sfuggita la parte del relé, e non capivo cosa cavolo volessi fare :D.

Comunque non si è ancora capito come leggi il led: sei collegato in parallelo? Hai un fotoresistore?

Metti anche uno schema elettrico del progetto.

Lo schema è semplicissimo, ho un Arduino UNO che mi simula il blynk sul 13 .E una MEGA che mi attiva il relè. Allora ho preso il pin 13 di Arduino UNO e lo porto al pin 3 di Arduino Mega, I GND sono Comuni. L'uscita 4 di Arduino Mega è il relè. Ora quello che voglio e che quando il blynk su Arduino UNO si ferma il relè sulla Mega si attivi.

ARDUINO UNO ARDUINO MEGA

PIN 13---------------------------------> PIN 3 GND ---------------------------------> GND ----------------------------------> GND RELE PIN 4--------------------------------- > + RELE

Risolto diversamente

int rel = 4;
int pin = 3;
unsigned long duration;

void setup()
{
 Serial.begin(9600);
  pinMode(pin, INPUT);
  pinMode(rel, OUTPUT);
}

void loop()
{
  duration = pulseIn(pin, HIGH);
  Serial.print(" durata : ");
  Serial.println(duration);
  millis();
  if (duration == 0) {
    digitalWrite (rel, HIGH);
  }
  else 
  if (duration > 0)
  {
    digitalWrite (rel, LOW);
  }
}

Grazie a tutti.