Pages: [1]   Go Down
Author Topic: array, questo sconosciuto!  (Read 371 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 42
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello,
vorrei accendere i pin di cicle1 simultaneamente, avete un idea?
Grazie
Code:
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);
  }
« Last Edit: February 23, 2013, 09:31:03 am by leo72 » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 42
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Scusate, mi sono dimenticato il tag code


Code:


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);
  }


Logged

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9191
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
  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.
Logged

Fidenza (PR)
Offline Offline
Full Member
***
Karma: 3
Posts: 143
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
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
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 42
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

grazie, con il vs aiuto ho risolto!
Logged

Pages: [1]   Go Up
Jump to: