Errori arduino IDE

Domenica 27 ottobre 2013 ho incontrato in aula alcuni appassionati arduino che sono intervenuti al Corso Base Arduino in aula non ufficiale.

errori arduino ide  compilazione

Innanzitutto ringrazio tutti i presenti per la bellissima giornata e la partecipazione alla giornata, sicuramente il clima propositivo e la voglia di imparare cose nuove hanno contribuito alla buona riuscita del corso e alla crescita personale di ciascuno con arduino.

Domenica abbiamo affrontato insieme alcuni esercizi pratici di scrittura del codice e testato il corretto funzionamento non solo degli sketch ma anche della logica con cui affrontiamo un progetto arduino.

Errori arduino IDE

Ogni sketch scritto durante il corso lo abbiamo trasferito su arduino e testato, questo mi ha permesso di osservare alcuni errori arduino ide ricorrenti che possono capitare quando scrivi il tuo sketch e lo compili per trasferirelo su Arduino. Non ho mai dedicato un articolo ad alcuni degli errori arduino ide “classici” in cui puoi incorrere quando scrivi i tuoi sketch.

Sono errori con cui tutti ci siamo scontrati, sopratutto all’inizio, e che ancora oggi anche a me capitano quando scrivo uno sketch.

Ho deciso di farne una piccola panoramica e di tenerla aggiornata ogni volta che mi capita un nuovo errore.

Come riconosco un errore

La prima cosa che devi sapere sugli errori è che l’IDE arduino ti segnala gli errori di sintassi e di comunicazione con la scheda, questo significa che se commetti errori di logica: vuoi accendere un led collegato al pin 13 e scrivi digitalWrite( 9,HIGH ); sintatticamente è corretto ma logicamente non accenderai MAI il led collegato al pin 13, al massimo quello collegato al pin 9.

La seconda informazione che ti potrà risultare utile è che gli errori arduino ide sono segnalati in arancione nella parte inferiore dell’ide arduino.

Se il tuo sketch non presenta errori e non ci sono difficoltà di trasferimento del codice compilato sulla scheda arduino avrai una situzione simile alla seguente:

errori arduino ide success

in caso di errori la parte inferiore dell’ide apparirà in questo modo:

errori arduino ide errore

La terza cosa importante è che l’ide arduino cerca di darti tutte le informazioni necessarie a risolvere l’errore sintattico e questo a volte comporta un’eccessiva mole di informazioni nella parte inferiore dell’ide ma quello che ti interessa spesso è relativo alle prime 2/3 righe di errore.

“Classici” errori arduino ide

Ho ripreso 4 errori arduino ide in cui potresti trovarti scrivendo sketch per il i tuoi progetti ed ho riportato possibili soluzioni.

Errore Uno

Il primo errore che tutti facciamo e che sicuramente ti sarà capitato è:

Blink:11: error: expected unqualified-id before numeric constant
Blink:13: error: expected ‘,’ or ‘;’ before ‘void’

errori arduino ide punto e virgola

Se lo leggi con attenzione comprendi subito che si tratta di un errore di sintassi.

La seconda riga di errore dice che era attesa una “,” o un “;” prima della dichiarazione ‘void’.

Ricevi anche un’altra informazione: Blink:11 la linea 11 presenta l’errore e alla linea 13 si manifesta l’effetto descritto sopra.

CAUSA: controlla la linea 11, precedente a quella in cui hai dichiarato il void setup() , manca proprio un punto e virgola “;”.

RISOLUZIONE: aggiungi il punto e virgola alla linea 11 ed esegui la verifica.

Errore Due

Un altro degli errori arduino ide frequente è il seguente:

Blink.ino: In function ‘void setup()’:
Blink:19: error: a function-definition is not allowed here before ‘{‘ token
Blink:24: error: expected `}’ at end of input

errori arduino ide parentesi

Anche in questo caso la terza riga ti dice che alla linea 24 dello sketch si aspettava una parentesi graffa chiusa “}” mentre le linee precedenti evidenziamo che alla linea 19 dello sketch è stat aperta una parentesi graffa che non ha una corrispondente parentesi di chiusura.

CAUSA: osserva la linea 24 e vedrai che manca la parentesi graffa a chiudere la dichiarazione della funzione setup().

RISOLUZIONE: aggiungi la parentesi graffa alla linea 24 e riesegui la verifica.

Errore Tre

Uno degli errori arduino ide meno comuni ma che quando si verifica non è semplice da comprendere è il seguente:

Blink.ino: In function ‘void loop()’:
Blink:20: error: invalid conversion from ‘const char*’ to ‘uint8_t’
Blink:20: error: initializing argument 2 of ‘void digitalWrite(uint8_t, uint8_t)’

errori arduino ide const char

Il significato dell’errore lo trovi alla seconda linea dell’errore in cui ti dice che alla linea 20 c’è un errore di conversione da una const char* a uint8_t e alla linea successiva continua la segnalazione sulla riga 20 in quanto il secondo argomento del comando digitalWrite() deve essere di tipo uint8_t;

CAUSA: osserva la linea 20, nota che il secondo parametro passato al comando digitalWrite è “A”, la lettera A è tra virgolette, questa sintassi rende il parametro una stringa.

Il comando digitalWrite() accetta due parametri di tipo integer ( u_int8_t ) per cui un parametro di tipo String genera l’errore.

RISOLUZIONE: Sostituisci

Errore Quattro

Differente è il caso degli errori legati all’avrdude come il seguente:

avrdude: stk500_recv(): programmer is not responding

errori arduno ide avrdude

In questo caso non è lo sketch a presentare un errore ma la comunicazione con arduino che non è avvenuta in modo corretto impedendo all’IDE di trasferire il software.

CAUSA: le cause possono essere:

  • mancanza di collegamento del cavo USB
  • arduino in uno stato non pronto a ricevere il trasferimento
  • ide non in grado di utilizzare la porta di comunicazione corretta
  • porta seriale selezionata non corretta
  • tipo di scheda arduino selezionata errata
  • disconnessione da parte del computer dell’arduino

solo per citarne alcuni, in ogni caso la causa comune è dovuta al collegamento tra arduino e il computer.

RISOLUZIONE: la soluzione più semplice da applicare è quella di disconnettere e riconnettere arduino al computer, successivamente controlla che la scheda selezionata sia ancora quella corretta, se usi Arduino Uno controlla che sia selezionato questo tipo di controllore. Verifica che il computer riconosca arduino come connesso ad una delle porte seriali e che tale porta sia anche quella selezionata per il trasferimento dello sketch.

Ora sai come affrontare i principali errori arduino ide che possono capitarti quando inizi a lavorare con arduino e non solo agli inizi.

Buon progetto !!!

Cortesemente, prima di inserire i commenti leggi il regolamento

Permanent link to this article: http://www.mauroalfieri.it/elettronica/errori-arduino-ide.html

28 comments

Skip to comment form

    • Salvatore on 30 ottobre 2013 at 22:17
    • Reply

    Ciao Mauro, un grazie ancora a te per la tua disponibilità e professionalità.

    1. Complimenti sempre ben accetti Salvatore.

      Non vedo l’ora di pubblicare il tuo prossimo progetto Arduino.

      Mauro

    • Salvatore on 31 ottobre 2013 at 11:58
    • Reply

    Ci vorrà un bel pò, ma appena pronto di manderò tutta la documentazione per la sua pubblicazione.

    Salvatore

    1. Grazie Salvatore.

      Mauro

        • Alfre on 2 agosto 2017 at 21:10
        • Reply

        ciao Mauro, sono appena entrato nel mondo dell’ arduino, nella compilazione del IDE mi da un errore con scritto
        #include expects “filename” or mi sapresti dare qualche dritta, grazie anticipatamente

        1. Ciao Alfre,
          se vuoi imparare di più su Arduino ti consiglio il mio corso Arduino online gratuito.
          In merito al tuo errore si tratta della mancanza della libreria richiesta dallo sketch. Dovrai caricarla come spiegato in molti miei articoli del corso e del blog

    • David on 2 dicembre 2013 at 17:55
    • Reply

    Hola Mauro.
    Me ha parecido muy interesante tu articulo del cual he tomado buena nota.
    Llevo poco tiempo en el tema de Arduino y me ha surgido un problema.Quiza puedas ayudarme a solucionar.
    En el Arduino Starter kit hay un ejercicio que es la bola de cristal,yo modifico algunos parametros para que aleatoriamente solo me de tres respuestas,”si”,”no”,”quizas”.
    Creia que seria aleatoria la respuesta cada vez que pulso el boton para que responda por medio de la lcd.Pero siempre responde en el mismo orden. L a primera respuesta siempre es “si” la segunda es “quizas” y la tercera “no”.No importa si reinicio o borro el programa y lo cargo de nuevo.siempre repite la misma frecuencia.quisiera hacerlo aleatorio y ni se me ocurre que cambiar.Ya modifique varios parametros pero no funcionan.
    Alguna idea?
    Gracia.

    1. Hola Gracia
      lamentablemente no tengo el starter kit y no conozco los ejercicios.
      Usted puede tratar de pedir información sobre el foro Arduino o blog 🙂

      Mauro

    • Michael_g86 on 6 dicembre 2013 at 11:42
    • Reply

    Ciao Mauro,

    articolo utilissimo, complimenti!
    Sono nuovo con Arduino e ci sto sbattendo un po’. L’errore che ho incontrato è l’Errore Tre del tipo ‘from int to void’.
    Quello che mi chiedo è dove posso andare a vedere quali sono i parametri che una determinata funzione (che è importata da una libreria quindi non predefinita in Arduino) prende in ingresso? E void cosa significa, cosa ci si aspetta ci sia in ingresso alla funz?

    Michael

    1. Ciao Michael,
      ogni sviluppatore rilascia della documentazione con le librerie e di certo in quella trovi le risposte sui parametri accettati.
      In caso la libreria che stai utilizzando non disponda di documentazione ed esempi puoi leggerla come file di testo e verificare da solo i metodi disponibili.
      Questo discorso vale anche per le funzioni dichiarate void.

      Mauro

    • Michael on 8 giugno 2014 at 19:11
    • Reply

    Buonasera, io ho comprato il kitstart di arduino, con il manuale d’istruzione.
    il problema è questo..
    sto seguendo il manuale di istruzioni, ma quando clicco sulla spunta per fare la verifica, mi da errore in parte della sintassi.
    1) sulla serigrafia della scheda arduino c’è scritto -3, mentre sul manuale c’è scritto 3.
    quindi io ho messo pinMode(-3, OUTPUT);

    2) ma anche seguendo il manuale, con tutto il codice, alla fine quando vado a verificare mi da errore di sintassi.
    quindi non riesco a capire se son io che non capisco, oppure il manuale che è stato scritto male.
    (Tra l’altro, ho provato a caricare dei file esempio, in alcuni la sintassi va bene, in altri no…)
    Quindi come risolvo la questione?

    Grazie,
    Michael

    1. Ciao Michael,
      il segno che vedi serigrafato su arduino in corrispondenza dei pin 3,5,6,9,10 ed 11 è una tilde ( ~ ) non un meno ( – ).
      I pin arduino sono sempre positivi quindi 3 è corretto come sul manuale puoi seguirlo con fiducia.

    • samuele on 14 giugno 2014 at 18:29
    • Reply

    Ciao Mauro, arduino mi rileva un errore sempre alla stessa riga, qualsiasi cosa ci scriva, ma l’errore a me sembra non esserci. Ed oltre a quello anche altri, ma non riesco a trovare una soluzione. Non è che potresti dare un’occhiata allo sketch? Se non qui anche in privato.
    Grazie.

    1. Ciao Samuele, siete in troppi perché io possa verificare gli sketch di tutti quelli c’è me lo chiedono. Sono costretto a limitare questa analisi si soli progetti a pagamento per i quali scrivo lo sketch da zero sulle esigenze del committente.

      Solitamente gli errori sono chiari e indicano abbastanza precisamente il problema di sintassi.

      Puoi scrivermi l’errore che ti viene rilevato se non é tra quelli descritti in questo articolo o tra i commenti a cui ho già risposto.

    • Antonio on 14 novembre 2015 at 16:37
    • Reply

    Nonostante aver fatto varie prove, si ripresenta l’errore 4… cosa faccio? Grazie

    1. Ciao Antonio,
      l’errore potrebbe essere un malfunzionamento della tua scheda, verifica con chi ti ha venduto l’arduino.

    • angelo on 7 aprile 2017 at 22:32
    • Reply

    ciao non so se riceverai la mia email ho costruito una lavagnetta con un progetto che si chiama i board bot ho comprato la scheda arduino leonardo e ho una scheda wifi sempre loro ma sembra tuo funzionate pero quando attacco il pc alla scheda la luce gialla lampeggia in continuo so che deve diventare statica dopo qualche secondo
    dalle istruzioni mi dicono che manca il file i boardbot ino che serve a impostare anche il wi fi sono codici che hanno loro tuttavia quando lo inserisco mi da errore spero potrai aiutarmi sto impazzendo per capire cosa e che non va se hai bisogno di altre informazioni su errori ecc ti preferirei postare uno screenshot per capire se hai modo di riceverlo qui

    1. Ciao Angelo,
      in primo luogo, fossi in te, proverei a scrivere agli autori del progetto, ne sapranno di certo più di me.
      Come hai letto non è consentito incollare sketch, sopratutto se non scritti da me o da qualche autore del blog.
      Puoi scrivermi che errore ti restituisce l’IDE e se è un errore noto cerco di aiutarti, considera che non conosco affatto il progetto di cui scrivi.

    • angelo on 6 maggio 2017 at 12:24
    • Reply

    ciao si io ti scrivo gli errori ho contatta to i progettisti il problema e che forse sbaglio qualcosa io ma non so cosa cmq ti mando cosa mi restituisce cosi se sai di che si tratta almeno mi dai unna dritta grazie
    lo sketch usa 22656 byte(70%) dello spazio disponibile per i programmi il massimo e28672 byte le variabili globali usano 1774 byte (69%) di memoria dinamica lasciando altri 786 byte liberi per le variabili locali il massimo e 2560 byte
    ——————————————————————————————————————————————————
    c:\user\angelo\desktop\iboardbot_107\iboardbot_107.ino:in fuction ‘void setup()’:
    “””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””” :64:37:warning:deprecated conversion from string constant to ‘chart’ [-write-string]

    writewificonfig(0″,”,”,0);

    questi sono alcuni degli errori ci sono altre stringhe simili nella dicitura ma puoi dirmi piu o meno di cosa si tratta e se ce una soluzione la di la del progetto la scheda e una arduino leonardo e sopra e montata una scheda fi fiche occupa tutti i pin ho provato a sganciare la scheda per vdere se era quella ma nulla la porta com e giusta e la selezione della scheda anche sembra il computer mela veda e uso ultima versione di arduino ide

    1. Ciao Angelo,
      leggendo l’errore mi sembra di vedere una strana dichiarazione: writewificonfig(0″,”,”,0); forse manca solo una virgola tra lo 0 e gli apici.
      o qualche valore è errato.

    • angelo on 10 maggio 2017 at 21:57
    • Reply

    ciao grazie per la risposta mi confermi allora che potrebbe essere un errore di programmazione e non solo un mio modo di compilare il programma non e mio e d e piuttosto esteso serve a far funzionare una lavagnetta elettronica comandata da una scheda arduino leonardo io non so programmare e trovare già l’errore che hai trovato tu e una impresa ho scritto al sito che per altro e in inglese mi rimandano alle loro istruzioni ma non parlano di errore di programma comunque sai da chi poso farlo anallizzare per capire se danneggiato cosi da farlo riparare e ricompilare

    1. Ciao Angelo,
      si tratta di un prodotto commerciale? Avranno una loro assistenza.
      In alternativa puoi scrivere loro segnalando il tuo problema.

    • gianluca on 17 maggio 2017 at 19:44
    • Reply

    ciao mauro ho un problema con il mio sketch per quello che capisco io ce un problema con la libreria del dht11 ma non essendo un esperto non so come risolverlo potresti darmi una mano grazie a priori

    Arduino:1.8.2 (Windows 7), Scheda:”Arduino/Genuino Uno”

    C:\Users\notebook\Downloads\TempUmiditaPressione_LCD2002A\TempUmiditaPressione_LCD2002A.ino:45:69: fatal error: dht.h: No such file or directory

    #include // libreria sensore temperatura e umidita

    ^

    compilation terminated.

    exit status 1
    Errore durante la compilazione per la scheda Arduino/Genuino Uno.

    Questo report potrebbe essere più ricco di informazioni abilitando l’opzione
    “Mostra un output dettagliato durante la compilazione”
    in “File -> Impostazioni”

    1. Ciao Gianluca,
      devi installare la libreria DHT11 come descritto in alcuni articoli dedicati a questo sensore

    • michele on 17 agosto 2017 at 14:10
    • Reply

    salve ho il mio Arduino su gli sketch della programmazione del RFID mi da questo errore c:\users\michele\appdata\local\temp\arduino_modifier_sketch_172513\sketch-aug17c.ino:36:18: fatal error: RFID.h: no such file or directory

    #include

    compilation terminated.

    exit status 1
    errore durante la compilazione per la scheda Arduino/genuino uno.

    ho provato molti sketch di altri post online per programmare il RFID ma sempre lo stesso errore. Con altri sketch di altri progetti diversi ad esempio per il display lcd o altri ancora vanno tutti bene mi sapresti dire cosa puo essere grazie

    1. Ciao Michele,
      l’errore su cui devi soffermare la tua attenzione è: “RFID.h: no such file or directory” che indica chiaramente che ti manca il file rispondente alla libreria RFID.h, controlla con l’autore dello sketch che libreria ti serve.

    • michele on 17 agosto 2017 at 16:04
    • Reply

    grazie mille per la risposta ho trovato il file RFID.h ma ora mi da questo errore \sketch-aug17h:151: error: invalid preprocessing directive #endifvoid

    #endifvoid setup() (

    sketch_aug17h:5: error: unterminated #ifndef

    #ifndef RFID_h

    exit ststus 1

    invalid preprocessing directive #endifvoid.

    manca qualcosa su questa stringa? #endifvoid setup() ( xke e anche evidenziato in rosso. grazie ancora

    1. Ciao Michele,
      dovresti chieder all’autore dello sketch.

Lascia un commento

Your email address will not be published.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.