Yahoo refuse tous les emails du site. Si vous avez une adresse chez un autre prestataire, c'est le moment de l'utiliser
En cas de soucis, n'hésitez pas à aller faire un tour sur la page de contact en bas de page.
Topic "Data Loger sur Carte SD avec Arduino uno"
Flux RSS des posts récents dans ce topic ( Flux Atom)
Bonjour, C'est un plaisir de se trouver dans cet espace où des gens solidaires mettent à la disposition des autres leurs connaissances. Permettez-moi de vous soumettre mes soucis avec Arduino, la carte SD et le GPS neo 6m-0-001. Le but: c'est de récupérer les trames NMEA et des les enregistrées telles-quelles sur une carte SD. j'arrive à afficher sur le port série de la carte Arduino les trames, sauf lorsque je retire la carte SD pour lire le contenu, les trames n'y sont pas, je trouve une série de caractères numériques qui me semblent être des codes ASCII de mes trames. Voulez-vous bien me donner un coup de pouce, s'il vous plait ?
Cordialement ![/**
* Exemple de code Arduino pour un datalogger basique avec stockage sur carte SD.
*/
/* Dépendances */
#include <SPI.h> // Pour la communication SPI
#include <SD.h> // Pour la communication avec la carte SD
#include <SoftwareSerial.h>
/** Broche CS de la carte SD */
const byte SDCARD_CS_PIN = 10; // A remplacer suivant votre shield SD
SoftwareSerial GpsSerial(7, 8); // RX | TX
/** Nom du fichier de sortie */
const char* OUTPUT_FILENAME = "data.txt";
/** Delai entre deux prise de mesures */
const unsigned long DELAY_BETWEEN_MEASURES =1000;
/** Fichier de sortie avec les mesures */
File file;
/** Fonction setup() */
void setup() {
/* Initialisation du port série (debug) */
Serial.begin(9600);
GpsSerial.begin(9600);
/* Initialisation du port SPI */
pinMode(10, OUTPUT); // Arduino UNO
//pinMode(2, INPUT); // Réception
//pinMode(53, OUTPUT); // Arduino Mega
/* Initialisation de la carte SD */
Serial.println(F("Initialisation de la carte SD ... "));
if (!SD.begin(SDCARD_CS_PIN)) {
Serial.println(F("Erreur : Impossible d'initialiser la carte SD"));
Serial.println(F("Verifiez la carte SD et appuyez sur le bouton RESET"));
for (;;); // Attend appui sur bouton RESET
}
/* Ouvre le fichier de sortie en écriture */
Serial.println(F("Ouverture du fichier de sortie ... "));
file = SD.open(OUTPUT_FILENAME, FILE_WRITE);
if (!file) {
Serial.println(F("Erreur : Impossible d'ouvrir le fichier de sortie"));
Serial.println(F("Verifiez la carte SD et appuyez sur le bouton RESET"));
for (;;); // Attend appui sur bouton RESET
}
/* Ajoute l'entête CSV si le fichier est vide */
if (file.size() == 0) {
Serial.println(F("Ecriture de l'entete CSV ..."));
file.println(F("Données GPS NMEA "));
file.flush();
}
}
/** Fonction loop() */
void loop() {
// Temps de la précédente mesure et actuel
static unsigned long previousMillis = 0;
unsigned long currentMillis = millis();
/* Réalise une prise de mesure toutes les DELAY_BETWEEN_MEASURES millisecondes */
if (currentMillis - previousMillis >= DELAY_BETWEEN_MEASURES) {
previousMillis = currentMillis;
measure();
}
{
if (GpsSerial.available())
{
Serial.write(GpsSerial.read());
}
}
}
/** Fonction de mesure - à personnaliser selon ses besoins */
void measure() {
/* Enregistre les données sur la carte SD */
file.println(GpsSerial.read());
file.println(F(" "));
file.flush();
}
]
Derniére modification le