Go Down

Topic: array, questo sconosciuto! (Read 438 times) previous topic - next topic

imho

Feb 23, 2013, 11:48 am Last Edit: Feb 23, 2013, 03:31 pm by leo72 Reason: 1
Hello,
vorrei accendere i pin di cicle1 simultaneamente, avete un idea?
Grazie
Code: [Select]

int cicle1 []= {1,5,9};
int Count = 3;

void setup () {
 for (int Pin = 0; Pin < Count; Pin++) {
   pinMode (cicle1 [Pin],OUTPUT);
 
}
}

void loop ()
{
 
 digitalWrite (cicle1, HIGH);  //errore: invalid conversion from int to unit8_t
 delay (1000);
 digitalWrite (cicle1, LOW);  //come faccio accendere tutti i pin di cicle1 simultaneamente?
 delay (1000);
 }

imho

Scusate, mi sono dimenticato il tag code


Code: [Select]



int cicle1 []= {1,5,9};
int Count = 3;

void setup () {
  for (int Pin = 0; Pin < Count; Pin++) {
    pinMode (cicle1 [Pin],OUTPUT);
 
}
}

void loop ()
{
 
  digitalWrite (cicle1, HIGH);  //errore: invalid conversion from int to unit8_t
  delay (1000);
  digitalWrite (cicle1, LOW);  //come faccio accendere tutti i pin di cicle1 simultaneamente?
  delay (1000);
  }



astrobeed


Code: [Select]

  digitalWrite (cicle1, HIGH);  //errore: invalid conversion from int to unit8_t
  delay (1000);
  digitalWrite (cicle1, LOW);  //come faccio accendere tutti i pin di cicle1 simultaneamente?
  delay (1000);



Non puoi passare un array a digitalWrite, consente di manipolare un solo pin per volta, non puoi nemmeno cambiare lo stato simultaneamente a più pin arbitrari se non si trovano sullo stessa porta.
In linea generale, è possibile scrivere/leggere fino a otto pin con una singola istruzione se questi si trovano sulla stessa porta del micro, in caso contrario è necessario accedere singolarmente a tutte le porte interessate.

mancio

Code: [Select]

for (int Pin = 0; Pin < Count; Pin++) digitalWrite(cicle1 [Pin],HIGH);
delay(1000);
for (int Pin = 0; Pin < Count; Pin++) digitalWrite(cicle1 [Pin],LOW);
delay(1000);


facendo una cosa del genere non ti accorgi nemmeno che si accendono uno dopo l'altro..tenendo conto che arduino lavora a 16MHz i led si accendono con un ritardo di qualche microsecondo..quindi quasi contemporaneamente

imho

grazie, con il vs aiuto ho risolto!

Go Up