too many arguments to function 'int digitalRead(uint8_t)'

scusatemi, stavo programmando un giochino

int punteggio = 0;
int tasto = 10;

void setup() {
pinMode(tasto,INPUT);
}
void loop() {
if(digitalRead(tasto,HIGH))
  {
    punteggio = punteggio + 1;
  }
}

Quando ho trovato questo errore: too many arguments to function ‘int digitalRead(uint8_t)’
Sapete dirmi dove si trova il problema?

L'errore significa che stai fornendo più parametri di quanto richiesto dalla funzione, nel caso specifico, la digitalRead(), è atteso un singolo parametro per indicare il pin da cui effettuare la lettura. Il codice va corretto in questo modo.

int punteggio = 0;
#define tasto 10;

void setup() {
pinMode(tasto,INPUT);
}
void loop() {
if(digitalRead(tasto) == 1)
  {
    punteggio = punteggio + 1;
  }
}

Per la if è sempre buona cosa specificare per intero la condizione anche il valore interessato può essere true per eventi hardware, come nel caso di una lettura di un pin. Impara fin da subito ad usare correttamente la memoria, non usare mai "int" per dichiarare un pin perché in questo modo sprechi due preziosi byte di ram, in questi casi è meglio usare la "#define" che non utilizza memoria in quanto il compilatore effettua una sostituzione diretta del nome con il valore assegnato senza impegnare variabili.

grazie, ma è normale il fatto che #define non venga colorato?

Eneag: grazie, ma è normale il fatto che #define non venga colorato?

L'IDE di Arduino colora solo i nomi delle funzioni di wiring (il framework C/C++ che sta alla base di Arduino) e i nomi delle funzioni contenute nelle librerie se definiti con l'apposito file .txt, non colora i comandi e le funzioni standard del C/C++, la #define è un comando per il preprocessore C/C++ che ha effetto solo durante la compilazione.

ah ok ora è chiaro, grazie