Gestion carte SD

Gestion carte SD

Message non lude 3gsTeam » Jeu 14 Mar 2013 16:55

Bonjour tous,

Je développe un régulateur pour un chauffe eau solaire.

Le matériel le suivant pour le prototype :
- Une carte Arduino Mega.
- Un shield LCD et clavier
- Une carte RTC (DS1307)
- Un lecteur de carte SD
- 4 sondes de température (DS18B20)
- Une carte deux relais (pompe et surchauffe).

Principales fonctions du logiciel :
- La régulation commande de la pompe et de la surchauffe en fonction des mesures de température.
- Enregistrement horodatés des mesures de température dans des fichiers "logbook" sur carte SD.
- Reconnaissance automatique des sondes de température.
- Gestion de menus via le clavier/écran LCD.
- Informations de "debug" par liaison série.

Environnement : WindowsXP, IDE 1.0.3 et librairie "SD"

Le problème pour lequel j’ai besoin d’assistance est la gestion de la carte SD.

Je souhaiterais pourvoir changer de carte (ou l'extraire pour lire les données) SD sans "reseter" la carte Arduino.

L’enregistrement dans le "logbook" est contrôlé par un booléen saisi au le clavier dans un menu dans le loop().
La fonction Sdsetup() est appelée une seule fois à l'activation de l'enregistrement dans le "logbook".

Le premier appel du Sdsetup() est correct :
"Initialisation carte SD ...carte SD initialisee."

Le second appel du Sdsetup()’ après changement de carte SD, est en erreur :
"Initialisation carte SD ...Erreur sur carte SD, ou absente"

Code :
void SDsetup(void) {

Serial.print("Initialisation carte SD ...");

if (!SD.begin(chipSelect)) {
Serial.println("Erreur sur carte SD, ou absente");
return;
}
Serial.println("carte SD initialisee.");
}

Je pense que problème vient qu’au second appel, l’objet SD existe déjà.

J’ai cherché en vain s’il existait une fonction pour effacer(arrêter) l’objet SD.

Merci de vôtre aide.
Avatar de l’utilisateur
3gsTeam
 
Messages: 7
Inscription: Jeu 14 Mar 2013 15:27

Retourner vers Logiciel Arduino

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron