• Počítač nevidí paměťovou kartu: SD, miniSD, microSD. Co dělat? SD karta jako vnitřní paměť systému Android

    Instalace programů do vnitřní paměti tabletu se provádí ve výchozím nastavení. Pro umístění aplikace na vestavěnou paměťovou kartu stačí provést standardní instalaci. Odeslání na externí médium bude trvat trochu déle. Jedna jednoduchá relace nastavení vyčistí systém souborů zařízení a nainstaluje každou novou aplikaci na SD kartu.

    Možnost 1: zadání adresy instalace

    Některé programy se během instalace zeptají uživatele, kde má zůstat. Určení instalační adresy není obtížné. Vyberte vyměnitelnou paměťovou kartu a je to. To se ale týká jen některých aplikací, takové menšiny.

    Možnost 2: Nastavte instalační cestu předem

    Aplikace musí podporovat opravu app2sd, pokud je verze operačního systému Android v tabletu starší než 2.2. V nastavení nebudou žádné takové položky. Pro všechny nové verze je tento algoritmus pro řešení problému vhodný.

    Přejděte do „Nastavení“, najděte položku „Paměť“. Klikněte na něj a otevře se nabídka nastavení paměti. Zde se také můžete dozvědět o množství volné paměti na vašem zařízení, kolik místa je obecně na tabletu, jak velká je obsazená vnitřní paměť. Někteří lidé vloží SD kartu do čtečky karet a zjistí data o flashdisku v počítači, aniž by tušili, že to lze provést na tabletu.

    Najděte sekci „Výchozí vypálení disku“, která vám nabízí několik zdrojů pro instalaci aplikací. Mezi nimi vyberte „SD-card“. Klikněte na tuto položku a naproti ní uvidíte kruh. Instalace aplikací na paměťovou kartu v tabletu je nyní výchozí.

    Možnost 3: Použití programů třetích stran

    S největší pravděpodobností vám tato metoda pomůže. Ale požaduje. Zda máte nebo nemáte práva root na tabletu, můžete zjistit pomocí. Stahujeme speciální aplikace, jako je FolderMount nebo GL na SD, které pomohou přenést herní a programová data na SD paměťovou kartu. Viz video pokyny níže:

    Možnost 3

    Nainstalujte do počítače tablet program, který vám umožní vybrat adresu instalace. Před přímou instalací aplikace se zobrazí dialogové okno, ve kterém zadáte adresu instalace.

    Toto je nejpohodlnější nabízená možnost. Protože nucená instalace "default" není ve všech případech žádoucí. Nástroje jako InstallManager, MagicUneracer pomohou organizovat ekonomické a racionální zaplnění paměti tabletu. Mimochodem, tyto stejné programy také odstraňují programy se všemi pomocnými soubory.

    Pokud aplikace není nainstalována na SD kartě

    Otevřete položku "Aplikace" v "Nastavení". V seznamu aplikací vyberte tu, kterou chcete přenést na vyměnitelnou kartu. Klikněte na ikonu aplikace a otevře se nabídka. Podívejte se, zda má možnost „Přesunout“. Pokud existuje, stiskněte tlačítko volby a vyberte paměťovou kartu. Tento postup nevyžaduje instalaci dalšího softwaru, můžete to udělat sami.

    Nyní téměř každé zařízení s operačním systémem Android podporuje paměťové karty (microSD). Někdy se však vyskytnou problémy spojené s jeho detekcí v zařízení. Důvodů pro výskyt takového problému může být několik a k jejich vyřešení jsou zapotřebí určité manipulace. Dále zvážíme metody pro opravu takové chyby.

    Než budete pokračovat podle níže uvedených pokynů, doporučujeme provést následující:

    • Restartujte zařízení. Možná, že vzniklý problém je ojedinělý případ a při příštím spuštění zařízení jednoduše zmizí a flash disk bude fungovat správně.
    • Znovu se připojte. Někdy se vyměnitelné médium nezobrazí, protože kontakty jsou uvolněné nebo ucpané. Vytáhněte jej a vložte zpět, poté zkontrolujte správnost detekce.
    • Maximální hlasitost. Některá mobilní zařízení, zejména starší, podporují pouze určité velikosti paměťových karet. Doporučujeme vám seznámit se s touto charakteristikou na oficiálních stránkách výrobce nebo v pokynech, abyste se ujistili, že SD karta s tímto množstvím paměti funguje normálně s vaším zařízením.
    • Zkontrolujte na jiných zařízeních. Je možné, že je flash disk poškozen nebo rozbitý. Vložte jej do jiného smartphonu nebo tabletu, notebooku nebo počítače a ujistěte se, že funguje. Pokud není čitelný na žádném zařízení, měl by být vyměněn za nový.

    Kromě takových problémů s detekcí se objeví chyba oznamující, že flash disk byl poškozen. Podrobný návod, jak to opravit, najdete v našem materiálu na níže uvedeném odkazu.

    Pokud předchozí tipy nepřinesly žádný výsledek a paměťové médium stále není detekováno smartphonem nebo tabletem, věnujte pozornost níže uvedeným metodám. Seřadili jsme je podle obtížnosti, abyste je mohli bez velkého úsilí implementovat v pořadí.

    Metoda 1: Vymazání dat mezipaměti

    Denně se ve vašem zařízení shromažďují dočasná data. Zabírají nejen fyzický prostor v paměti, ale mohou způsobit i různé poruchy zařízení. Nejprve doporučujeme vymazat mezipaměť prostřednictvím nabídky Zotavení. V něm byste měli vybrat položku Vymazat oddíl mezipaměti, počkejte na dokončení postupu a restartujte telefon.

    Podrobný návod, jak se v operačním systému Android přepnout do Recovery módu a jak jinak můžete vymazat mezipaměť, najdete v následujících článcích.

    Metoda 2: Zkontrolujte chyby paměťové karty

    V rámci této metody postupujte podle několika jednoduchých kroků:


    Pokud skenování chyb nepomohlo, je třeba přijmout razantnější opatření.

    Metoda 3: Naformátujte médium

    Chcete-li provést tuto metodu, budete také muset připojit kartu SD k počítači nebo notebooku pomocí adaptérů nebo speciálních adaptérů.

    Vezměte prosím na vědomí, že při provádění tohoto postupu budou všechny informace vymazány z vyměnitelných médií, proto vám před zahájením doporučujeme uložit důležitá data na jakékoli jiné vhodné místo.

    Pokud máte nějaké potíže s formátováním, doporučujeme přečíst si náš další článek na odkazu níže. Najdete tam sedm způsobů, jak tento problém vyřešit, a můžete jej snadno opravit.

    Nejčastěji pomáhá odstranění dat z karty v případech, kdy přestala být detekována po připojení k jinému zařízení. Stačí postupovat podle výše uvedených pokynů, poté okamžitě vložit médium do smartphonu nebo tabletu a zkontrolovat jeho výkon.

    Metoda 4: Vytvořte prázdný svazek

    Někdy kvůli skutečnosti, že karta má skrytou část, její paměť nestačí k uložení informací ze smartphonu. Mimo jiné jsou v tomto případě problémy s detekcí. Chcete-li je opravit, musíte kartu připojit k počítači a postupovat takto:

    1. Prostřednictvím menu "Start" jít do "Kontrolní panel".
    2. Zde vyberte kategorii "Správa".
    3. Mezi seznamem všech komponent najděte a dvakrát klikněte na "Počítačový management".
    4. V okně, které se otevře, byste měli vybrat "Správa disků".
    5. Zde se podívejte na číslo disku, který je vaším flash diskem, a také si poznamenejte celkové množství paměti. Zapište si nebo zapamatujte si tyto informace pro pozdější použití.
    6. Kombinace kláves Win+R spustit snap "Běh". Zadejte cmd a klikněte na "OK".
    7. V okně, které se otevře, zadejte příkaz diskpart a klikněte Vstupte.
    8. Udělte oprávnění ke spuštění nástroje.
    9. Nyní jste přešli k programu pro práci s diskovými oddíly. Má identickou "Příkazový řádek" Pohled. Zde musíte zadat disk seznamu a znovu kliknout na Vstupte.
    10. Podívejte se na seznam disků, najděte tam svůj flash disk a zadejte select disk 1, kde 1 – číslo disku požadovaného média.
    11. Zbývá pouze vymazat všechna data a oddíly. Tento postup se provádí pomocí příkazu clean.
    12. Počkejte na dokončení procesu a můžete zavřít okno.

    Nyní jsme dosáhli toho, že SD karta je zcela čistá: byly z ní odstraněny všechny informace, otevřené a skryté oddíly. Pro normální provoz musí být v telefonu vytvořen nový svazek. Dělá se to takto:

    1. Pro návrat do nabídky správy disku opakujte první čtyři kroky z předchozího pokynu.
    2. Vyberte požadované vyměnitelné médium, klikněte pravým tlačítkem na značku s jeho pamětí a vyberte "Vytvořit nový svazek".
    3. Otevře se před vámi Průvodce novým jednoduchým svazkem. Chcete-li začít, klikněte na "Dále".
    4. Nemusíte zadávat velikost svazku, nechte jej zabírat veškerý volný prostor, takže flash disk bude lépe fungovat s mobilním zařízením. Stačí tedy přejít k dalšímu kroku.
    5. Přiřaďte svazku libovolné volné písmeno a klikněte "Dále".
    6. Formátování by mělo být provedeno, pokud není výchozí formát FAT32. Poté vyberte tento souborový systém, ponechte velikost clusteru "Výchozí" a jít dál.
    7. Po dokončení procedury se před vámi zobrazí informace o vybraných parametrech. Zkontrolujte je a dokončete práci.
    8. Nyní v nabídce "Správa disků" uvidíte nový svazek, který zabírá veškerý logický prostor na paměťové kartě. To znamená, že proces byl úspěšně dokončen.

    Zbývá pouze vyjmout USB flash disk z počítače nebo notebooku a vložit jej do mobilního zařízení.

    Pokud vaše zařízení nemá dostatek vnitřní paměti, Lze použít SD kartu jako interní úložiště pro váš telefon Android. Tato funkce, nazvaná Adoptable Storage, umožňuje OS Android formátovat externí paměťové médium jako trvalé interní úložiště. Informace na nainstalované SD kartě jsou šifrované a nelze je dále používat na jiném zařízení.

    SD karta je velmi pohodlnou možností pro ukládání fotografií, skladeb a videí. I když máte ve svém smartphonu Android velké množství vnitřního úložiště, vždy můžete potřebovat velký kus úložiště pro uložení dlouhých videí pořízených fotoaparátem s vysokým rozlišením vašeho telefonu.

    Je důležité vědět

    Má to jednu nevýhodu, SD čip může zaostávat při nahrávání videa ve vysokém rozlišení.

    Android ve výchozím nastavení ve vnitřní paměti a jen občas nahrává data na SD kartu. Pokud tedy váš telefon postrádá interní úložiště, například v případě levných zařízení Android One, nebudete muset instalovat žádné další aplikace.

    Co je úložiště úložiště?

    Úložiště je hlavní pamětí vašeho smartphonu, ale v případě potřeby jej lze rozšířit pomocí SD karty. Tento na Androidu se nazývá Adoptable Storage. To vám umožní používat vyměnitelnou kartu microSD nainstalovanou v telefonu Android jako primární úložiště. Můžete tak snadno vyřešit problém, jak udělat z SD karty hlavní paměť v systému Android a překonat nedostatek místa, pokud má telefon malý vnitřní objem.

    Vlastnosti použití karty jako hlavního úložiště

    V tomto postupu je třeba vzít v úvahu několik důležitých funkcí.

    Bude užitečné

    Při používání disku, ať už je to SD flash disk nebo USB disk, je důležité si pamatovat, v jakém formátu toto zařízení je a zda jej podporuje operační systém Android, a existují čtyři typy hlavních formátů souborů: FAT32 nebo exFAT, ext4 nebo f2fs.

    Jak změnit paměť telefonu na paměťovou kartu Android? Otázka není úplně správná, nelze ji úplně nahradit, můžete pouze "zvýšit" další hlasitost, jak to bylo.

    Použití vaší SD karty jako hlavního úložiště může být skvělým řešením pro milovníky hudby a televizních seriálů na cestě do práce nebo na dlouhé cestě. Ale jak to často bývá, rozšíření paměti vždy závisí na ceně požadovaného zařízení, protože se liší jak rychlostí a objemem, tak i přizpůsobivou funkcí ukládání informací. Zde jsou některé nuance, které lze zvážit z různých úhlů - jak v negativním, tak v pozitivním směru:

    Jak používat SD kartu jako interní úložiště v systému Android?

    Máte dostatek vnitřního úložiště pro uložení všech vašich dat?

    Jak vyměnit interní paměť telefonu za externí SD kartu na Androidu? Konfigurace karty SD tak, aby fungovala jako interní úložiště v systému Android, je ve skutečnosti poměrně jednoduchý proces. Není na tom nic složitého a dále uvidíte sami.

    Je možné, že vaše zařízení nepodporuje funkci Adoptable Storage, i když smartphone používá Android 6.0 nebo vyšší (to se stává, vše závisí na modelu a značce smartphonu). Výrobce zařízení mohl tuto funkci zakázat. Existují však metody příkazového řádku, které umožňují vynutit použití flash disku pro ukládání dat.

    Základní kroky formátování jsou uvedeny níže.


    Na další obrazovce máte poslední šanci se sami rozhodnout, zda chcete změnit názor.

    Je důležité vědět

    Nezapomeňte si vytvořit záložní kopii dat, po zformátování informace zmizí beze stopy!


    Jakmile je proces formátování dokončen, můžete vyměnitelnou SD kartu použít jako „dočasné“ nebo „vyměnitelné“ trvalé umístění. Ale mějte na paměti, že hot-swap a vysunutí již nebudou k dispozici, jak jste to možná dělali dříve. Proto nevysunujte flash disk bez použití možnosti Vysunout. Kromě toho můžete prakticky odstranit místo akceptované operačním systémem, což se proto nedoporučuje, protože to může způsobit určité chyby v zařízení. Nyní víte, jak udělat z paměťové karty hlavní paměť v systému Android.

    Karty SD a microSD mohou výrazně rozšířit možnosti projektů Arduino, které pracují s velkým množstvím dat: dataloggery, meteostanice, systémy chytré domácnosti. Desky arduino jsou vybaveny relativně malou vnitřní pamětí, pouze do 4 kilobajtů, včetně flash paměti i EEPROM. Tato paměť nebude stačit na zápis velkého množství dat, zvláště pokud se deska neustále vypíná nebo vypíná. Připojení Arduino SD karty jako externího disku vám umožní znásobit úložný prostor pro jakékoli informace. Vyměnitelné SD disky jsou levné, snadno se připojují a snadno se používají. Správnému připojení SD karty k Arduinu se budeme věnovat v článku.

    Práce s pamětí SD v arduinu není nijak zvlášť obtížná. Nejjednodušší je připojit hotový modul a použít standardní knihovnu. Začneme touto možností.

    Použití hotového modulu má různé výhody. Jedná se o poměrně jednoduchý a pohodlný nástroj pro práci s velkým množstvím dat. Nevyžaduje speciální dovednosti v zapojení, všechny konektory jsou podepsány přímo na desce. Musíte platit za pohodlí, ale náklady na modul jsou relativně nízké, lze jej snadno najít za přijatelné ceny v ruských a zahraničních internetových obchodech.

    Univerzální modul je obyčejná deska, na které je umístěn slot pro kartu, odpory a regulátor napětí. Má následující technické vlastnosti:

    • Rozsah provozního napětí 4,5-5 V;
    • Podpora SD karty až 2 GB;
    • Proud 80 mA;
    • Systém souborů FAT 16.

    Modul SD karty implementuje takové funkce, jako je ukládání, čtení a zápis informací na kartu, které jsou nutné pro normální provoz zařízení založeného na mikrokontroléru.


    Nenákladné moduly paměťových karet mají přirozeně také nevýhody. Například nejlevnější a nejběžnější modely podporují pouze karty do 4GB a téměř všechny moduly umožňují ukládat na SD kartu soubory až do velikosti dvou gigabajtů – to je omezení souborového systému FAT používaného u většiny modelů.

    Další nevýhodou paměťových karet je poměrně dlouhá doba záznamu, ale existují způsoby, jak s ní pracovat, umožňující zvýšit její rychlost. K tomu se používá mechanismus ukládání do mezipaměti, kdy se data nejprve shromažďují v paměti RAM a poté se ukládají na paměťovou kartu.

    Desky Arduino pro práci s SD

    Pro práci s SD kartou existuje několik různých desek:

    • Arduino Ethernet - Tato deska je vybavena speciálním modulem pro výstup dat. Pro výstup CS je použit pin 4. Pro správnou funkci je nutné použít příkaz SD.begin(4).
    • Adafruit Micro-SD je vývojová deska, která se používá při práci s Micro-SD kartami.
    • Sparkfun SD - namontovaný na horní straně Arduina, CS používá pin 8 pro výstup. Nová verze desky má připojení 3,3V a vestavěný šestibitový měnič.

    Připojení SD a microSD k Arduinu

    Existují dva typy karet – microSD a SD. Jsou totožné spojením, strukturou a programem, liší se však pouze velikostí. Před použitím se doporučuje naformátovat SD kartu. Obvykle jsou nové karty již naformátované a připravené k použití, ale pokud používáte starou kartu, je lepší ji naformátovat v souborovém systému Arduino. K provedení postupu musí být na počítači nainstalována knihovna SD, nejlépe FAT16. Pro formátování v systému Windows musíte kliknout na ikonu karty a kliknout na „Formátovat“.

    Pro připojení karty slouží 6 kontaktů, interakce se provádí přes rozhraní SPI. Vypadá to jako šestipinový konektor na desce. Pro připojení karty potřebujete samotný ovladač, modul karty a 6 vodičů. Kromě SPI existuje režim SDIO, ale je obtížně implementovatelný a špatně kompatibilní s Arduinem. SPI lze snadno konfigurovat pro práci se všemi mikrokontroléry, proto se doporučuje používat jej.

    Digitální piny jsou zapojeny následovně: u desky Arduino Nano nebo Uno je pin MOSI připojen k D11, MISO k D12, SCK k D13, CS k 4, VCC k +5 V, .GND k GND. Deska má konektory pro připojení na 3,3 a 5 voltů. Napájení samotné karty je 3,3 voltu, takže je jednodušší použít mikrokontrolér se stejným napájením, jinak potřebujete převodníky úrovně napětí. Na nejběžnějších deskách Arduino je takový výstup.

    Při připojování SD karty je třeba vzít v úvahu shodu pinů SPI pro různé typy desek Arduino:

    Knihovna Arduino pro práci s SD a microSD

    Pro pohodlí práce s externími datovými disky jsou v Arduino IDE k dispozici hotové knihovny. Ve většině případů nebudete muset nic stahovat ani instalovat.

    Chcete-li do náčrtu zahrnout knihovnu, použijte příkaz include:

    #zahrnout #zahrnout

    Knihovna SPI je potřebná pro správný chod zařízení připojených přes SPI.

    Knihovní funkce jsou potřebné pro čtení a zápis dat na kartu. Knihovna může podporovat SD a SDHC karty.

    Jména se zapisují ve formátu 8.3, tedy 8 znaků pro jméno, 3 pro příponu. Cesta k souboru se zapisuje pomocí lomítek "/".

    Příklady vestavěné knihovny SD

    Arduino IDE má vestavěné příklady pro rychlé učení funkcí knihovny:

    • Card Info je extrakcí informací uložených na SD kartě. S jeho pomocí můžete zjistit, v jakém souborovém systému je karta naformátována, množství volného místa, jaká data jsou zaznamenána.
    • Yun Datalogger - umožňuje zaznamenávat data protokolu ze tří senzorů na kartu.
    • Datalogger - registruje a ukládá data přijatá ze senzoru na kartu.
    • Dump File - načte data z karty, přenese je na sériový port.
    • Soubory – vytváří a maže data. Existuje funkce file.write(), která ukládá zapsaná data do vyrovnávací paměti. K přesunu informací do mapy dochází při volání funkcí flush() nebo close(), proto je důležité je po každém otevření souboru zavřít, jinak dojde ke ztrátě dat.
    • Čtení Zápis - zapisuje a čte soubory z karty.

    Funkce knihovny SD

    Knihovna Arduino SD obsahuje různé funkce, které lze použít k manipulaci s daty. Funkce třídy SD:

    • begin() - funkce inicializuje knihovnu, přiřadí kontakt pro signál.
    • existuje() - je navržena tak, aby zkontrolovala, zda mapa obsahuje potřebné informace.
    • mkdir() - umožňuje vytvořit požadovanou složku na paměťové kartě.
    • rmdir() - Pomocí této funkce můžete odstranit složku. Je důležité, aby složka, kterou chcete odstranit, byla prázdná.
    • open() - umožňuje otevřít soubor, který potřebujete zapsat nebo přečíst. Pokud požadovaný soubor není na mapě, bude vytvořen.
    • remove() - odstraní jakýkoli soubor.

    V reakci na všechny tyto funkce musí nastat jedna z hodnot - pravda, v případě úspěšného dokončení operace a nepravda v případě selhání.

    Vytvářejte, upravujte a mažte soubory.

    Pro práci se soubory v arduinu existuje třída File. Obsahuje funkce, které jsou určeny k zápisu a čtení informací z karty:

    • available() - Zkontroluje, zda soubor obsahuje bajty, které jsou k dispozici pro čtení. Odezvou je množství místa, které je k dispozici pro čtení.
    • close() - zavře soubor, předtím zkontroluje, zda jsou data uložena na kartě.
    • flush() - funkce umožňuje ujistit se, že jsou data zapsána na kartu.
    • name() - vrací ukazatel na jméno.
    • peek() - čte bajty dat, aniž by přesunul ukazatel na další znak.
    • position() - vyhledá aktuální pozici ukazatele v souboru.
    • print() - výstup dat do samostatného souboru.
    • println() - tiskne data do souboru až do bodu, kde se objeví návrat vozíku a prázdný řádek.
    • seek() - změní pozici aktuální pozice v souboru.
    • size() - zobrazí informace o velikosti dat.
    • read() - čte informace.
    • write() - zapisuje do souboru.
    • isDirectory() - pomocí této metody zkontroluje, zda je soubor adresářem, tedy adresářem nebo složkou.
    • openNextFile() - zobrazí název dalšího souboru.
    • rewindDirectory() - vrátí se na první soubor v adresáři.

    Aby deska fungovala správně, musíte se ujistit, že je nakonfigurován výstup SS.

    Náčrt příkladu práce s knihovnou Arduino SD

    Níže je náčrt ukazující příklad práce s modulem paměťové karty.

    /* Datalogger pomocí SD karet Příklad ukládání dat z analogových portů na SD kartu. Data budou do souboru uložena jako sada řádků s oddělovačem polí ve tvaru symbolu "," Schéma zapojení: * Analogové senzory jsou připojeny na analogové piny * Modul SD karty je připojen k SPI podle standardního schématu: ** MOSI - pin 11 ** MISO - pin 12 ** CLK - pin 13 ** CS - pin 4 */ #include #zahrnout const int PIN_CHIP_SELECT = 4; void setup() ( Serial.begin(9600); Serial.print("Inicializace SD karty..."); // Tento pin musí být definován jako OUTPUT pinMode(10, OUTPUT); // Pokus o inicializaci modulu, pokud (!SD.begin(PIN_CHIP_SELECT)) (Serial.println("Karta selhala /)" inicializovala se něco špatně";n ); ) void loop() ( // Řetězec s daty, který vložíme do souboru: String logStringData = ""; // Čtení dat z portů a zápis do řetězce pro (int i = 0; i< 5; i++) { int sensor = analogRead(i); logStringData += String(sensor); if (i < 4) { logStringData += ","; } } // Открываем файл, но помним, что одновременно можно работать только с одним файлом. // Если файла с таким именем не будет, ардуино создаст его. File dataFile = SD.open("datalog.csv", FILE_WRITE); // Если все хорошо, то записываем строку: if (dataFile) { dataFile.println(logStringData); dataFile.close(); // Публикуем в мониторе порта для отладки Serial.println(logStringData); } else { // Сообщаем об ошибке, если все плохо Serial.println("error opening datalog.csv"); } }

    Vytvoření souboru a výběr názvu pro arduino SD kartu

    Vytvoření souboru je jedním z nejčastějších úkolů při práci s SD kartami v Arduinu. Jak jsme viděli v předchozí skice, pro vytvoření souboru jej jednoduše otevřete. Pokud chceme zkontrolovat, zda takový soubor existuje, můžeme použít funkci existuje():

    • SD.exists("datalog.csv");

    Funkce vrátí hodnotu TRUE, pokud soubor existuje.

    Oblíbenou praxí při vytváření projektů dataloggerů je rozdělení velkých souborů na menší, které je pohodlnější aktualizovat a otevřít na počítači. Například místo jednoho velmi velkého souboru datalog.csv na SD kartě můžete mít několik malých souborů přidáním čísla na konec: datalog01.csv, datalog02.csv atd.
    Zde je příklad náčrtu, který vám pomůže dokončit práci:

    char filename = "datalog00.csv"; // Počáteční název pro (uint8_t i = 0; i< 100; i++) { filename = i / 10 + "0"; filename = i % 10 + "0"; if (! SD.exists(filename)) { // Проверяем наличие logfile = SD.open(filename, FILE_WRITE); break; // Дальше продолжать смысла нет } }

    Závěr

    Jak jsme viděli, připojení paměťové SD karty k Arduinu a její použití v projektu není příliš obtížné. K tomu jsou v Arduino IDE hotové knihovny a široká škála možností modulů. Paměťovou kartu koupíte v každém obchodě s elektronikou, jsou levné a zároveň mohou výrazně rozšířit potenciál desky Arduino. Pomocí paměťových karet lze shromažďovat a ukládat velké množství dat pro pozdější analýzu. S pomocí našeho článku budeme schopni vybavit naše výzkumné projekty pamětí, vytvořit systémy hlasových hlášení pro chytrou domácnost, vytvořit jednoduchý wav přehrávač a mnoho dalšího.

    Na displeji jsme zobrazili obrázek z SD karty, ale některé body v něm chyběly, první - připojení samotné karty, druhý - byla zvažována pouze část funkcí knihovny Petit FatFs Pojďme se na tyto body podívat blíže.

    Komunikace s kartou je možná přes jedno ze dvou rozhraní, SPI nebo SD.



    Musím říct, že SD rozhraní umí pracovat v jednobitovém i čtyřbitovém režimu.

    Schéma připojení karty přes SPI je standardní a vypadá takto, nevyužité piny karty je nutné připojit k napájení pomocí rezistoru 10K.


    Ale v amatérských konstrukcích jsou pull-up rezistory často zanedbávány, což zjednodušuje schéma zapojení.

    Nutno podotknout, že při připojení přes SPI je karta velmi náročná na napájecí napětí a malý pokles napájecího napětí vede k nefunkčnosti karty, to je ověřeno z vlastní zkušenosti, o SD rozhraní není co říci, zatím jsem nezkoušel. To vše bylo napsáno pro napájení je nutné osadit kondenzátory. Co se týče tlumivky, ta musí být dimenzována na proud do 100mA, ale není nutné ji instalovat.

    Výše uvedená schémata ukazují, že karta potřebuje k práci 3,3 voltu, respektive v datových přenosových vedeních by napětí nemělo překročit rozsah 0 - 3,3 voltu a zde vyvstává otázka, co když je MC napájen 5 volty?
    Odpověď je jednoduchá, musíte datové linky sladit, a to lze provést pomocí konvenčního odporového děliče.


    Diagram ukazuje, že MISO linka nemusí být spárována, protože data jsou přenášena touto linkou z karty na MK.
    Popravdě málokdo připojuje kartu přímo k MK, mnohem pohodlnější je připojit k MK konektor karty nebo dokoupit shield s konektorem a všemi potřebnými svazky.

    Přišli jsme na souvislost, nyní se podíváme na to, jak knihovnu používat Petit FatFs, který je určen pro 8bitové mikrokontroléry s malou velikostí paměti.

    Knihovna se skládá z 5 souborů:
    celé číslo.h- hlavičkový soubor, který popisuje hlavní datové typy.

    diskio.h- hlavičkový soubor, který deklaruje prototypy nízkoúrovňových funkcí pro práci s diskem a stavové kódy, které vracejí.

    diskio.c- v tomto souboru by měly být implementovány nízkoúrovňové funkce, zpočátku jsou zde "pahýly".

    pffconf.h- konfigurační soubor.

    pff.h- hlavičkový soubor, ve kterém jsou deklarovány prototypy funkcí pro interakci s diskovým souborovým systémem.

    pff.c- soubor obsahuje implementace funkcí pro interakci se souborovým systémem disku.

    Je vidět, že aby knihovna fungovala, je potřeba implementovat nízkoúrovňové funkce. Ale pokud mluvíme o AVR nebo PIC, pro ně na webu si můžete stáhnout příklad práce s knihovnou, která obsahuje soubor mmc, jsou v něm již implementovány nízkoúrovňové funkce. Dále je nutné nastavit konfiguraci knihovny v souboru pff.h a napsat funkce potřebné pro fungování SPI.

    Funkce Petit FatFs.

    FRESULT pf_mount (FATFS*)- funkce připojí/odpojí disk. Tuto funkci je nutné zavolat před zahájením práce s diskem, pokud funkci zavoláte s nulovým ukazatelem, disk se odpojí. Funkci lze volat kdykoliv.

    Možnosti
    FATFS* fs- ukazatel na objekt typu FATFS, popis této struktury naleznete v souboru pff.h. Potřebujeme pouze deklarovat proměnnou tohoto typu.

    Návratové hodnoty:
    FR_OK (0)
    FR_NOT_READY- zařízení nelze inicializovat
    FR_DISK_ERR- při čtení z disku došlo k chybě
    FR_NO_FILESYSTEM- disk nemá platný oddíl FAT

    FATFS fs;//deklarování objektu typu FATFS //připojení disku if (pf_mount(&fs) == FR_OK) ( //připojení disku, práce s ním //připojení disku pf_mount(NULL); ) else ( //nepodařilo se připojit disk )

    FRESULT pf_open (cesta const char*)- funkce otevře existující soubor. Po otevření souboru s ním můžete pracovat, tedy z něj číst a zapisovat do něj. S otevřeným souborem můžete pracovat, dokud se neotevře jiný soubor. Funkci lze volat kdykoliv.

    Možnosti
    const char*cesta- ukazatel na řetězec označující cestu k souboru. Cesta musí být uvedena zcela relativně ke kořenovému adresáři, přičemž adresáře oddělte lomítkem.

    Návratové hodnoty:
    FR_OK (0)- vráceno v případě úspěšného provedení funkce
    FR_NO_FILE- soubor nenalezen
    FR_DISK_ERR- chyba disku
    FR_NOT_ENABLED- disk nebyl připojen

    FATFS fs;//Deklarujte objekt typu FATFS //Připojte disk if (pf_mount(&fs) == FR_OK) ( //Otevřete soubor v kořenovém adresáři if(pf_open("hello.txt") == FR_OK) ( //Udělejte něco ) //Otevřete soubor ve složce něco nového if/) /hello.txt" disk pf_mount(NULL); ) else ( //nepodařilo se připojit disk )

    FRESULT pf_read(void* buff, WORD btr, WORD* br)- funkce načte zadaný počet bajtů ze souboru a uloží je do vyrovnávací paměti. Pokud je počet přečtených bajtů menší než zadaný, pak bylo dosaženo konce souboru.
    #define _USE_READ 1

    Možnosti:
    prázdno*buff- ukazatel na vyrovnávací paměť, ve které jsou uložena načtená data
    SLOVO btr- počet bajtů ke čtení
    SLOVO*br- ukazatel na proměnnou, která ukládá počet přečtených bajtů.

    Návratové hodnoty:
    FR_OK (0)- vráceno v případě úspěšného provedení funkce
    FR_DISK_ERR- chyba disku
    FR_NOT_OPENED- soubor nebyl otevřen
    FR_NOT_ENABLED- disk nebyl připojen

    FATFS fs;//deklaruje objekt typu FATFS BYTE buff;//vyrovnávací paměť pro čtení souboru WORD br; // Čítač čtených bajtů // Připojuji disk IF (pf_mount (& fs) == fr_ok) (// Otevřít soubor ležící v kořenovém adresáři if (Pf_open ("Hello.txt") == Fr_ok) (// Přečteme 10 bajtů PF_READ (BUFF, 10, & Br); IF) (0 BR! = BR znamená, že soubor není dosažen we1) ))

    FRESULT pf_write(const void* buff, WORD btw, WORD* bw)- funkce umožňuje zapisovat data do otevřeného souboru. Aby funkce v souboru pffconf.h fungovala, je potřeba zapisovat
    #define _USE_WRITE 1

    Možnosti:
    prázdno*buff- ukazatel na vyrovnávací paměť, kterou chceme zapisovat, nulová hodnota dokončí zápis
    WORD btw- počet bajtů, které chceme zapsat
    WORD*bw- ukazatel na proměnnou, která uchovává počet bajtů, které lze zapsat. Analýzou této proměnné můžete zjistit, zda byl dosažen konec souboru.

    Návratové hodnoty:
    FR_OK (0)- vráceno v případě úspěšného provedení funkce
    FR_DISK_ERR- chyba disku
    FR_NOT_OPENED- soubor nebyl otevřen
    FR_NOT_ENABLED- disk nebyl připojen

    Vzhledem k tomu, že je knihovna určena pro mikrokontroléry s malým množstvím paměti, má tato funkce řadu omezení:

    • nemůžete vytvářet nové soubory a můžete zapisovat pouze do existujících
    • velikost souboru nelze zvětšit
    • nelze aktualizovat časové razítko
    • operaci zápisu lze spustit/zastavit pouze na hranici sektoru
    • atribut souboru pouze pro čtení nemůže zabránit zápisu

    Abyste pochopili předposlední bod, musíte vědět, že paměť karty je rozdělena do bloků (sektorů) po 512 bajtech a nahrávání lze spustit pouze od začátku sektoru. Pokud tedy chceme zapsat 1000 bajtů, pak se první sektor zapíše celý a do druhého se zapíše pouze 488 bajtů a zbývajících 24 bajtů se zaplní nulami.

    Chcete-li zapisovat do otevřeného souboru, postupujte takto:

    • nastavte ukazatel na hranici sektoru, pokud není nastaven na hranici, bude ukazatel zaokrouhlen na spodní hranici sektoru
    • zavolejte funkci write požadovaný počet opakování
    • dokončete záznam voláním funkce s nulovým ukazatelem

    Abychom uvedli příklad práce funkce nahrávání, je nutné zvážit ještě jednu funkci.

    FRESULT pf_lseek (posun DWORD)- nastaví ukazatel čtení/zápisu v otevřeném souboru. Ukazatel můžete nastavit s absolutním nebo relativním posunem; pro absolutní posun musíte funkci předat číslo
    pf_lseek(5000);
    pro relativní předejte hodnotu ukazatele na aktuální pozici fs.fptr a množství výtlaku
    pf_lseek(fs.fptr + 3000);
    Aby funkce v souboru pffconf.h fungovala, je potřeba zapisovat
    #define _USE_LSEEK 1

    Možnosti:
    Offset DWORD je počet bajtů, na které se má posunout ukazatel.

    Návratové hodnoty:
    FR_OK (0)- vráceno v případě úspěšného provedení funkce
    FR_DISK_ERR- chyba disku
    FR_NOT_OPENED- soubor nebyl otevřen

    Data do souboru můžete zapisovat následujícím způsobem.
    FATFS fs;//deklaruje objekt typu FATFS BYTE buff;//vyrovnávací paměť pro čtení souboru WORD br; // Čítač přečteného bajtu // Montáž disku IF (pf_mount (& fs) == fr_ok) (// Otevřete soubor ležící v kořenovém adresáři if (PF_OPEN ("Hello.txt") == Fr_ok) (/ E (BUFF, 10, & Br); // Dokončete PF_WRITE (0, 0, & Br))

    Nechávám zde také kus skutečně fungujícího kódu, který využívá všechny výše popsané funkce.
    #define F_CPU 8000000UL #define buff_size 10 #include #zahrnout #include "diskio.h" #include "pff.h" #include "spi.h" FATFS fs;//deklarování objektu typu FATFS BYTE read_buff;//vyrovnávací paměť pro čtení souboru BYTE write_buff = "ahoj slovo";////vyrovnávací paměť pro zápis do souboru UINT br; // čítač bajtů read int main(void) ( // připojení disku if (pf_mount(&fs) == FR_OK) ( // otevření souboru ve složce new if(pf_open("new/hello.txt") == FR_OK) ( // nastavení ukazatele zápisu pf_lseek(0); // zápis pf_mount(&fs) &bruff_write,pf_0 0, &br); //nastaví ukazatel čtení pf_lseek(0); //přečte, co bylo napsáno pf_read(read_buff, buff_size, &br); if(br != buff_size) ( //pokud se br nerovná buff_size //to znamená, že jsme dosáhli konce souboru ) ) ) (připojte disk NULL) pf) //připojte (NULL) pf);

    FRESULT pf_opendir(DIR* dp, const char * cesta)- funkce otevře existující adresář a vytvoří ukazatel na objekt typu DIR, který bude použit pro získání seznamu souborů v otevřeném adresáři.
    Aby funkce v souboru pffconf.h fungovala, je potřeba zapisovat
    #define _USE_DIR 1

    Možnosti:
    DIR *dp- ukazatel na proměnnou typu DIR.

    const char *cesta- ukazatel na řetězec, který obsahuje cestu k adresáři, adresáře jsou odděleny lomítkem

    Návratové hodnoty:
    FR_OK (0)- vráceno v případě úspěšného provedení funkce
    FR_NO_PATH- nemohl najít cestu
    FR_NOT_READY- Nepodařilo se inicializovat disk
    FR_DISK_ERR- chyba disku
    FR_NOT_ENABLED- disk nebyl připojen

    //deklarování proměnných FATFS fs; DIR dir; //připojení disku pf_mount(&fs); //otevření adresáře pf_opendir(&dir, "MY_FOLDER");

    FRESULT pf_readdir(DIR* dp, FILINFO* fno)- funkce umožňuje číst obsah adresáře. Chcete-li to provést, otevřete adresář s funkcí pf_opendir() a zavolejte pf_readdir(). Při každém volání funkce vrátí název objektu (složky/souboru) umístěného v zadaném adresáři. Když projde všechny objekty, vrátí řetězec null v prvku pole fno.fname.
    Aby funkce v souboru pffconf.h fungovala, je potřeba zapisovat
    #define _USE_DIR 1

    Možnosti:
    DIR *dp- ukazatel na proměnnou typu DIR, která musí být předem deklarována

    FILINFO *fno- ukazatel na proměnnou typu FILINFO, která musí být předem deklarována.

    Návratové hodnoty:
    FR_OK- úspěšné dokončení funkce
    FR_DISK_ERR- chyba disku
    FR_NOT_OPENED- adresář není otevřen

    FATFS fs; FRESULT res; FILINFO fno; DIR dir; //připojení disku pf_mount(&fs); //otevření adresáře res = pf_opendir(&dir, MY_FOLDER); //přečtěte si obsah adresáře pro(;;)( res = pf_readdir(&dir, &fno); //zkontrolujte, zda při čtení nedošlo k nějakým chybám // a zda jsou v zadaném adresáři stále soubory if ((res != FR_OK) || (fno.fname == 0))( break; ) //název_konce strs/usart_f. )

    A nakonec zde nechám pracovní projekt