[Risolto] Problema Arduino.h

Ciao a tutti

Ho il seguente problema:
nel listato sotto mi da questo errore:

Error compiling.

In file included from area_di_progetto.cpp:29:
/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/Arduino.h:107: error: expected ',' or '...' before numeric constant

se provo ad aggiungere qualcosa prima della riga, mi segnala quella come errore. Se la commento,
mi segnala sbagliata la successiva. questo problema si è presentando quando stavo rivedendo il
programma e lo stavo commentando per presentarlo in un progetto a scuola.

Listato:

//PROGRAMMA DI GESTIONE DI UN ROBOT CHE
//SEGUE UNA FONTE LUMINOSA ED EVITA DEGLI OSTACOLI

//Il robot utilizza:
//- fototransistor per individuare la fonte luminosa
//- sensore a ultrasuoni per evitare degli ostacoli posti frontalmente
//- "baffi" per evitare degli ostacoli lateralmente
//- servomotori a rotazione continua per muoversi

//----- DIRETTIVE -----

#include <Servo.h>      //Libreria per servomotori

//Baffo sinistro pin digitale 2
#define bsx 2
//Baffo destro pin digitale 3
#define bdx 3
//Sensore a ultrasuoni pin digitale 8
#define us 8
//Fototransistor sinistro pin analogico 0
#define ftsx A0
//Fototransistor destro pin analogico 1
#define ftdx A1
//Pin comando motore destro pin digitale (PWM) 9
#define mpdx 9
//Pin comando motore sinistro pin digitale (PWM) 10
#define mpsx 10
//Dichiarazione servomotore destro
Servo mdx;
//Dichiarazione servomotore sinistro
Servo msx;

//Funzione di inizzalizzazione dei pin
void setup()
{
  //Dichiarazione dei pin dei baffi
  pinMode(bsx, INPUT);    //Sinistro
  pinMode(bdx, INPUT);    //Destro
  
  //Dichiarazione dei pin dei fototransistor
  pinMode(ftsx, INPUT);    //Sinistro
  pinMode(ftdx, INPUT);    //Destro
  
  //Dichiarazione dei pin dei servomotori
  mdx.attach(mpdx);        //Destro
  msx.attach(mpsx);        //Sinistro
  
}

//Funzione che comanda il robot in base ai baffi
void baffi()
{
  //lettura dei baffi
  int lbsx = digitalRead(bsx);
  int lbdx = digitalRead(bdx);

  //se viene rilevato un ostacolo a sinistra
  //il robot gira a destra per 0.5s
  if(lbsx==LOW)
  {
    mdx.write(179);      //motore destro indietro  
    msx.write(179);      //motore sinistro avanti
    delay (500);         //ritardo di 0,5s
  }

  //se rileva un ostacolo a destra
  //il robot gira a sinistra per 0.5s
  if(lbdx==LOW)          
  {
    mdx.write(0);        //motore destro avanti
    msx.write(0);        //motore sinistro indietro
    delay (500);         //ritardo 0.5s
  }

}

//Funzione che calcola la distanza usando il sensore a ultrasuoni
int dist_us()
{
  
  int durata;        //Variabile per la durata dell'impulso di ritorno
  int distanza;        //Variabile per la distanza
  
  //Impostazione del pin del sensore a ultrasuoni come uscita
  pinMode(us, OUTPUT);
  
  //Comando di invio segnale al sensore
  digitalWrite(us, LOW);
  delayMicroseconds(2);
  digitalWrite(us, HIGH);
  delayMicroseconds(10);
  digitalWrite(us,LOW);
  
  //Impostazione del pin del sensore come ingresso
  pinMode(us, INPUT);

  durata=pulseIn(us,HIGH);     //Lettura della durata dell'impulso ricevuto
  distanza=durata/58;          //Calcolo della distanza in base alla velocità del suono
  delay(100);                   //Ritardo per la lettura successiva

  return distanza;             //Ritorno del valore della distanza in centimetri

}

//funzione che comanda i servo motori in base ai fototransistor
int fototransistor()
{
  //lettura dei valori dei fototransistor
  int lftsx = analogRead(ftsx);
  int lftdx = analogRead(ftdx);

  //conversione dei valori da 0/1023 a 0/100
  lftsx = map(lftsx, 0, 1023, 0, 100);
  lftdx = map(lftdx, 0, 1023, 0, 100);

  //controllo che i due valori siano uguali
  //se si il robot va avanti
  if(lftsx >= (lftdx - 15) || lftsx <= (lftdx + 15))
  {
    mdx.write(0);
    msx.write(179);

    return 1;
  }

  //se il sensore di destra è maggiore di quello di sinistra
  //il robot gira a destra
  if(lftsx < (lftdx - 15))
  {
    mdx.write(179);
    msx.write(179);
  }

  //se il sensore di sinistra è maggiore di quello di destra
  //il robot gira a sinistra
  if(lftsx > (lftdx + 15))
  {
    mdx.write(0);
    msx.write(0);
  }

}

void loop()
{
  //il robot avanza
  mdx.write(0);
  msx.write(179);

  int cf = fototransistor();

  baffi();

  //lettura della distanza dai sensori a ultrasuoni
  int d=dist_us();

  //controllo della distanza:
  //se è minore di circa 15cm, il robot gira a
  //destra per 0.5 secondi
  if(d <= 12 && cf != 1)
  {
    mdx.write(179);
    msx.write(0);
    delay(400);

    mdx.write(179);
    msx.write(179);
    delay(500);
  }

  else
  {
    mdx.write(0);
    msx.write(179);
  }

}

Posso riprodurre l' errore ed é dato dalla riga

void delayMicroseconds(unsigned int us);

Ma non so darti una soluzione perché non so cosa significa il "us" nella funzione. Guardando la versione precedente (WProgram.h e rispettivamente wiring.h e lí c'é la stessa sintassi. Ciao Uwe

void delayMicroseconds(unsigned int us);

questa è una funzione che accetta una variabile di tipo unsigned int di nome us (che sta per microseconds, da us che generalmente sostituisce ?s). Ma nel tuo sketch hai:

#define us 8

Quindi c'è una doppia definizione di us, che non va bene.

Ok capito
Grazie mille