Vai al contenuto
PLC Forum


Funzionamento Arduino uno


FabioClipper

Messaggi consigliati

Scusate, ho acquistato da poco una scheda Arduino uno e sto imparando a programmarla.

Faccio presente che non so nulla sulla sua programmazione e sto imparando con esempi tratti da internet e da un libro che ho acquistato.

L'esercitazione prevede una comunicazione seriale con la scheda al fine di accendere o spegnere un Led a seconda della situazione in cui si trova 

una determinata uscita. Ho provato altri esempi e tutto va bene, quando poi lancio il file che segue iniziano i problemi.

const unsigned int LED_PIN=13;
const unsigned int BAUD_RATE=9600;

void setup(){
  pinMode(LED_PIN, OUTPUT);
  Serial.begin(BAUD_RATE);
}

void Loop(){
  if(Serial.available()>0){
    int command=Serial.read();
    if(command='1'){
       digitalWrite(LED_PIN, HIGH);
       Serial.println("LED on");
    }else if(command='2'){
       digitalWrite(LED_PIN, LOW);
       Serial.println("LED off");
    }else{
        Serial.print("Unknown command:");  
        Serial.println(command);
    }
  }
}

Quando eseguo la verifica ottengo il seguente errore: C:\programmi\arduino\hardaware\arduino\avr\cores\arduino/main.cpp:43 undefined reference to 'loop'

collect2: error id returned 1 exit status

Errore durante la compilazione.

Rappresento che attualmente ho ricaricato l'IDE versione I.58, prima avevo l'ultima versione. ho provato ad aggiornare le librerie. Ho anche provato a cancellare il file collect2.exe e tutto quello che lo riguardava. rappresento che con le versioni aggiornate ottengo soltanto:

collect2: error id returned 1 exit status.

Sapreste dirmi come risolvere il problema, atteso che ho anche provato a cambiare PC e sistema operativo da XP a Seven. 

Io ringrazio Saluti 

 

Link al commento
Condividi su altri siti


probabilmente negli if devi mettere doppi == non e un assegnazione,poi la variabile led pin la puoi nominare solo int

infine la riga serial.begin(9600)scrivila cosi non ce bisogno di creare una variabile baud-rate penso non sono molto pratico

 

Link al commento
Condividi su altri siti

Notazione di servizio: quando inserisci un programma usa l'opzione "code", è quel tasto con l'icona "<>" altrimenti si capisce poco o nulla.

 

Quel programma, se ricordo bene, è tratto da un libro di elettronicaIn e dovrebbe funzionare. Se nelle impostazioni dell'IDE scegli l'opzione "visualizza il numero di righe" ti sarà più facile la ricerca degli errori di compilazione.

Sicuramente gli "=" nei test devono diventare "==" perchè il segno "=" serve per assegnare un valore; ad esempio se scrivi

int iconta = 10;

assegni il valore 10 alla variabile intera iconta.

Link al commento
Condividi su altri siti

Ho fatto come avete detto, ringrazio, all'inizio continuava a non funzionare comunque, quindi ho provato a eliminare tutti i rientri riga, perchè  venendo dal Visual basic sono abituato a inserire rientri di riga a scaletta per meglio leggere il listato.

La nuova versione ora è senza rientri e funziona correttamente su ambedue i PC in uso, quindi da quello che ho capito i rientri danno problemi di funzionamento.

 

 

Grazie a tutti 
 

Link al commento
Condividi su altri siti

Assolutamente no.

Se danno problemi è perchè ti si è inserito un carattere non visibile che disturba il compilatore. Questo succede a volte quando si fa il copia-incolla.

Link al commento
Condividi su altri siti

Grazie Livio, ora per imparare meglio riscrivo il programma per intero, poi utilizzo la funzione formattazione automatica e per adesso sembra funzionare, ho già continuato su altri programmi, e il problema non è più apparso.

Da quello che ho capito, il linguaggio in uso è una versione del C++ quindi è come programmare in C?  

Grazie e salutii 

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...