secondo progetto rilevazione fulmini

salve

Volevo provare ad realizzare anche questo progetto per rilevare i fulmini , ho gia assemblato tutto il materiale ed funziona , però ho biasogno del vostro aiuto per cercare di capire perche il rele non si attiva quando si accende il led rosso di allarme !

( il collegameto è corretto ed configurato sul pin9)

Il codice del relè l’abbiamo aggiunto noi , ma probabile che abbiamo fatto qualche errore di compilazione

secondo voi dove starà il problema ?

( lo metto come allegato perche è troppo lungo )

grazie per l’aiuto

codiceoggi.ino (12.2 KB)

Prova intanto a cambiare la riga 90 così

digitalWrite(relayPin, LOW);

Non so se risolverà.

Ciao,
P.

Un'altra cosa a caso: riga 113: delay(3); è di 3ms, non 3 decimi di secondo!
Inoltre: alla riga 175 davvero si deve bloccare TUTTO per 30 secondi?...

[OT]
Colgo l'occasione per ricordare che la "d eufonica" (eufonica: per un bel suono) va usata solo tra due lettere uguali di parole contigue e non va usata se rende difficile la pronuncia o, addirittura, se genera fraintendimenti.

Esempi:

"ho assemblato l'apparecchio ed è funzionante".

In questi casi, invece, non ci va:
"ho già assemblato tutto il materiale ed e funziona";
"il collegamento è corretto ed e configurato sul pin9".

Qui non ci va e, in più, complica la pronuncia:
"il circuito è stato modificato ed e adattato alle esigenze".

Inoltre, se scriviamo in maniera piacevole da leggere e ben comprensibile, pur ognuno nei limiti delle proprie conoscenze della lingua italiana per cultura o nazionalità, semplifichiamo il lavoro a chi desidera aiutare e lo invogliamo a farlo senza dover faticare per interpretare cose poco chiare.

Grazie
Gianluca

Datman:
Un’altra cosa a caso: riga 113: delay(3); è di 3ms, non 3 decimi di secondo!
Inoltre: alla riga 175 davvero si deve bloccare TUTTO per 30 secondi?..

si esatto

ho provato il codice ed appena lo accendo che fa il test il rele scatta , ma poi quando è ora durante la rilevazione si accende solo il led rosso ,

potrebbe essere potenza troppo bassa ed non è in grado di azionarlo ?

ho misurato i volt sul pin del vcc e gnd di alimentazione del rele ed ne ho 3,4volt

ci deve essere un errore in questa sezione :

              // l'informazione del trend viene usata per costruire un contatore ($warning) che si incrementa ogni volta che esso cresce. In caso contrario viene posto a zero. Questo limita i falsi positivi dovuti a variazioni del rumore ambientale 
              if (trend=="UP") { warning=warning+1; }
              else { warning=0; }


              // il valore del contatore $warning viene comparato con quello di soglia, se e' superiore o uguale viene triggerato l'allarme, e la variabile $warning_status viene caricata con la stringa che apparira' sul display ("ALA" o "OK!")
              // per azionare l'allarme inoltre devono essere passati i minunti necessari alla calibrazione, cosi' da evitare allarmi nei primi minuti di funzionamento, quando l'array e' ancora vuoto
              if ((warning>=warning_threshold) && (calibrated<1)) { 
              warning_status="ALARM"; 
              digitalWrite(alarmPin, HIGH);
              digitalWrite(relayPin, HIGH);
              }
              else { warning_status="OK!"; 
              digitalWrite(alarmPin, LOW);
              digitalWrite(relayPin, LOW);
              delay(30000);

Uno schema elettrico e una foto?

Ciao,
P.

Come lo piloti il relè?
Mica direttamente da un pin?

il rele l’ho collegato al pin 9
metto lo schema (improvvisato)

IMG_20120414_134042.jpg

71oYyAoyO3L.SL1500.jpg

Dicci esattamente a quali pin della scheda relè hai collegato i 5V, il GND e il pin 9 dell'Arduino. E se hai lasciato il ponticello come in foto.

Ciao,
P.

pgiagno:
Dicci esattamente a quali pin della scheda relè hai collegato i 5V, il GND e il pin 9 dell’Arduino. E se hai lasciato il ponticello come in foto.

Ciao,
P.

c’è l’ho fatta non erano i collegamenti ma il codice a non dare segnale , è possibile creare una variabile ?
vorrei che il rele si spegnesse quando l’allarme rientra ( come fa ora ) , o in caso al massimo di un detrminato tempo

 // il valore del contatore $warning viene comparato con quello di soglia, se e' superiore o uguale viene triggerato l'allarme, e la variabile $warning_status viene caricata con la stringa che apparira' sul display ("ALA" o "OK!")
              // per azionare l'allarme inoltre devono essere passati i minunti necessari alla calibrazione, cosi' da evitare allarmi nei primi minuti di funzionamento, quando l'array e' ancora vuoto
              if ((warning>=warning_threshold) && (calibrated<1)) { 
              warning_status="ALA"; 
              digitalWrite(alarmPin, HIGH);
              digitalWrite(relayPin, LOW);
              
              
              }
              else { warning_status="OK!"; 
              digitalWrite(alarmPin, LOW);
              digitalWrite(relayPin, HIGH);
              
             
              }

nessun aiuto per fare questa piccola variante ! :frowning:
cosi termino il progetto.