Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Accensione 8 rele' usando array

Progetti, interfacciamento, discussioni varie su questa piattaforma.

Moderatori: Foto UtenteWALTERmwp, Foto Utentexyz

0
voti

[1] Accensione 8 rele' usando array

Messaggioda Foto Utentepapa10 » 7 dic 2016, 17:12

Dovrei accendere progressivamente 8 rele' usando gli array,purtroppo mi da' errore.Avrei bisogno di aiuto grazie.Il codice e' questo:
Codice: Seleziona tutto
int  Rele[]={1,2,3,4,5,6,7,8};

void setup() {
  for(int indice=0;indice<8;indice++);
  {pinMode( Rele[],OUTPUT);}
}

void loop() {
for(int indice=0;indice<8;indice++);
{digitalWrite( Rele[],HIGH);
dela(500);
digitalWrite( Rele[],LOW);
}
}
Avatar utente
Foto Utentepapa10
71 1 3 4
Frequentatore
Frequentatore
 
Messaggi: 248
Iscritto il: 20 ott 2011, 17:11

1
voti

[2] Re: Accensione 8 rele' usando array

Messaggioda Foto UtenteWALTERmwp » 7 dic 2016, 17:16

Ma non si usa l'indice
Codice: Seleziona tutto
Rele[ ? ]
?

Saluti
W - U.H.F.
Avatar utente
Foto UtenteWALTERmwp
30,2k 4 8 13
G.Master EY
G.Master EY
 
Messaggi: 8982
Iscritto il: 17 lug 2010, 18:42
Località: le 4 del mattino

0
voti

[3] Re: Accensione 8 rele' usando array

Messaggioda Foto Utentealev » 8 dic 2016, 9:15

papa10 ha scritto:purtroppo mi da' errore

Quale errore :?:
Avatar utente
Foto Utentealev
5.993 2 9 12
free expert
 
Messaggi: 6281
Iscritto il: 19 lug 2010, 14:38
Località: Altrove

2
voti

[4] Re: Accensione 8 rele' usando array

Messaggioda Foto Utentesolideo » 8 dic 2016, 9:16

pinMode( Rele[],OUTPUT);

Codice: Seleziona tutto
pinMode( Rele[indice],OUTPUT);
gli devi pur dire a quale posizione dell'array vuoi attivare l'uscita.
Questo lo devi ricopiare anche nel loop.
Elimina i punti e virgola dopo le parentesi tonde dei FOR.
for(int indice=0;indice<8;indice++);

Codice: Seleziona tutto
for(int indice=0;indice<8;indice++)

Credo sia un errore di battitura ma
dela
è sbagliato
Codice: Seleziona tutto
delay
Avatar utente
Foto Utentesolideo
100 1 6
New entry
New entry
 
Messaggi: 82
Iscritto il: 11 lug 2014, 6:20

0
voti

[5] Re: Accensione 8 rele' usando array

Messaggioda Foto Utentepapa10 » 8 dic 2016, 11:57

ecco ho modificato e va bene,pero' le luci dei rele' e gli stessi rele', non si accendono progressivamente ma a caso.
Ecco il codice modificato come dai vostri suggerimenti:
Codice: Seleziona tutto
int Rele[] = {1, 2, 3, 4, 5, 6, 7, 8};


void setup() {
  for (int indice = 0; indice < 8; indice++)

  {
    pinMode( Rele[indice], OUTPUT);
  }
}

void loop() {
  for (int indice = 0; indice < 8; indice++)
  { digitalWrite( Rele[indice], HIGH);
    delay(500);
    digitalWrite( Rele[indice], LOW);
  }
}
Avatar utente
Foto Utentepapa10
71 1 3 4
Frequentatore
Frequentatore
 
Messaggi: 248
Iscritto il: 20 ott 2011, 17:11

0
voti

[6] Re: Accensione 8 rele' usando array

Messaggioda Foto UtenteWALTERmwp » 8 dic 2016, 13:35

papa10 ha scritto:ecco ho modificato e va bene,pero' le luci dei rele' e gli stessi rele', non si accendono progressivamente ma a caso.(...)
l'effetto che vorresti ottenere lo si può intuire ma forse è meglio se ci scrivi quello che effettivamente ti aspetti da quel codice, così poi lo si sistema insieme per benino.

Saluti
W - U.H.F.
Avatar utente
Foto UtenteWALTERmwp
30,2k 4 8 13
G.Master EY
G.Master EY
 
Messaggi: 8982
Iscritto il: 17 lug 2010, 18:42
Località: le 4 del mattino

0
voti

[7] Re: Accensione 8 rele' usando array

Messaggioda Foto Utentebalduzz » 8 dic 2016, 13:47

Secondo me devi aggiungere un delay alla fine del ciclo for dopo il digitalwrite LOW
Avatar utente
Foto Utentebalduzz
1.541 1 4 7
Expert
Expert
 
Messaggi: 642
Iscritto il: 6 ott 2015, 9:59
Località: Brescia

0
voti

[8] Re: Accensione 8 rele' usando array

Messaggioda Foto Utentexyz » 8 dic 2016, 13:54

Attento anche alla mappatura dei pin usata dalla libreria di Arduino. I numeri presenti nell'array devono coincidere con il collegamento (dipende dal micro-controllore usato da Arduino):

https://www.arduino.cc/en/Hacking/PinMapping168
Avatar utente
Foto Utentexyz
6.864 2 4 6
G.Master EY
G.Master EY
 
Messaggi: 1778
Iscritto il: 5 dic 2009, 18:37
Località: Italy Turin

0
voti

[9] Re: Accensione 8 rele' usando array

Messaggioda Foto Utentesolideo » 8 dic 2016, 14:32

int Rele[] = {1, 2, 3, 4, 5, 6, 7, 8};

Questo vuol dire che i Relè sono collegati dal pin digitale 1 al pin digital 8 della scheda di arduino.
Altra cosa spero che non comadi i relè direttamente dai pin di arduino, perché tenderesti a sovraccaricare l'uscita di Arduino, la quale puo reggere max 40mA da datasheet .
E come ti hanno suggerito metti un delay dopo il LOW.
Avatar utente
Foto Utentesolideo
100 1 6
New entry
New entry
 
Messaggi: 82
Iscritto il: 11 lug 2014, 6:20

0
voti

[10] Re: Accensione 8 rele' usando array

Messaggioda Foto UtenteWALTERmwp » 8 dic 2016, 14:52

solideo ha scritto:Questo vuol dire che i Relè sono collegati dal pin digitale 1 al pin digital 8 della scheda di arduino.(...)
mi permetto di aggiungere un'osservazione a questo commento.
Tu che lo hai riportato sai cosa intendi ma lo OP, che mi pare abbia "poca confidenza" con la sintassi, potrebbe facilmente equivocare.
Più adatto forse sarebbe scrivere che questa ...
Codice: Seleziona tutto
int Rele[] = {1, 2, 3, 4, 5, 6, 7, 8};
è la dichiarazione di una variabile (array) e il suo utilizzo (considerati anche i valori scelti per la sua inizializzazione, e cioè in numeri 1, 2, 3, ...), come parametro, consente di controllare i relè presumibilmente interfacciati con le uscite da 1 a 8.

Saluti
W - U.H.F.
Avatar utente
Foto UtenteWALTERmwp
30,2k 4 8 13
G.Master EY
G.Master EY
 
Messaggi: 8982
Iscritto il: 17 lug 2010, 18:42
Località: le 4 del mattino

Prossimo

Torna a Arduino

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti