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

Salve a tutti. Volevo realizzare un progetto con arduino uno che mi consente di accendere e spegnere dei led con il controllo bluetooth da smartphone. Però quando cerco di verificare il programma,invece di visualizzare "compilazione completata", nella barra in basso degli errori mi dice: exit status 1 Errore durante la compilazione per la scheda Arduino/Genuino Uno.

Questo è il codice:

#include <SoftwareSerial.h>
#define bluetooth Serial
SoftwareSerial mySerial(0, 1); // imposto i pin per la comunicazione seriale
// Collegare i pin nel seguente modo: RX=>1 TX=>0
float tempC;
int tempPin = 0;


void setup()
{
  pinMode (tempPin, INPUT); // Sensore Temperatura sul pin A0
  pinMode(2, OUTPUT); // Linea prese Soggiorno
  pinMode(3, OUTPUT); // Linea prese Cucina
  pinMode(4, OUTPUT); // Linea prese Camera
  pinMode(5, OUTPUT); // Linea prese Giardino
  pinMode(6, OUTPUT); // Linea luce Soggiorno
  pinMode(7, OUTPUT); // Linea luce Cucina
  pinMode(8, OUTPUT); // Linea luce Camera
  pinMode(9, OUTPUT); // Linea luce Giardino
  pinMode(10, OUTPUT); // Riscaldamento
  pinMode(11, OUTPUT); // Condizionatore
  pinMode(12, OUTPUT); // Cancello
  pinMode(13, OUTPUT);

 bluetooth.begin(9600);
   mySerial.begin(9600); // setto la comunicazione
   delay(1000);
}


void loop()
{
  tempC = analogRead (tempPin);
  tempC = (5.0 * tempC * 100.0)/1024.0;
   Serial.println (tempC);
  delay (1000);
   while (bluetooth.available())
   {





    
       char dato= bluetooth.read(); // "dato" è il valore che viene ricevuto dalla seriale
       switch(dato)
       {
         case 'A': // Se ricevo la lettera A,
         {
  digitalWrite(2, HIGH); // eccito il relè collegato al pin2
            
           break;
         }
         case 'a': // Se ricevo la lettera a
         {
  digitalWrite(2, LOW); // Spenfo il relè
           
           break;
         }    
                   // E così anche di seguito...
                  case 'B':
         {
  digitalWrite(3, HIGH);
           
           break;
         }
         case 'b':
         {
  digitalWrite(3, LOW);
          
           break;
         }    


         case 'C':
         {
  digitalWrite(4, HIGH);
            
           break;
         }
         case 'c':
         {
  digitalWrite(4, LOW);
           
           break;
         }    
                  case 'D':
         {
  digitalWrite(5, HIGH);
            
           break;
         }
         case 'd':
         {
  digitalWrite(5, LOW);
          
           break;
         }    
                  case 'E':
         {
  digitalWrite(6, HIGH);
            
           break;
         }
         case 'e':
         {
  digitalWrite(6, LOW);
           
           break;
         }    
                  case 'F':
         {
  digitalWrite(7, HIGH);
            
           break;
         }
         case 'f':
         {
  digitalWrite(7, LOW);
           
           break;
         }    
                  case 'G':
         {
  digitalWrite(8, HIGH);
            
           break;
         }
         case 'g':
         {
  digitalWrite(8, LOW);
          
           break;
         }    
                  case 'H':
         {
  digitalWrite(9, HIGH);
            
           break;
         }
         case 'h':
         {
  digitalWrite(9, LOW);
           
           break;
         }    
       case 'I': 
         {
  digitalWrite(10, HIGH); 
            
           break;
         }
         case 'i': // Se ricevo la lettera i
         {
  digitalWrite(10, LOW); // Spengo il relè
          
           break;
         }    
 case 'L': 
         {
  digitalWrite(11, HIGH); 
            
           break;
         }
         case 'l': // Se ricevo la lettera l
         {
  digitalWrite(11, LOW); // Spengo il relè
           
           break;
         }    
case 'M':
         {
  digitalWrite(12, HIGH);
            delay (1000);
            digitalWrite(12, LOW);
           break;
         }
         case 'm':
         {
  digitalWrite(12, HIGH);
           delay (1000);
           digitalWrite(12, LOW);
           break;
         }    
       case 'N':
         {
  digitalWrite(13, HIGH);
            
           break;
         }
         case 'n':
         {
  digitalWrite(13, LOW);
           
           break;
         }    
       
       }       
   } 
}

Questo è l'errore che mi compare quando verifico il programma:

In function 'global constructors keyed to 65535_0_CONTROLLO_BLUETOOTH.ino.cpp.o':

lto1.exe: internal compiler error: Segmentation fault

Please submit a full bug report,

with preprocessed source if appropriate.

See <http://gcc.gnu.org/bugs.html> for instructions.

lto-wrapper.exe: fatal error: C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\tools\avr/bin/avr-gcc returned 1 exit status

compilation terminated.

c:/program files/windowsapps/arduinollc.arduinoide_1.8.21.0_x86__mdqgnx93n4wtt/hardware/tools/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/bin/ld.exe: error: lto-wrapper failed

collect2.exe: error: ld returned 1 exit status

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

Grazie a tutti per il vostro aiuto.

Benvenuto,
essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione tutto il su citato REGOLAMENTO ... Grazie. :slight_smile:

nid69ita

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione, nessuno ti potrà rispondere, quindi ti consiglio di farla al più presto. :wink:

Ma che versione di IDE usi ??
"C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21"
Compilato il tuo programma con versione 1.8.9 senza problemi. Arduino LLC non c'e' più !

P.S. non c'entra ma è inutile usare le graffe in case con dentro un break; levale !!

case 'A': 
         { digitalWrite(2, HIGH); // eccito il relè collegato al pin2
            break;
         }

scrivilo così:

case 'A': 
        digitalWrite(2, HIGH); // eccito il relè collegato al pin2
        break;

Errato non lo è
Poco utile sì

Salve a tutti. Ringrazio per la correzione delle parentesi graffe nel case e mi scuso per non essermi presentato ora è tutto okay.

La versione di arduino ide che uso è la 1.8.9 (Windows store 1.8.21.0) scaricata appunto da windows store.

nid69ita:
P.S. non c'entra ma è errato usare le graffe in case con dentro un break; levale !!

In realtà, mi pare Visual Studio, ma non ne sono sicuro, le pretende!
Appena riesco verifico

Federico

hassanbaydary:
La versione di arduino ide che uso è la 1.8.9 (Windows store 1.8.21.0) scaricata appunto da windows store.

Il consiglio e di NON installare Arduino IDE dallo store, ma scaricare lo zip della 1.8.9 ed espanderlo (mantenendo la struttura delle cartelle) in una cartella di tua scelta, esempio c:\ArduinoIDE

Ringrazio tutti per l' aiuto che mi state dando.

Quindi se ho capito bene devo scaricare lo zip della versione 1.8.9 dell' arduino ide ed estrarre il contenuto in una cartella.

Si, e penso hai Windows 10, meglio se una cartella tipo c:\ArduinoIDE e non una cartella decisa dall'installatore

Se poi, PRIMA di lanciare l'IDE, crei una sottocartella di nome portable hai tutto dentro a quella cartella, anche i tuoi sketch (invece di averli in una cartella sotto c:\users\vattelapesca...) .
Esempio C:\ArduinoIDE ci esplodi lo zip, crei C:\ArduinoIDE\portable e poi lanci l'IDE

salve a tutti.

Ho provato ad installare la versione di arduino ide in formato zip, ho estratto tutto su una cartella: C:\ArduinoIDE, ho avviato l' applicazione e finalmente mi dice compilazione completata però quando cerco di caricare il programma su arduino impiega più tempo del previsto rimanendo fermo sulla scritta: Sto caricando... e quando la scritta se ne va compaiono questi errori.

Questi sono gli errori che mi vengono fuori:

avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xe1
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xe1
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xe1
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xe1
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xe1
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0xe1
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xe1
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0xe1
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0xe1
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xe1
Problema di caricamento sulla scheda. Guarda http://www.arduino.cc/en/Guide/Troubleshooting#upload per suggerimenti

Non so più cosa fare, questi problemi non mi sono mai successi.

Grazie a tutti.

Salve a tutti:

Finalmente riprovando molte volte sono riuscito a compilare il programma e a caricarlo su arduino, il problema secondo me era dovuto dal fatto che avevo già costruito il circuito e fatto i collegamnti con arduino, ma il programma non era ancora stato caricato, infatti lo sketch non si caricava perchè forse tutti i collegamnti alle uscite creavano qualche disturbo. Mi è bastato togliere tutti i cavi e tenere arduino da solo e alla fine il programma è stato caricato.
Infatti è sempre meglio caricare prima il programma su arduino e poi costruire il circuito.

Grazie a tutti.

Probabile tu abbia utilizzato i pin "legati" alla seriale.

Ovvero 0 e 1 su Arduino Uno/Nano

Salve a tutti.

Si infatti avete ragione, i pin 0 ed 1 del seriale gli ho utilizzati per collegare il TX e l' RX del modulo bluethoot e questo non permetteva al programma di compilarsi.

Grazie a tutti per l' aiuto.

Su Uno puoi usare la libreria SoftwareSerial per "emulare" la seriale fisica e quindi usare altri due pin al posto di 0 e 1 che sono usati dalla USB anche per la programmazione.
Sempre se il tipo di progetto che stai sviluppando lo permette ovvero non sei obbligato ad usare la seriale fisica 0,1

salve a tutti.

Grazie per il suggerimento , in effetti non sapevo che si potessero usare altri pin ,invece dei soliti 0 ed 1 per collegare il modulo bluethoot. Però per fortuna sono riuscito a farci stare tutti e 12 led .

Grazie tutti