Go Down

Topic: Problema monitor seriale Arduino ethernet  (Read 139 times) previous topic - next topic

Exlais

Salve a tutti, sono nuovo nel campo di arduino e sto realizzando un progetto scolastico che consiste nell'effettuare un " Web Scrapping" , ovvero recuperare dati e informazioni dalle pagine internet. Nel mio caso, devo recuperare i dati di un sito meteo. Il problema è questo: non mi stampa nulla nel monitor seriale! O meglio, se per esempio imposto sotto forma di commento l'ultima parte del codice ( ogni parte è divisa da //--------), il programma funziona correttamente, stampando tutto tranne la parte di codice messa sotto forma di commento ovviamente. Ho verificato personalmente tutto il codice e ho notato che se tolgo parte di codice mettendolo appunto sotto commento, funziona, mentre se faccio eseguire tutto il codice per intero presente qui sotto invece non stampa nulla. Qual'è il problema??  :'( 

Vi lascio in allegato il codice, grazie in anticipo!

pablos

#1
Jan 06, 2015, 12:13 am Last Edit: Jan 06, 2015, 12:19 am by pablos
Il problema è che mancano le info fondamentali, Arduino è il nome di una società srl, spa, snc, sas (quello che vuoi) non dice nulla su quello che hai in mano, nemmeno sul tipo di ethernet che satai usando.

Per cui se stai usando prodotti della ditta Arduino servono modelli e il regolamento lo specifica "come impostare una domanda"

queste dichiarazioni non dovrebbero esse mai usate in globale
Code: [Select]
String responseString;
String A;
String B;
String richiesta;
String chiusura_connessione;
String MIN;
String ORA;


Quote
ho notato che se tolgo parte di codice mettendolo appunto sotto commento, funziona, mentre se faccio eseguire tutto il codice per intero presente qui sotto invece non stampa nulla. Qual'è il problema??
Non hai specificato quali parti di codice togliendo con commenti ottieni esiti positivi.

Hai molto probabilmente saturato la RAM con tuttte quelle stringhe e quelle stampe SerialPrint()
puoi tentare di usare fa funzione F() o funzione avanzata progmem per memorizzare messaggi predefiniti su flash.
Accorcia i messaggi da stampare su serial.print che alla fine sono solo debug, ma causano seri problemi se usati male.

Deduco dal programma molto piccolo e dai problemi riscontrati che hai una UNO e non monta una ethernet ENC ... non so se hai scelto una combinazione hardware veramente ottimale.

Specifica di più
ciao
L'esperienza è il tipo di insegnante più difficile ....
Prima ti fa l'esame e poi ti spiega la lezione.

Exlais

Allora , provo a risponderti nel modo più completo possibile...

- Grazie per la risposta, scusa se non ho presentato in modo corretto la domanda.

- Ho un arduino uno ethernet R3 ( quello nell'immagine sottostante  ).



- Quindi utilizzando delle variabili locali ( mi sembra si dice così) mi aiuterebbe a risolvere parzialmente il problema oppure è considerata una "cattiva programmazione" ?

- Praticamente io ottengo esiti positivi cancellando almeno una qualsiasi parte del codice ( quelle tra le //---), per esempio togliendo tutta la parte riguardante la stampa del meteo domani ( lasciando solamente i comandi client.stop e client.flush altrimenti il programma non funziona correttamente), il programma stampa tutto quello che gli chiedo in modo corretto.

- Effettivamente, guardando su internet ho trovato molti riferimenti del mio problema riguardanti proprio l'utilizzo eccessivo della SRAM. Il problema è che non so come potrei migliorare, dovrei provare a usare i comandi che mi hai citato.

nid69ita

Salve a tutti, sono nuovo nel campo di arduino 
Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento: Regolamento
- qui una serie di schede by xxxPighi per i collegamenti elettronici vari: ABC - Arduino Basic Connections
- qui le pinout delle varie schede by xxxPighi: Pinout
- qui una serie di link generali utili: Link Utili
my name is IGOR, not AIGOR

pablos

#4
Jan 06, 2015, 01:21 pm Last Edit: Jan 06, 2015, 08:57 pm by pablos
Leggi questo articolohttp://www.leonardomiliani.com/2013/la-memoria-sram-dei-microcontrollori/comment-page-1/ riduci il più possibile la lunghezza delle stringhe anche usando la funzione F()

Se possibile dichiara le variabili all'interno delle funzioni,  solo quando vengono impegnate tali funzioni viene occupata la memoria dalle vaiab contenute al suo interno.... Appena si esce le variabili vengono distrutte liberando ram per altre variab.

Ciao
L'esperienza è il tipo di insegnante più difficile ....
Prima ti fa l'esame e poi ti spiega la lezione.

Go Up