ciao a tutti
ho creato un piccolo progetto con dei led, un rgb un termistore e una fotoresistenza
in che modo posso salvare i dati della temperatura e poi scaricarli sul computer??
devo per forza usare una memory card?
grazie in anticipo
Puoi anche salvarli su eeprom e poi tramite seriale li leggi li importi ad esempio su excell e finita la lettura la cancelli, solo che la eeprom ha un numero di scritture cancellazioni limitate occhio....
oppure usi una EEPROM o FRAM esterna ad arduino ma la cosa si complica più che ad usare una SD
e come farei a usare una sd?
mi verrebbe a costare molto?
ho sempre avuto un dubbio:quando metto una shield attaccata all'arduino uno mi usa tutti i pin concui l'attacco??
Non ti verrebbe a costare molto, puoi fare tu uno shield con i dovuti partitori e la SD oppure prenderlo già fatto.
Se hai uno shield ethernet ancora meglio, puoi mandare i dati su "google spreadsheet" sono 5 Gb di spazio free per ogni occount google. Vedresti i dati on-line da qualsiasi pc in tempo reale con grafici ecc.
a me bastava semplicemente salvarli
se no creando un programma in visual basic x il computer ke riceva i valori??
so che si può fare ma nn ho idea di come farlo
ok grazie adesso quando avro tempo(non prima di sabato perchè parto per una gita scolasica a praga) cercherò di guardarci e di capirci qualcosa
Dipende tutto da quanti dati devi memorizzare.
L' eeprom interno al Arduino é da 1KByte.
Gli EEprom esterni sono fino a un centinaio di kByte
Le schedine SD sono fino a 2GByte, quelle SDHC fino a 32GByte
Ciao Uwe
@uwefed ok per ora non posso comprare la shield sd quindi penso di usare l'eproom
come faccio a salvare i dati e soprattutto poi per leggerli come faccio??
quanti dati posso salvare con un kbyte? e se spengo l'arduino si cancellano?
grazie mille
lupo95:
@uwefed ok per ora non posso comprare la shield sd quindi penso di usare l'eproom
come faccio a salvare i dati e soprattutto poi per leggerli come faccio??
Per salvarli e leggerli è facile, usi la libreria EEPROM:
Per spedirli al computer devi avere una connessione attiva: se non puoi comprarti la Ethernet, l'alternativa è attaccare l'Arduino alla seriale e poi spedire i dati. Però poi devi scriverti un software lato PC che riceva questi dati e li salvi da qualche parte.
quanti dati posso salvare con un kbyte? e se spengo l'arduino si cancellano?
grazie mille
Sulla quantità dipende da cosa salvi ed in che formato.
Se li salvi su memorie non volatili (Flash, Eeprom), i dati non li perdi staccando l'alimentazione.
grazie mille
c'è una cosa che nn ho capito io ho una variabile chiamata temperatura in cui vengono letti gli ononimi dati
io come faccio a scriverli sulla eproom?
cioè sul link ke mi hai dato c'è scritto "EEPROM.write(i, i);" ma io devo solo mettere la temperatura come faccio??
La temperatura sarà la lettura di un sensore salvata in una variabile. Devi salvare la variabile.
Se la variabile è di tipo int, devi salvarla scomposta nei suoi 2 byte, byte basso e byte alto:
http://arduino.cc/en/Reference/LowByte
http://arduino.cc/en/Reference/HighByte
Tempo fa ho fatto questo sketch in Processing, per salvare appunto dei valori provenienti dalla seriale di Arduino riguardanti la misurazione della temperatura, è facilmente modificabile per ogni esigenza:
// Scrittura su file da Arduino
import processing.serial.*;
Serial mySerial;
PrintWriter output;
void setup() {
 mySerial = new Serial( this, Serial.list()[1], 9600 ); // seleziona la porta seriale di Arduino e la velocitÃ
 mySerial.bufferUntil('\n'); // Buffer seriale fino a new line
 output = createWriter( "dati.txt" ); // Nome file dati (lo scrive dove risiede il programma)
}
void draw() {
 // Imposta dati con data e tempo
 int gi = day();  // giorno
 int me = month(); // mese
 int an = year(); // anno
 int se = second(); // secondi
 int mn = minute(); // minuti
 int or = hour(); // ore
 if (mySerial.available() > 0 ) {
  String value = mySerial.readStringUntil('\n'); // legge dati da seriale fino a new line
  if ( value != null ) {
   // scrive dato tempo oppure aggiungere anche data
   String s = String.valueOf(or)+":"+String.valueOf(mn)+"."+String.valueOf(se)+" ";Â
   output.print( s );
   output.print( value ); // scrive su file lettura da seriale da Arduino
  }
 }
}
// Esce dal programma alla pressione di qualsiasi tasto
void keyPressed() {
 output.flush(); // Scrive i dati rimanenti su file
 output.close(); // Chiude il file
 exit(); // Esce dal programma
}