Go Down

Topic: Errore nella sketch... chi mi aiuta?? (Read 684 times) previous topic - next topic

Enermax

Ciao a tutti oggi è arrivato l'Arduino Uno rev3 e provando a smanettare con gli esempi e modificandoli non ho avuto problemi ma adesso sto realizzando un incrocio con 4 semafori, con la simulazione realistica però quando faccio verifica mi da questi erròri:

Quote

Semaforo_2vie.ino:13:5: error: invalid suffix "red" on integer constant
Semaforo_2vie.ino:14:5: error: invalid suffix "yel" on integer constant
Semaforo_2vie.ino:15:5: error: invalid suffix "gre" on integer constant
Semaforo_2vie.ino:17:5: error: invalid suffix "red" on integer constant
Semaforo_2vie.ino:18:5: error: invalid suffix "yel" on integer constant
Semaforo_2vie.ino:19:5: error: invalid suffix "gre" on integer constant
Semaforo_2vie.ino:21:5: error: invalid suffix "red" on integer constant
Semaforo_2vie.ino:22:5: error: invalid suffix "yel" on integer constant
Semaforo_2vie.ino:23:5: error: invalid suffix "gre" on integer constant
Semaforo_2vie.ino:25:5: error: invalid suffix "red" on integer constant
Semaforo_2vie.ino:26:5: error: invalid suffix "yel" on integer constant
Semaforo_2vie.ino:27:5: error: invalid suffix "gre" on integer constant
Semaforo_2vie.ino:30:10: error: invalid suffix "red" on integer constant
Semaforo_2vie.ino:31:10: error: invalid suffix "yel" on integer constant
Semaforo_2vie.ino:32:10: error: invalid suffix "gre" on integer constant
Semaforo_2vie.ino:33:10: error: invalid suffix "red" on integer constant
Semaforo_2vie.ino:34:10: error: invalid suffix "yel" on integer constant
Semaforo_2vie.ino:35:10: error: invalid suffix "gre" on integer constant
Semaforo_2vie.ino:36:10: error: invalid suffix "red" on integer constant
Semaforo_2vie.ino:37:10: error: invalid suffix "yel" on integer constant
Semaforo_2vie.ino:38:10: error: invalid suffix "gre" on integer constant
Semaforo_2vie.ino:39:10: error: invalid suffix "red" on integer constant
Semaforo_2vie.ino:40:10: error: invalid suffix "yel" on integer constant
Semaforo_2vie.ino:41:10: error: invalid suffix "gre" on integer constant
Semaforo_2vie.ino:46:15: error: invalid suffix "red" on integer constant
Semaforo_2vie.ino:47:15: error: invalid suffix "red" on integer constant
Semaforo_2vie.ino:48:15: error: invalid suffix "gre" on integer constant
Semaforo_2vie.ino:49:15: error: invalid suffix "gre" on integer constant
Semaforo_2vie.ino:51:15: error: invalid suffix "gre" on integer constant
Semaforo_2vie.ino:52:15: error: invalid suffix "gre" on integer constant
Semaforo_2vie.ino:54:15: error: invalid suffix "yel" on integer constant
Semaforo_2vie.ino:55:15: error: invalid suffix "yel" on integer constant
Semaforo_2vie.ino:57:15: error: invalid suffix "yel" on integer constant
Semaforo_2vie.ino:58:15: error: invalid suffix "yel" on integer constant
Semaforo_2vie.ino:60:15: error: invalid suffix "red" on integer constant
Semaforo_2vie.ino:61:15: error: invalid suffix "red" on integer constant
Semaforo_2vie.ino:63:15: error: invalid suffix "red" on integer constant
Semaforo_2vie.ino:64:15: error: invalid suffix "red" on integer constant
Semaforo_2vie.ino:66:15: error: invalid suffix "gre" on integer constant
Semaforo_2vie.ino:67:15: error: invalid suffix "gre" on integer constant
Semaforo_2vie.ino:69:15: error: invalid suffix "gre" on integer constant
Semaforo_2vie.ino:70:15: error: invalid suffix "gre" on integer constant
Semaforo_2vie.ino:72:15: error: invalid suffix "yel" on integer constant
Semaforo_2vie.ino:73:15: error: invalid suffix "yel" on integer constant
Semaforo_2vie.ino:75:15: error: invalid suffix "yel" on integer constant
Semaforo_2vie.ino:76:15: error: invalid suffix "yel" on integer constant
Semaforo_2vie.ino:78:15: error: invalid suffix "red" on integer constant
Semaforo_2vie.ino:79:15: error: invalid suffix "red" on integer constant
Semaforo_2vie:13: error: expected unqualified-id before numeric constant
Semaforo_2vie:14: error: expected unqualified-id before numeric constant
Semaforo_2vie:15: error: expected unqualified-id before numeric constant
Semaforo_2vie:17: error: expected unqualified-id before numeric constant
Semaforo_2vie:18: error: expected unqualified-id before numeric constant
Semaforo_2vie:19: error: expected unqualified-id before numeric constant
Semaforo_2vie:21: error: expected unqualified-id before numeric constant
Semaforo_2vie:22: error: expected unqualified-id before numeric constant
Semaforo_2vie:23: error: expected unqualified-id before numeric constant
Semaforo_2vie:25: error: expected unqualified-id before numeric constant
Semaforo_2vie:26: error: expected unqualified-id before numeric constant
Semaforo_2vie:27: error: expected unqualified-id before numeric constant


Ecco la sketch che sto scrivendo (non è finita):
Quote

/* ***SEMAFORO INCROCIO: 2 VIE***

Elenco materiale:
4led rossi
4led gialli
4led verdi
12resistenze 220ohm


*/

//Semaforo 1 nord
int 1red = 2;
int 1yel = 3;
int 1gre = 4;
//Semaforo 3 sud
int 3red = 5;
int 3yel = 6;
int 3gre = 7;
//Semaforo 2 est
int 2red = 8;
int 2yel = 9;
int 2gre = 10;
//Semaforo 4 ovest
int 4red = 11;
int 4yel = 12;
int 4gre = 13;

void setup() {
pinMode(1red, OUTPUT);
pinMode(1yel, OUTPUT);
pinMode(1gre, OUTPUT);
pinMode(3red, OUTPUT);
pinMode(3yel, OUTPUT);
pinMode(3gre, OUTPUT);
pinMode(2red, OUTPUT);
pinMode(2yel, OUTPUT);
pinMode(2gre, OUTPUT);
pinMode(4red, OUTPUT);
pinMode(4yel, OUTPUT);
pinMode(4gre, OUTPUT);

}

void loop() {
digitalWrite(1red, HIGH);
digitalWrite(3red, HIGH);
digitalWrite(2gre, HIGH);
digitalWrite(4gre, HIGH);
delay(5000);
digitalWrite(2gre, LOW);
digitalWrite(4gre, LOW);
delay(1);
digitalWrite(2yel, HIGH);
digitalWrite(4yel, HIGH);
delay(2000);
digitalWrite(2yel, LOW);
digitalWrite(4yel, LOW);
delay(1);
digitalWrite(2red, HIGH);
digitalWrite(4red, HIGH);
delay(1000);
digitalWrite(1red, LOW);
digitalWrite(3red, LOW);
delay(1);
digitalWrite(1gre, HIGH);
digitalWrite(3gre, HIGH);
delay(5000);
digitalWrite(1gre, LOW);
digitalWrite(3gre, LOW);
  delay(1);
digitalWrite(1yel, HIGH);
digitalWrite(3yel, HIGH);
delay(2000);
digitalWrite(1yel, LOW);
digitalWrite(3yel, LOW);
delay(1);
digitalWrite(1red, LOW);
digitalWrite(3red, LOW);
delay(1);


}


Mi sapreste dire cos'ho sbagliato???

Grazie

pablos

Non puoi nominare le variabili iniziando con un numero

byte red_1 = 2;
byte yel_1 = 3;
byte gre_1 = 4;

sostituisci int con byte
no comment

pelletta

Fa questa prova, cambia i nomi dei pin. Non farli iniziare con un numero, per distinguerli il numero mettilo alla fine

1red ---> red1
2gre ---> gre2
...
...

edit:
@pablos  mi hai anticipato allora aggiungo un'altra cosa:
aggiungi anche "const" prima delle vaiabili

const byte red_1 = 2;

;)

Enermax

grazie mille ragazzi!!!

adesso mi fate venire dei dubbi...

devo mettere

Quote

int red1=2
o
int cost red1=2
oppure
contest byte red1=2


Cosa dovrebbe cambiare??

Grazie ancora

pelletta

L'espressione più corretta è
Code: [Select]
const byte red1 = 2;
dove
const sta per costante (dato che non cambierà valore nello sketch) serve per occupare meno memoria;
byte è il tipo di variabile; dato che il valore non supera 255 conviene dichiarare le variabili come byte piuttosto che integer (int) perchè anche in questo caso si va a risparmiare sulla memoria.
Ricordati di mettere il punto e virgola alla fine

Enermax

Grazie per la spiegazione

con int non ho mai messo il ";" e ha sempre funzionato, tutt'oggi.

per fisparmiare memoria userà const byte.

ps: non riesco a trovare uno sketch giusto per misurare la temperatura con LM35, sapete indicarmene uno??

Grazie

tuxduino

Quote
con int non ho mai messo il ";" e ha sempre funzionato, tutt'oggi.


Il ; è il terminatore di statement del C e del C++. Se ne manchi anche solo uno, il programma non compila o, nella peggiore delle ipotesi, introduci un malfunzionamento potenzialmente difficile da individuare.
Questo in linea generale.

Sarebbe interessante se postassi un programma che ha "funzionato" anche "senza il ;" :)

PS: la richiesta del ; non dipende dal tipo di variabile dichiarata. E' un elemento sintattico generale.

PaoloP


non riesco a trovare uno sketch giusto per misurare la temperatura con LM35, sapete indicarmene uno??

--> http://www.adrirobot.it/sensori/lm35/scheda_arduino_lm35.htm

Giusto per chi? o per cosa?  :smiley-roll-sweat:

Go Up