Rwhite Inserito: 25 maggio 2020 Segnala Share Inserito: 25 maggio 2020 Buongiorno a tutti, sto sviluppando un datalogger utilizzando Arduino MKR1010 con scheda SD Card, per controllo temperatura e umidita. Ho imbastito un semplice codice e funziona regolarmente quando utilizzo il pc come monitor. Se lancio lo stesso codice in stand-alone non viene salvato alcun dato sulla SD Card. Ho provato utilizzare il codice dell'esempio fornito dalla Ide di Arduino, e succede la stessa identica cosa. Immagino ci sia qualche piccolo errore, qualcuno mi può aiutare? grazie Questo è il codice dell'esempio: /* SD card datalogger This example shows how to log data from three analog sensors to an SD card using the SD library. The circuit: * analog sensors on analog ins 0, 1, and 2 * SD card attached to SPI bus as follows: ** MOSI - pin 11 ** MISO - pin 12 ** CLK - pin 13 ** CS - pin 4 (for MKRZero SD: SDCARD_SS_PIN) created 24 Nov 2010 modified 9 Apr 2012 by Tom Igoe This example code is in the public domain. */ #include <SPI.h> #include <SD.h> const int chipSelect = 4; void setup() { // Open serial communications and wait for port to open: Serial.begin(9600); while (!Serial) { ; // wait for serial port to connect. Needed for native USB port only } Serial.print("Initializing SD card..."); // see if the card is present and can be initialized: if (!SD.begin(chipSelect)) { Serial.println("Card failed, or not present"); // don't do anything more: while (1); } Serial.println("card initialized."); } void loop() { // make a string for assembling the data to log: String dataString = ""; // read three sensors and append to the string: for (int analogPin = 0; analogPin < 3; analogPin++) { int sensor = analogRead(analogPin); dataString += String(sensor); if (analogPin < 2) { dataString += ","; } } // open the file. note that only one file can be open at a time, // so you have to close this one before opening another. File dataFile = SD.open("datalog.txt", FILE_WRITE); // if the file is available, write to it: if (dataFile) { dataFile.println(dataString); dataFile.close(); // print to the serial port too: Serial.println(dataString); } // if the file isn't open, pop up an error: else { Serial.println("error opening datalog.txt"); } } Graziano Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 25 maggio 2020 Segnala Share Inserita: 25 maggio 2020 I lettori SD card per arduino in genere hanno i segnali con livello 3.3V. Quelle decenti hanno i traslatori di livello sulla scheda, le più economiche no. Hai verificato la presenza dei traslatori? Link al commento Condividi su altri siti More sharing options...
ilguargua Inserita: 25 maggio 2020 Segnala Share Inserita: 25 maggio 2020 (modificato) 2 ore fa, Livio Orsini ha scritto: lettori SD card per arduino in genere hanno i segnali con livello 3.3V. La scheda Arduino che sta usando è a 3.3 V, quindi vale la pena di controllare se i traslatori ci sono e nel caso toglierli/bypassarli. 3 ore fa, Rwhite ha scritto: Ho imbastito un semplice codice e funziona regolarmente quando utilizzo il pc come monitor. Compreso la scrittura su SD? 3 ore fa, Rwhite ha scritto: Se lancio lo stesso codice in stand-alone non viene salvato alcun dato sulla SD Card. Come alimenti il tutto senza PC? Uno schema + foto dei collegamenti aiuterebbe a capire. Ciao, Ale. Modificato: 25 maggio 2020 da ilguargua precisazione Link al commento Condividi su altri siti More sharing options...
Rwhite Inserita: 27 maggio 2020 Autore Segnala Share Inserita: 27 maggio 2020 Salve a tutti e grazie a chi mi ha risposto. Si, usando il pc come monitor funziona regolarmente anche in scrittura. In stand-alon alimento con un alimentatore 220v 5v Usb. Scusa Livio, la mia ignoranza in materia, i traslatori? grazie Grazie a tutti Graziano Link al commento Condividi su altri siti More sharing options...
ilguargua Inserita: 27 maggio 2020 Segnala Share Inserita: 27 maggio 2020 Intanto prova a commentare tutti i riferimenti alla Serial, visto che standalone non la usi, poi se riesci a collegare qualche led (con relativa resistenza, mi raccomando!) puoi mettere una sorta di debug (es. setup() terminato OK, SD.begin() OK, SD.open() OK, etc. A proposito, vedo che nel codice esegui ad ogni passaggio del loop() SD.open() senza mai effettuare un SD.close(). Sei sicuro che vada bene? Ciao, Ale. Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 27 maggio 2020 Segnala Share Inserita: 27 maggio 2020 16 minuti fa, Rwhite ha scritto: Scusa Livio, la mia ignoranza in materia, i traslatori? Non avendo fatto attenzione ho ipotizzato che tu usassi il classico "uno" a 5V. In questo caso la scheda SD, che lavora a 3.3V, ha necessità di essere interfacciata tramite appositi dipositivi bidirezionali che traslano 3.3V a 5V e viceversa. 10 minuti fa, ilguargua ha scritto: vedo che nel codice esegui ad ogni passaggio del loop() SD.open() senza mai effettuare un SD.close(). Sei sicuro che vada bene? Guarda che lo chiude regolarmente. File dataFile = SD.open("datalog.txt", FILE_WRITE); // if the file is available, write to it: if (dataFile) { dataFile.println(dataString); dataFile.close(); Lo chiude se, e solo se, il file è aperto. Link al commento Condividi su altri siti More sharing options...
ilguargua Inserita: 27 maggio 2020 Segnala Share Inserita: 27 maggio 2020 16 minuti fa, Livio Orsini ha scritto: Guarda che lo chiude regolarmente. Mi era sfuggito, il codice senza tag lo leggo peggio... Ciao, Ale. Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 27 maggio 2020 Segnala Share Inserita: 27 maggio 2020 4 ore fa, ilguargua ha scritto: il codice senza tag lo leggo peggio.. hai ragione, non solo tu. Link al commento Condividi su altri siti More sharing options...
Rwhite Inserita: 27 maggio 2020 Autore Segnala Share Inserita: 27 maggio 2020 Ciao a tutti, il codice l'ho copiato pari pari dagli esempi, senza fare modifiche, questo per evitare eventuali miei errori. Ho pensato di usare eventualmente Arduino 1, ma vorrei anche capire perchè non funziona, visto che vorrei fare delle piccole applicazioni con MKR1010. grazie Graziano Link al commento Condividi su altri siti More sharing options...
ilguargua Inserita: 27 maggio 2020 Segnala Share Inserita: 27 maggio 2020 38 minuti fa, Rwhite ha scritto: ma vorrei anche capire perchè non funziona, Hai provato a commentare le chiamate alle seriale? Quella scheda ha l'USB nativa (sul chip principale) e non vorrei che si impallasse senza connessione. Ciao, Ale. Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 28 maggio 2020 Segnala Share Inserita: 28 maggio 2020 Ragionandoci potrebbe anhce succedere.Con arduino non succede ma non conoscendo MKR1010 direi che commentare tutti i Serial.print è una verifica rapida ed indolore. Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora