accensione relè

Buonasera a tutti avrei un quesito da risolvere : lo sketch è funzionante ma vorrei capire il motivo del funzionamento automatico :mi spiego meglio , ho inserito un pulsante al momento di pigiare dovrebbe accendere il primo relè e dopo un certo tempo spegnere il primo e accendere il secondo e cosi via ma tutto questo avviene accendendo arduino.Cioè non serve pigiare il pulsante parte in automatico.Spero di essere stato esaustivo Vorrei sapere dove c'è l'inghippo e se mi potete aiutare a risolvere.Grazie
allego sketch

musica_effetti_con_millis.ino (9.42 KB)

Verifica se i tuoi relé si accendono quando i pin corrispondenti sono LOW e si spengono quando sono HIGH, di solito è così, ma non è detto.

si, i led corrispondenti dei relè si accendono quando è LOW e si spengono quando è HIGH.
Ripeto quando accendo arduino di solito dovrei pigiare il pulsante e far accendere il primo led invece si accende nel momento in cui la scheda arduino entra in funzione.L'altro problema è quando il susseguirsi delle accensione dei relè finisce non posso ricominciare la seguenza

Buonasera ragazzi sono un neonato del forum credo che voi mi possiate dare una mano il problema è uno ho un arduino uno r3 una schild ethernet w510 le ho incastrate caricato un codice per l accensione dei relè da rete ma il mio modem non riconosce la ethernet nn si accende la luce della porta sbaglio qualcosa ?

@FrankyLeft: ... la vuoi piantare di scrivere ovunque ?

Comincia con il presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione) e a leggere con attenzione il REGOLAMENTO ...

... scoprirai che il cross-posting è PROIBITO. Se nessuno ti risponde, prova a chiederti perché, invece di scrivere in tutte le aree (... magari è perché per la gente non ha la palla di vetro e tu non dai sufficienti informazioni) !!!

E comunque, invece scrivere in thread dove si parla di tutt'altro, apri un topic con il tuo problema dando TUTTI i dettagli!

Guglielmo

In attesa di una vostra risposta ho modificato una parte dello sketch utilizzando il telecomando per l'accensione del primo relè mentre i successivi relè si accendono dopo 21sec il secondo spegnendo il primo,dopo 136 sec il terzo spegnendo il secondo dopo 156 sec il quarto spegnendo il terzo dopo 263sec spegne il quarto. Fin qui tutto bene il problema è se voglio di nuovo iniziare il ciclo . Dal monitor seriale vedo il codice del telecomando ma non accende il primo relè.questo è la parte dello sketch inquisito :

if ( test == 16773645||test==82837504)
   { // 8 melicone
   Serial.println (test);
   digitalWrite (RELAY_PIN1,LOW);
 }
  time=millis();  
 
 if ( time>time_relay_pin1+21950 )
   { 
     Serial.println (time);
   digitalWrite (RELAY_PIN1,HIGH);
   digitalWrite (RELAY_PIN2,LOW);
   
   time_relay_pin1=0;
 }
 if ( time>time_relay_pin2+21950+114590)
   { 
     Serial.println (time);
   digitalWrite (RELAY_PIN2,HIGH);
   digitalWrite (RELAY_PIN3,LOW);   
   time_relay_pin2=0;
 }
 if ( time>time_relay_pin3+21950+114590+20450 )
   { 
     Serial.println (time);
   digitalWrite (RELAY_PIN3,HIGH);
   digitalWrite (RELAY_PIN4,LOW);
   
   time_relay_pin3=0;
 }
 if ( time>time_relay_pin4+21950+114590+20450+102250  )
   { 
     Serial.println (time);
   digitalWrite (RELAY_PIN4,HIGH);
   time_relay_pin4=0;   
 }
 }
 }

Gradirei il vostro intervento per capire dove c'è l'errore e se è possibile sapere come visualizzare il tempo trascorso tra una accensione e l'altra. Io ho scritto Serial.println(time) non so se è corretto.
Grazie

In attesa ho cercato in rete penso che il problema sia il resettare millis ho letto WatchDog Timer ma con questa funzione ritardo max 2 sec Io vorrei ritardare almeno di 320 min . Come potrei fare o dove posso attingere informazioni.Grazie

so che avete molto lavoro ma una risposta negativa o affermativa me lo merito.Grazie

ho tollerato che estranei entrano nel mio topic come questo FrankyLeft ma non tollero che in un forum di specialisti e professionisti si permettono di eludere la mia richiesta di aiuto e di informazione,è mancanza di professionalità. Grazie

Buona sera a tutti , spero che qualcuno mi dia una risposta poichè fino ad ora non si è degnato nessuno di un accenno al mio problema. Comunque nel frattempo ho cercato di modificare lo sketch non usando millis() ma delay. Ho un arduino mega due schede relè con quattro relè ciascuno e devo comandare delle strisce di led da 2 metri ciascuno. La scheda arduino è alimentato da un alimentatore 12 volt 2 ampere.
Il problema avviene quando finisce il ciclo delle varie accensioni e spegnimento dei relè e dovrebbe ricontinuare il loop.
invece si spengono e si accendono solo i primi relè.
Ho pensato che l'alimentatore di 2 ampere è insufficente ma arduino deve solo alimentare gli otto relè perchè le strisce led hanno l'alimentazione separata.
Le schede relè sono Yurobot 4 relay acquistate in internet.
Allego lo sketch

int RELAY_PIN1 = 32;
int RELAY_PIN2 = 24;
int RELAY_PIN3 = 26;
int RELAY_PIN4 = 28;
int RELAY_PIN5 = 30;
int RELAY_PIN6 = 34;

void setup(void) {
 Serial.begin(9600);
pinMode (RELAY_PIN1,OUTPUT);
 pinMode (RELAY_PIN2,OUTPUT);
 pinMode (RELAY_PIN3,OUTPUT);
 pinMode (RELAY_PIN4,OUTPUT);
 pinMode (RELAY_PIN5,OUTPUT);
 pinMode (RELAY_PIN6,OUTPUT);

 
 digitalWrite (RELAY_PIN1,HIGH);
 digitalWrite (RELAY_PIN2,HIGH);
 digitalWrite (RELAY_PIN3,HIGH);
 digitalWrite (RELAY_PIN4,HIGH);
 digitalWrite (RELAY_PIN5,HIGH);
 digitalWrite (RELAY_PIN6,HIGH);
}

void loop(void) {
delay(5000); 
   digitalWrite (RELAY_PIN3,LOW);
   digitalWrite (RELAY_PIN4,LOW);
   delay(25000);
digitalWrite (RELAY_PIN2,LOW);
   digitalWrite (RELAY_PIN5,LOW);
   delay(120000);
digitalWrite (RELAY_PIN2,HIGH);
   digitalWrite (RELAY_PIN5,HIGH);
   digitalWrite (RELAY_PIN1,LOW);
   delay(20000);
 
   digitalWrite (RELAY_PIN1,HIGH);
   digitalWrite (RELAY_PIN6,LOW);
  delay(130000);
digitalWrite (RELAY_PIN4,HIGH);
   digitalWrite (RELAY_PIN3,HIGH);
   digitalWrite (RELAY_PIN6,HIGH);
delay(5000);
}

Spero che qualcuno ha la bontà di rispondermi.
Grazie

Le schede relé le alimenti da Arduino o direttamente dall'alimentatore?

no,sono alimentate da arduino

le schede rele funzionano a 5 volt

Il problema avviene quando finisce il ciclo delle varie accensioni e spegnimento dei relè e dovrebbe ricontinuare il loop.
invece si spengono e si accendono solo i primi relè.

Questo succede perche' Arduino si resetta

Ho pensato che l'alimentatore di 2 ampere è insufficente ma arduino deve solo alimentare gli otto relè

Non e' un problema di potenza dell' alimentatore, ma del fatto che il regolatore a bordo di Arduino ( quello che trasforma i 12V in 5V ) non ce la fa' ad alimentare anche la scheda relè.
L'unica soluzione è alimentare le schede relè con un alimentatore esterno da 5V

ho provato ad alimentare i rele con un alimentatore esterno ma arduino non da nessun impulso cioè non eccita nessun rele ho provato a unire la massa dell'alimentatore esterno con la massa di arduino tutti i relè restano accesi. Non so se è un problema di collegamento perchè i relè devono avere l'impulso da arduino singolarmente quindi alimentando la scheda esternamente come fa arduino a mandare il comando ad accendere il primo relè poi il secondo ecc.Spero di essere stato esaustivo Grazie

hai un link di codeste schede relè ?

http://www.robotshop.com/en/4-channel-5v-relay-module.html#Specifications questo è il link

devi per forza collegarla nel seguente modo

Ho già fatto quel collegamento ma come ho accennato prima restano accesi tutti i quattro relè, forse conviene usare un regolatore di tensione tipo 7805 con dissipatore DO220 in modo da stabilizzare la tensione del regolatore di arduino? cosa mi consigli .Grazie

e dove lo metteresti " un regolatore di tensione tipo 7805 " ?
Hai o no un alimentatore esterno da 5V ? Per alimentare solo le schede relè