Close

Odpověď na: Formát SD Card

Úvodní stránka Fórum Hardware Arduino Formát SD Card Odpověď na: Formát SD Card

#11285
Axamith
Účastník

Ahoj, mám čtečku Micro SD.

Použil jsem krom jiných tuto sketch:

// created 28 Mar 2011
// by Limor Fried
// modified 9 Apr 2012
// by Tom Igoe
// modifed 23.3.2013
// by Pavel Putna

#include <SD.h>

// nastaví proměné pro info karty
Sd2Card card;
SdVolume volume;
SdFile root;

// nastavte správně
// Arduino Ethernet shield: pin 4 – náš případ
// Adafruit SD shields and modules: pin 10
// Sparkfun SD shield: pin 8
const int chipSelect = SS;

void setup()
{
Serial.begin(9600);

Serial.print(„\nInicializace SD karty…“);
pinMode(4, OUTPUT);

// inicializace
if (!card.init(SPI_HALF_SPEED, chipSelect)) {
Serial.println(„\nPametova karta nebyla detekovana“);
return;
} else {
Serial.println(„\nPametova karta nalezena.“);
}

// Určí typ karty
Serial.print(„\nTyp karty: „);
switch(card.type()) {
case SD_CARD_TYPE_SD1:
Serial.println(„SD1“);
break;
case SD_CARD_TYPE_SD2:
Serial.println(„SD2“);
break;
case SD_CARD_TYPE_SDHC:
Serial.println(„SDHC“);
break;
default:
Serial.println(„Neznama“);
}

// Now we will try to open the ‚volume’/’partition‘ – it should be FAT16 or FAT32
if (!volume.init(card)) {
Serial.println(„System souboru FAT16/FAT32 nenalezen.\nZkuste naformatovat kartu“);
return;
}

// print the type and size of the first FAT-type volume
uint32_t volumesize;
Serial.print(„\nVolume type is FAT“);
Serial.println(volume.fatType(), DEC);
Serial.println();

volumesize = volume.blocksPerCluster(); // clusters are collections of blocks
volumesize *= volume.clusterCount(); // we’ll have a lot of clusters
volumesize *= 512; // SD card blocks are always 512 bytes
Serial.print(„Volume size (bytes): „);
Serial.println(volumesize);
Serial.print(„Volume size (Kbytes): „);
volumesize /= 1024;
Serial.println(volumesize);
Serial.print(„Volume size (Mbytes): „);
volumesize /= 1024;
Serial.println(volumesize);

Serial.println(„\nNalezene soubory na karte (nazev, datum a velikost v bajtech): „);
root.openRoot(volume);

// list all files in the card with date and size
root.ls(LS_R | LS_DATE | LS_SIZE);
}

void loop(void) {
}

Čtečku jsem zkoušel jak na Pro mini, tak na UNO a Wemos D1. Vím, že je třeba definovat vstup na Arduinu pinu. Volba 4, 8, 10 (dle Arduina). NIC nejede, ani volba SS. Nebo spíš ji detekuje, nenajde FAT a veškeré pokusy s kartou z příkladů z knihoven nejedou, respektive s kartou nekomunikují. Koupil jsem i novou kartu, pro klid duše, pořád bez výsledků. Buď kartu nedetekuje, nebo ji detekuje a nerozpozná FAT16/32