Question:
arduino crée des fichiers étranges sur la carte SD
dursung
2015-09-22 22:38:57 UTC
view on stackexchange narkive permalink

Je suis nouveau dans Arduino et l'électronique. Je veux faire un projet comprenant un enregistreur de données SD, mais j'ai eu un problème. J'apprécierais que quelqu'un me montre où j'ai fait une erreur.

Premièrement, le circuit a été configuré comme sur l'image:

Hardware setup

J'utilise une carte micro SDHC de 8 Go avec un adaptateur SD. J'ai formaté en FAT32. Je peux lire des fichiers audio au format approprié et lire et imprimer le contenu des fichiers texte.

Mais quand je veux créer un nouveau fichier, un fichier étrange est obtenu sur la carte SD comme sur la photo:

Directory listing

Donc je reformate la carte SD. le code utilisé lors de la création du fichier est le suivant;

  // ouvre un nouveau fichier et ferme-le immédiatement: Serial.println ("Creating example.txt ..."); myFile = SD.open ("example.txt", FILE_WRITE); myFile.close ();  

Quelque part, je lis une carte SDHC avec plus de 2 Go de capacité n'est pas prise en charge dans Arduino et j'en ai acheté 2 Gb SD micro avec adaptateur SD.

Mais dans ce cas, aurduino ne détecte pas la carte SD. s'il vous plaît, aidez-moi.

Veuillez poster tout votre code et le formater correctement. (De plus, si vous parlez de vous-même (je suis, je le ferai, etc.), mettez en majuscule le «je»).
J'ai formaté avec le formateur SD 4.0 mais je n'ai pas fait de différence.Probablement, aurduino ne prend pas en charge certaines cartes SD, ce problème semble que certains pilotes ou graveurs de CD ne détectent pas certains disques compacts.J'ai deux micro sd dont un 8 Go micro sdhc - sandisk - ceci est pris en charge en lecture mais non pris en charge pour écrire un autre microsd- noname de 2 Go - ce n'est pas pris en charge pour la lecture et l'écriture, quelqu'un me dit-il de marquer et de type de carte SD pour pouvoir lire et écrire avec succès.
https://www.arduino.cc/en/Tutorial/Files c'est du code sur lequel je travaille
Il semble que vous ayez essayé d'utiliser une carte trop grande, donc cela n'a pas fonctionné. Ensuite, vous avez acheté des cartes de 2 Go bon marché qui ne fonctionnent pas à l'arrêt complet ou qui ne prennent pas en charge SPI. Mordez la balle et achetez des cartes auprès d'un détaillant réputé.
au lieu d'acheter une nouvelle carte sd car il est difficile de trouver une capacité de 2 Go de bonne qualité. J'envisage d'acheter un module microsd http://urun.n11.com/diger/arduino-micro-sd-kart-modulu-spi-P70554983?cid= 604001 & gclid = CLKEgqXyjcgCFUbmwgod5XgOcA qui prend en charge sdhc etc.
@dursung - Le support SDHC dépend principalement du * logiciel *, donc ce module ne vous aidera pas.
C'est long mais vérifiez votre câblage et vos niveaux de tension. J'ai vu des problèmes de corruption similaires lors de l'écriture sur des cartes SD lorsque l'alimentation de la carte n'était pas tout à fait à la hauteur.
Deux réponses:
RecycleRobot
2015-10-16 08:28:52 UTC
view on stackexchange narkive permalink

J'ai eu des problèmes similaires avec les grandes cartes SD (> 1 Go), j'ai eu différents problèmes avec différentes cartes, certaines choses qui m'ont aidé à déboguer le problème:

  • assurez-vous vos fils ont la même longueur et essayez d'utiliser des fils courts
  • assurez-vous que votre alimentation est suffisante, les lecteurs de cartes SD peuvent consommer jusqu'à 150mA
  • formatez la carte en FAT16 ou FAT32 et n'utilisez jamais "d'effacement rapide", essayez d'utiliser des outils officiels (comme https: // www.sdcard.org/downloads/formatter_4/index.html)
  • assurez-vous que vous avez le bon taux BAUD (9600) pour parler à votre carte
  • La prise en charge des noms de fichiers est assez ancienne, alors gardez-les courts et n'utilisez pas d'espaces ou de caractères spéciaux
  • assurez-vous que la carte SD n'est pas en " verrouillage en écriture ", il y a un petit interrupteur sur le côté de certaines cartes SD qui peut interdire l'écriture (mais permettra la lecture)
Notez que la protection en écriture sur une carte SD dépend du socket et de l'hôte qui la respecte; l'activer ne fait rien pour empêcher l'hôte d'écrire correctement sur la carte.
De plus, SD utilise SPI, pas UART, donc la "vitesse de transmission" n'est pas pertinente, seule la vitesse d'horloge série.
J'ai vu ce problème exact avant d'être causé par une panne de courant. Il y a une pointe de courant pendant les écritures, si la tension chute trop, vous obtenez cet effet. Les cartes plus lentes / plus petites y sont moins sujettes car elles ont un pic plus petit. L'amélioration de l'alimentation électrique de la carte l'a corrigée.
Jim
2017-05-30 07:17:46 UTC
view on stackexchange narkive permalink

J'ai rencontré ce problème. Essayez

  • Si vous utilisez plusieurs appareils avec communication SPI, ignorez les autres en gardant leur esclave, sélectionnez HIGH
  • N'oubliez jamais file.close ()
Si `file.close ()` est si important, enveloppez l'accès au fichier dans une classe si close est toujours appelée dans le destructeur.


Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...