• Bilgisayar hafıza kartını görmüyor: SD, miniSD, microSD. Ne yapalım? Android'in dahili belleği olarak SD kart

    Programların tabletin dahili belleğine yüklenmesi varsayılan olarak gerçekleştirilir. Uygulamayı dahili hafıza kartına yerleştirmek için standart bir kurulum yapmanız yeterlidir. Harici ortama göndermek biraz daha uzun sürecektir. Basit bir ayar oturumu, her yeni uygulamayı SD karta yükleyerek cihazın dosya sistemini temizleyecektir.

    1. Seçenek: kurulum adresinin belirtilmesi

    Kurulum sırasında bazı programlar kullanıcıya nerede kalacağını sorar. Kurulum adresini belirlemek zor değildir. Çıkarılabilir bir hafıza kartı seçin, hepsi bu. Ancak bu sadece bazı uygulamalar için geçerlidir, böyle bir azınlık.

    2. Seçenek: Yükleme yolunu önceden ayarlayın

    Tabletteki Android işletim sistemi sürümü 2.2'den eskiyse, uygulama app2sd yamasını desteklemelidir. Ayarlarda böyle bir öğe olmayacak. Tüm yeni sürümler için, sorunu çözmek için bu algoritma uygundur.

    "Ayarlar" a gidin, "Bellek" öğesini bulun. Üzerine tıklayın ve hafıza ayarları menüsü açılacaktır. Burada ayrıca cihazınızdaki boş hafıza miktarını, genel olarak tablette ne kadar alan olduğunu, dahili hafızanın ne kadar kullanıldığını öğrenebilirsiniz. Bazı insanlar bir kart okuyucuya bir SD kart takar ve bunun bir tablette yapılabileceğini bilmeden bir bilgisayardaki flash sürücüyle ilgili verileri öğrenir.

    Uygulamaları yüklemek için size çeşitli kaynaklar sunan "Varsayılan Diske Yazma" bölümünü bulun. Bunların arasında "SD kart" seçeneğini seçin. Bu öğeye tıklayın ve karşısında bir daire göreceksiniz. Artık uygulamaları tabletteki hafıza kartına yüklemek varsayılan ayardır.

    3. Seçenek: Üçüncü Taraf Programlarını Kullanma

    Büyük ihtimalle bu yöntem size yardımcı olacaktır. Ama talep ediyor. Tablet üzerinde root haklarının olup olmadığını öğrenebilirsiniz. Oyun ve program verilerinin bir SD hafıza kartına aktarılmasına yardımcı olacak FolderMount veya GL to SD gibi özel uygulamaları indiriyoruz. Aşağıdaki video talimatlarına bakın:

    Seçenek 3

    Tablet PC'nize kurulum adresini seçmenize izin verecek bir program kurun. Uygulamayı doğrudan kurmadan önce, kurulum adresini belirteceğiniz bir iletişim kutusu görünecektir.

    Bu, sunulan en uygun seçenektir. Çünkü "varsayılan"ın zorunlu kurulumu her durumda istenmez. InstallManager, MagicUneracer gibi yardımcı programlar, tablet belleğinin ekonomik ve rasyonel bir şekilde doldurulmasına yardımcı olacaktır. Bu arada, aynı programlar tüm yardımcı dosyalara sahip programları da kaldırır.

    Uygulama SD kartta yüklü değilse

    "Ayarlar"da "Uygulamalar" öğesini açın. Uygulamalar listesinde, çıkarılabilir bir karta aktarmak istediğinizi seçin. Uygulama simgesine tıklayın ve bir menü açılacaktır. "Taşı" seçeneğinin olup olmadığına bakın. Varsa, seçenek düğmesine basın ve hafıza kartını seçin. Bu prosedür, ek yazılım yüklenmesini gerektirmez, kendiniz yapabilirsiniz.

    Artık Android işletim sistemindeki hemen hemen her cihaz hafıza kartlarını (microSD) desteklemektedir. Ancak bazen cihazda algılanmasıyla ilgili sorunlar olabilir. Böyle bir sorunun ortaya çıkmasının birkaç nedeni olabilir ve bunları çözmek için belirli manipülasyonlar gerekir. Daha sonra, böyle bir hatayı düzeltme yöntemlerini ele alacağız.

    Aşağıdaki talimatlara devam etmeden önce aşağıdakileri yapmanızı öneririz:

    • Cihazınızı yeniden başlatın. Belki de ortaya çıkan sorun münferit bir durumdur ve cihazı bir sonraki başlatışınızda, basitçe ortadan kalkacak ve flash sürücü düzgün çalışacaktır.
    • yeniden bağlanın. Temas noktaları gevşek veya tıkalı olduğu için bazen çıkarılabilir medya görüntülenmez. Dışarı çekin ve geri takın, ardından algılamanın doğruluğunu kontrol edin.
    • Maksimum hacim. Bazı mobil cihazlar, özellikle eski olanlar, yalnızca belirli boyutlardaki hafıza kartlarını destekler. Bu miktarda belleğe sahip bir SD kartın cihazınızla normal şekilde çalıştığından emin olmak için üreticinin resmi web sitesinde veya talimatlarda bu özelliğe aşina olmanızı tavsiye ederiz.
    • Diğer cihazlarda kontrol edin. Flash sürücü hasar görmüş veya kırılmış olabilir. Çalıştığından emin olmak için başka bir akıllı telefona veya tablete, dizüstü bilgisayara veya bilgisayara takın. Herhangi bir cihazda okunamıyorsa yenisi ile değiştirilmelidir.

    Bu tür algılama sorunlarına ek olarak, flash sürücünün hasar gördüğünü bildiren bir hata oluşur. Nasıl düzeltileceğine dair ayrıntılı bir kılavuz için aşağıdaki bağlantıdan materyalimizi okuyun.

    Önceki ipuçları herhangi bir sonuç getirmediyse ve depolama ortamı bir akıllı telefon veya tablet tarafından hala algılanmıyorsa, aşağıdaki eylem yöntemlerine dikkat edin. Her birini fazla çaba harcamadan uygulayabilmeniz için bunları zorluk sırasına göre düzenledik.

    Yöntem 1: Önbellek verilerini silme

    Geçici veriler cihazınızda günlük olarak birikir. Yalnızca bellekte fiziksel yer kaplamakla kalmaz, aynı zamanda cihazın çeşitli arızalarına da neden olabilirler. Her şeyden önce, menü aracılığıyla önbelleği temizlemenizi öneririz. İyileşmek. İçinde öğeyi seçmelisiniz Önbellek Bölümünü Sil, prosedürün tamamlanmasını bekleyin ve telefonu yeniden başlatın.

    Android işletim sisteminde Kurtarma moduna nasıl geçeceğiniz ve önbelleği başka nasıl silebileceğinizle ilgili ayrıntılı talimatlar aşağıdaki makalelerde bulunabilir.

    Yöntem 2: Bellek kartı hatalarını kontrol edin

    Bu yöntemin bir parçası olarak birkaç basit adımı izleyin:


    Hata taraması yardımcı olmadıysa, daha sert önlemler alınması gerekir.

    Yöntem 3: Ortamı biçimlendirin

    Bu yöntemi gerçekleştirmek için, adaptörler veya özel adaptörler kullanarak SD kartı bir bilgisayara veya dizüstü bilgisayara da bağlamanız gerekecektir.

    Lütfen bu prosedürü gerçekleştirirken çıkarılabilir medyadan tüm bilgilerin silineceğini unutmayın, bu nedenle başlamadan önce önemli verileri başka uygun bir yere kaydetmenizi tavsiye ederiz.

    Format atmakta zorluk çekiyorsanız aşağıdaki linkten diğer yazımızı da okumanızı öneririz. Orada bu sorunu çözmenin yedi yolunu bulacaksınız ve kolayca düzeltebilirsiniz.

    Çoğu zaman, karttan veri silmek, diğer ekipmana bağlandıktan sonra algılanmayı bıraktığı durumlarda yardımcı olur. Sadece yukarıdaki talimatları izlemeniz, ardından medyayı hemen akıllı telefonunuza veya tabletinize yerleştirmeniz ve performansını kontrol etmeniz yeterlidir.

    Yöntem 4: Boş bir birim oluşturun

    Bazen kartın gizli bir bölümü olduğu için hafızası bir akıllı telefondan bilgi kaydetmek için yeterli olmayabilir. Diğer şeylerin yanı sıra, bu durumda algılama ile ilgili sorunlar vardır. Bunları düzeltmek için kartı bir PC'ye bağlamanız ve şu adımları izlemeniz gerekir:

    1. Menü aracılığıyla "Başlangıç" gitmek "Kontrol Paneli".
    2. Burada bir kategori seçin "Yönetim".
    3. Tüm bileşenlerin listesi arasında bulun ve üzerine çift tıklayın. "Bilgisayar yönetimi".
    4. Açılan pencerede seçmelisiniz "Disk Yönetimi".
    5. Burada, flash sürücünüz olan diskin numarasına bakın ve toplam bellek miktarını da not edin. Bu bilgiyi daha sonra kullanmak üzere not edin veya hatırlayın.
    6. Tuş kombinasyonu Kazan + R hızlı koş "Koşmak". cmd yazın ve tıklayın "TAMAM".
    7. Açılan pencerede diskpart komutunu girin ve tıklayın. Girmek.
    8. Yardımcı programı çalıştırmak için izin verin.
    9. Artık disk bölümleriyle çalışmak için programa geçtiniz. Onun bir özdeşi var "Komut satırı" görüş. Burada liste diskine girmeniz ve tekrar tıklamanız gerekiyor. Girmek.
    10. Disk listesine göz atın, flash sürücünüzü orada bulun, ardından disk 1'i seçin, burada 1 – gerekli ortamın disk numarası.
    11. Yalnızca tüm verileri ve bölümleri temizlemek için kalır. Bu prosedür, clean komutu kullanılarak gerçekleştirilir.
    12. İşlemin tamamlanmasını bekleyin ve pencereyi kapatabilirsiniz.

    Artık SD kartın tamamen temiz olduğunu başardık: ondan tüm bilgiler, açık ve gizli bölümler silindi. Normal çalışma için telefonda yeni bir birim oluşturulmalıdır. Bu şekilde yapılır:

    1. Disk yönetimi menüsüne tekrar dönmek için önceki talimattaki ilk dört adımı tekrarlayın.
    2. Gerekli çıkarılabilir medyayı seçin, hafızasıyla işarete sağ tıklayın ve seçin "Yeni Birim Oluştur".
    3. Yeni Basit Birim Sihirbazı önünüzde açılacaktır. Başlamak için tıklayın "Daha öte".
    4. Birim boyutunu belirtmeniz gerekmez, tüm boş alanı kaplamasına izin verin, böylece flash sürücü bir mobil cihazla daha iyi çalışır. Öyleyse bir sonraki adıma geçin.
    5. Herhangi bir boş harfi birime atayın ve tıklayın "Daha öte".
    6. Varsayılan format değilse biçimlendirme yapılmalıdır. FAT32. Ardından bu dosya sistemini seçin, küme boyutunu bırakın "Varsayılan" ve devam edin.
    7. Prosedürün tamamlanmasının ardından, önünüzde seçilen parametrelerle ilgili bilgiler görüntülenecektir. Onları kontrol edin ve işi bitirin.
    8. Şimdi menüde "Disk Yönetimi" bellek kartındaki tüm mantıksal alanı kaplayan yeni bir birim görürsünüz. Bu, işlemin başarıyla tamamlandığı anlamına gelir.

    Yalnızca USB flash sürücüyü bir PC veya dizüstü bilgisayardan çıkarmak ve bir mobil cihaza takmak için kalır.

    Cihazınızda yeterli dahili bellek yoksa, SD kartı dahili depolama olarak kullanabilir Android telefonunuz için. Kabul Edilebilir Depolama adı verilen bu özellik, Android işletim sisteminin harici bir depolama ortamını kalıcı dahili depolama olarak biçimlendirmesine olanak tanır. Takılan SD karttaki bilgiler şifrelenir ve başka bir cihazda kullanılamaz.

    SD Kart, fotoğrafları, şarkıları ve videoları saklamak için çok uygun bir seçenektir. Android akıllı telefonunuzda büyük miktarda dahili depolama alanınız olsa bile, telefonunuzun yüksek çözünürlüklü kamerasıyla çekilmiş uzun videoları depolamak için her zaman büyük bir depolama alanına ihtiyacınız olabilir.

    bilmek önemlidir

    Bir dezavantajı var, yüksek tanımlı video kaydederken SD çip geride kalabilir.

    Android varsayılan olarak dahili bellekte bulunur ve verileri yalnızca ara sıra SD karta yükler. Bu nedenle, telefonunuzun dahili depolaması yoksa, örneğin uygun fiyatlı Android One cihazları söz konusu olduğunda, herhangi bir ek uygulama yüklemekten mahrum kalırsınız.

    depolama depolama nedir?

    Depolama alanı, akıllı telefonunuzun ana belleğidir, ancak gerekirse bir SD kart kullanılarak genişletilebilir. Bu Android'de buna Kabul Edilebilir Depolama denir. Bu, Android telefonunuzda yüklü olan çıkarılabilir microSD kartı birincil depolama alanınız olarak kullanmanıza izin verecektir. Böylece, Android'de SD kartın nasıl ana bellek haline getirileceği sorununu kolayca çözebilir ve telefonun dahili hacmi küçükse alan eksikliğinin üstesinden gelebilirsiniz.

    Kartı ana depolama alanı olarak kullanmanın özellikleri

    Bu prosedürde dikkate alınması gereken bazı önemli özellikler vardır.

    Yararlı olacaktır

    İster bir SD flash sürücü ister bir USB sürücü olsun, bir sürücü kullanırken, bu cihazın hangi formatta olduğunu ve Android işletim sisteminin onu destekleyip desteklemediğini ve dört tür ana dosya formatı olduğunu hatırlamak önemlidir: FAT32 veya exFAT, ext4 veya f2fs.

    Telefon hafızasını android hafıza kartına nasıl değiştirebilirim? Soru tamamen doğru değil, tamamen değiştirmek imkansız, sadece ek hacmi olduğu gibi "artırabilirsiniz".

    SD kartınızı ana depolama olarak kullanmak, müzik ve dizi severler için işe giderken veya uzun bir yolculukta harika bir çözüm olabilir. Ancak çoğu zaman olduğu gibi, bellek genişletme her zaman gerekli cihazın maliyetine bağlıdır,çünkü hem hız hem de hacim açısından ve ayrıca bilgi depolamanın uyarlanabilir işlevinde farklılık gösterirler. İşte farklı açılardan ele alınabilecek bazı nüanslar - hem olumsuz yönde hem de olumlu yönde:

    SD kart Android'de dahili depolama olarak nasıl kullanılır?

    Tüm verilerinizi depolamak için yeterli dahili depolama alanınız var mı?

    Android'de dahili telefon belleği harici SD kartla nasıl değiştirilir? SD kartınızı Android'de dahili depolama olarak çalışacak şekilde yapılandırmak aslında oldukça basit bir işlemdir. Bunda karmaşık bir şey yok ve daha fazlasını kendiniz göreceksiniz.

    Akıllı telefon Android 6.0 veya üstünü çalıştırsa bile, Kabul Edilebilir Depolama işlevinin cihazınız tarafından desteklenmemesi mümkündür (bu olur, hepsi akıllı telefonun modeline ve markasına bağlıdır). Cihaz üreticisi bu özelliği devre dışı bırakmış olabilir. Ancak, veri depolama için flash sürücü kullanımını zorlamanıza izin veren komut satırı yöntemleri vardır.

    Temel biçimlendirme adımları aşağıda listelenmiştir.


    Bir sonraki ekranda, fikrinizi değiştirmek isteyip istemediğinize kendiniz karar vermek için son bir şansınız var.

    bilmek önemlidir

    Verilerin yedek bir kopyasını almayı unutmayın, biçimlendirdikten sonra bilgiler iz bırakmadan kaybolacaktır!


    Biçimlendirme işlemi tamamlandıktan sonra çıkarılabilir SD kartı "geçici" veya "çıkarılabilir" kalıcı konum olarak kullanabilirsiniz. Ancak, daha önce yapmış olabileceğiniz gibi çalışırken değiştirme ve çıkarmanın artık kullanılamayacağını unutmayın. Bu yüzden Çıkar seçeneğini kullanmadan flash sürücüyü çıkarmayın. Ek olarak, cihazda belirli hatalara neden olabileceğinden, buna göre önerilmeyen işletim sistemi tarafından kabul edilen yeri pratik olarak silebilirsiniz. Artık bir hafıza kartını Android'de nasıl ana hafıza yapacağınızı biliyorsunuz.

    SD ve microSD kartlar, büyük miktarda veriyle çalışan Arduino projelerinin yeteneklerini önemli ölçüde artırabilir: veri kaydediciler, hava durumu istasyonları, akıllı ev sistemleri. Arduino kartları, hem flash bellek hem de EEPROM dahil, yalnızca 4 kilobayta kadar nispeten küçük bir dahili bellekle donatılmıştır. Bu hafıza, özellikle kart sürekli kapanıyor veya kapanıyorsa, büyük miktarda veri yazmak için yeterli olmayacaktır. Bir Arduino SD kartını harici bir sürücü olarak bağlamak, herhangi bir bilgi için depolama alanını çoğaltmanıza olanak tanır. Çıkarılabilir SD sürücüler ucuzdur, bağlanması ve kullanımı kolaydır. SD kartın Arduino'ya doğru bağlanması makalede ele alınacaktır.

    Arduino'da SD bellekle çalışmak özellikle zor değil. En kolay yol, hazır bir modül bağlamak ve standart kitaplığı kullanmaktır. Bu seçenekle başlayacağız.

    Hazır bir modül kullanmanın çeşitli avantajları vardır. Bu, büyük miktarda veriyle çalışmak için oldukça basit ve kullanışlı bir araçtır. Bağlantıda özel beceri gerektirmez, tüm konektörler doğrudan kart üzerinde imzalanır. Kolaylık için ödeme yapmanız gerekiyor, ancak modülün maliyeti nispeten düşük, Rus ve yabancı çevrimiçi mağazalarda uygun fiyatlarla kolayca bulunabilir.

    Üniversal modül, üzerine bir kart yuvası, dirençler ve voltaj regülatörünün yerleştirildiği sıradan bir karttır. Aşağıdaki teknik özelliklere sahiptir:

    • Çalışma voltajı aralığı 4,5-5 V;
    • 2GB'a kadar SD kart desteği;
    • akım 80 mA;
    • FAT 16 dosya sistemi.

    SD kart modülü, mikrodenetleyici tabanlı cihazın normal çalışması için gerekli olan bilgilerin kartta saklanması, okunması ve yazılması gibi işlevleri gerçekleştirir.


    Doğal olarak, ucuz hafıza kartı modüllerinin de dezavantajları vardır. Örneğin, en ucuz ve en yaygın modeller yalnızca 4 GB'a kadar kartları destekler ve neredeyse tüm modüller, bir SD kartta iki gigabayta kadar dosya depolamanıza izin verir - bu, çoğu modelde kullanılan FAT dosya sisteminin bir sınırlamasıdır.

    Hafıza kartlarının bir başka dezavantajı, nispeten uzun kayıt süresidir, ancak onunla çalışmanın hızını artırmanıza izin veren yolları vardır. Bunun için, veriler önce RAM'de biriktirildiğinde ve ardından bir seferde hafıza kartına döküldüğünde bir önbellekleme mekanizması kullanılır.

    SD ile çalışmak için Arduino kartları

    Bir SD kartla çalışmak için birkaç farklı kart vardır:

    • Arduino Ethernet - Bu kart, veri çıkışı için özel bir modül ile donatılmıştır. Pin 4 CS çıkışı için kullanılır.Doğru işlem için SD.begin(4) komutu kullanılmalıdır.
    • Adafruit Micro-SD, Micro-SD kartlarla çalışırken kullanılan bir geliştirme kartıdır.
    • Sparkfun SD - Arduino'nun üstüne monte edilmiştir, CS çıkış için pin 8'i kullanır. Kartın yeni versiyonunda 3.3V bağlantı ve yerleşik altı bitlik bir invertör bulunur.

    SD ve microSD'yi Arduino'ya bağlama

    İki tür kart vardır - microSD ve SD. Bağlantı, yapı ve program bakımından aynıdırlar, ancak yalnızca boyut olarak farklılık gösterirler. Kullanmadan önce, SD kartın formatlanması tavsiye edilir. Genellikle yeni kartlar zaten biçimlendirilmiştir ve kullanıma hazırdır, ancak eski bir kart kullanıyorsanız, onu Arduino dosya sisteminde biçimlendirmek daha iyidir. Prosedürü gerçekleştirmek için, bilgisayarda SD kitaplığının, tercihen FAT16'nın yüklü olması gerekir. Windows'ta biçimlendirme için, kart simgesine tıklamanız ve "Biçimlendir" seçeneğine tıklamanız gerekir.

    Kartı bağlamak için 6 kontak kullanılır, etkileşim SPI arayüzü üzerinden gerçekleştirilir. Tahtada altı pimli bir konektöre benziyor. Kartı bağlamak için kontrolörün kendisine, kart modülüne ve 6 kabloya ihtiyacınız var. SPI'ye ek olarak, bir SDIO modu vardır, ancak uygulanması zordur ve Arduino ile zayıf uyumludur. SPI, tüm mikrodenetleyicilerle çalışacak şekilde kolayca yapılandırılır, bu nedenle kullanılması tavsiye edilir.

    Dijital pinler şu şekilde bağlanır: Arduino Nano veya Uno kartı için MOSI pini D11'e, MISO'dan D12'ye, SCK'den D13'e, CS'den 4'e, VCC'den +5 V'a, .GND'den GND'ye bağlanır. Kartın 3,3 ve 5 volta bağlanmak için konektörleri vardır. Kartın kendi güç kaynağı 3,3 volttur, bu nedenle aynı güç kaynağıyla bir mikrodenetleyici kullanmak daha kolaydır, aksi takdirde voltaj seviyesi dönüştürücülere ihtiyacınız vardır. En yaygın Arduino kartlarında böyle bir çıkış var.

    Bir SD kartı bağlarken, farklı Arduino kartları türleri için SPI pinlerinin karşılıklarını dikkate almanız gerekir:

    SD ve microSD ile çalışmak için Arduino kütüphanesi

    Harici veri sürücüleri ile çalışma kolaylığı için Arduino IDE'de hazır kitaplıklar mevcuttur. Çoğu durumda herhangi bir şey indirmeniz veya yüklemeniz gerekmez.

    Bir çizime bir kitaplık dahil etmek için include deyimini kullanın:

    #katmak #katmak

    SPI üzerinden bağlanan cihazların doğru çalışması için SPI kütüphanesine ihtiyaç vardır.

    Karta veri okumak ve yazmak için kütüphane işlevlerine ihtiyaç vardır. Kütüphane, SD ve SDHC kartlarını destekleyebilir.

    İsimler 8.3 formatında yani isim için 8, uzantı için 3 karakter olacak şekilde yazılır. Dosyanın yolu eğik çizgi "/" kullanılarak yazılır.

    Gömülü SD Kitaplığı Örnekleri

    Arduino IDE, kitaplığın işlevlerini hızlı bir şekilde öğrenmek için yerleşik örneklere sahiptir:

    • Kart Bilgisi, bir SD kartta saklanan bilgilerin çıkarılmasıdır. Yardımı ile kartın hangi dosya sisteminde biçimlendirildiğini, boş alan miktarını, hangi verilerin kaydedildiğini öğrenebilirsiniz.
    • Yun Datalogger - karttaki üç sensörden günlük verilerini kaydetmenizi sağlar.
    • Datalogger - sensörden alınan verileri karta kaydeder ve kaydeder.
    • Döküm Dosyası - karttan veri okuyun, seri bağlantı noktasına aktarın.
    • Dosyalar - verileri oluşturur ve siler. Yazılı verileri bir arabelleğe koyan bir file.write() işlevi vardır. Bilgilerin haritaya taşınması, flush() veya close() işlevleri çağrılırken gerçekleşir, bu nedenle her dosya açılışından sonra onu kapatmak önemlidir, aksi takdirde veriler kaybolur.
    • Oku Yaz - karttaki dosyaları yazar ve okur.

    SD kütüphane işlevleri

    Arduino SD kitaplığı, verileri işlemek için kullanılabilecek çeşitli işlevler içerir. SD sınıfı işlevleri:

    • begin() - işlev kitaplığı başlatır, sinyal için bir kişi atar.
    • var() - haritanın gerekli bilgilere sahip olup olmadığını kontrol etmek için tasarlanmıştır.
    • mkdir() - hafıza kartında istediğiniz klasörü oluşturmanıza olanak sağlar.
    • rmdir() - Bu işlevle bir klasörü silebilirsiniz. Silinecek klasörün boş olması önemlidir.
    • open() - yazmanız veya okumanız gereken bir dosyayı açmanıza izin verir. Gerekli dosya haritada yoksa oluşturulacaktır.
    • remove() - herhangi bir dosyayı kaldırır.

    Tüm bu işlevlere yanıt olarak, değerlerden biri gelmelidir - işlemin başarıyla tamamlanması durumunda doğru ve başarısızlık durumunda yanlış.

    Dosyaları oluşturun, düzenleyin ve silin.

    Arduino'da dosyalarla çalışmak için bir File sınıfı vardır. Karttan bilgi yazmak ve okumak için tasarlanmış işlevleri içerir:

    • available() - Dosyanın okunabilir bayt içerip içermediğini kontrol eder. Yanıt, okumak için kullanılabilecek alan miktarıdır.
    • close() - dosyayı kapatır, bunlardan önce verilerin karta kaydedilip kaydedilmediğini kontrol eder.
    • flush() - işlev, verilerin karta yazıldığından emin olmanızı sağlar.
    • name() - isme bir işaretçi döndürür.
    • peek() - işaretçiyi bir sonraki karaktere taşımadan bayt veri okur.
    • pozisyon() - işaretçinin dosyadaki geçerli konumunu bulur.
    • print() - verileri ayrı bir dosyaya çıkarır.
    • println() - verileri bir satır başı ve boş bir satırın göründüğü noktaya kadar bir dosyaya yazdırır.
    • search() - dosyadaki geçerli konumun konumunu değiştirir.
    • size() - verilerin boyutu hakkında bilgi görüntüler.
    • read() - bilgileri okur.
    • write() - bir dosyaya yazar.
    • isDirectory() - bu yöntemi kullanarak dosyanın bir dizin mi, yani bir dizin mi yoksa bir klasör mü olduğunu kontrol eder.
    • openNextFile() - sonraki dosyanın adını görüntüler.
    • rewindDirectory() - dizindeki ilk dosyaya döner.

    Kartın düzgün çalışması için SS çıkışının yapılandırıldığından emin olmanız gerekir.

    Arduino SD kitaplığıyla çalışmanın bir örneğinin taslağı

    Aşağıda, bellek kartı modülüyle çalışmanın bir örneğini gösteren bir çizim bulunmaktadır.

    /* SD kartlar kullanılarak veri kaydedici Analog bağlantı noktalarından alınan verilerin bir SD kartta saklanmasına bir örnek. Veriler, "," sembolü şeklinde bir alan ayırıcı ile bir dizi satır olarak dosyaya kaydedilecektir. Bağlantı şeması: * Analog sensörler, analog pinlere bağlanır * SD kart modülü, standart şemaya göre SPI'ye bağlanır: ** MOSI - pin 11 ** MISO - pin 12 ** CLK - pin 13 ** CS - pin 4 */ #include #katmak sabit int PIN_CHIP_SELECT = 4; void setup() ( Serial.begin(9600); Serial.print("SD kart başlatılıyor..."); // Bu pin OUTPUT olarak tanımlanmalıdır pinMode(10, OUTPUT); // Modül başlatılmaya çalışılıyor if (!SD.begin(PIN_CHIP_SELECT)) ( Serial.println("Kart başarısız veya mevcut değil"); // Bir şeyler ters giderse, çık: geri dön; ) Serial.println ("kart başlatıldı."); ) void loop() ( // Dosyaya koyacağımız veriyi içeren string: String logStringData = ""; // Portlardan veri oku ve for için stringe yaz (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"); } }

    Bir dosya oluşturma ve arduino SD kartı için bir isim seçme

    Bir dosya oluşturmak, Arduino'da SD kartlarla çalışırken en yaygın görevlerden biridir. Önceki çizimde gördüğümüz gibi, bir dosya oluşturmak için onu açmanız yeterlidir. Böyle bir dosyanın var olup olmadığını kontrol etmek istiyorsak, aren() işlevini kullanabiliriz:

    • SD.exists("veri günlüğü.csv");

    Dosya varsa işlev DOĞRU değerini döndürür.

    Veri kaydedici projeleri oluştururken popüler bir uygulama, büyük dosyaları bilgisayarda güncellemek ve açmak için daha uygun olan daha küçük dosyalara bölmektir. Örneğin, SD karttaki çok büyük bir datalog.csv dosyası yerine, sonuna sırayla bir sayı ekleyerek birkaç küçük dosyaya sahip olabilirsiniz: datalog01.csv, datalog02.csv, vb.
    İşte işi bitirmenize yardımcı olacak örnek bir eskiz:

    char dosya adı = "datalog00.csv"; // (uint8_t i = 0; i) için başlangıç ​​adı< 100; i++) { filename = i / 10 + "0"; filename = i % 10 + "0"; if (! SD.exists(filename)) { // Проверяем наличие logfile = SD.open(filename, FILE_WRITE); break; // Дальше продолжать смысла нет } }

    Çözüm

    Gördüğümüz gibi Arduino'ya bir SD hafıza kartı bağlamak ve bunu bir projede kullanmak çok da zor değil. Bunun için Arduino IDE içerisinde hazır kütüphaneler ve çok çeşitli modül seçenekleri bulunmaktadır. Herhangi bir elektronik mağazasından bir hafıza kartı satın alabilirsiniz, ucuzdurlar ve aynı zamanda Arduino kartının potansiyelini önemli ölçüde artırabilirler. Hafıza kartlarının kullanılmasıyla, daha sonra analiz edilmek üzere büyük miktarda veri toplanabilir ve saklanabilir. Yazımız sayesinde araştırma projelerimize hafıza kazandırabileceğiz, akıllı ev için sesli anons sistemleri kurabileceğiz, basit bir wav oynatıcı oluşturabileceğiz ve çok daha fazlasını yapabileceğiz.

    Resmi sd karttan ekranda gösterdik, ancak içinde bazı noktalar gözden kaçırıldı, ilki - kartın kendisinin bağlanması, ikincisi - kütüphane işlevlerinin yalnızca bir kısmı dikkate alındı Küçük Şişmanlar Gelin bu noktalara daha yakından bakalım.

    Kart ile iletişim iki arabirimden biri aracılığıyla mümkündür, SPI veya SD.



    SD arayüzünün bir bit ve dört bit modlarında çalışabileceğini söylemeliyim.

    Kartı SPI ile bağlama şeması standarttır ve şuna benzer, kullanılmayan kart pinleri 10K'lık bir direnç kullanılarak güç kaynağına bağlanmalıdır.


    Ancak amatör tasarımlarda, çekme dirençleri genellikle ihmal edilir ve bağlantı şeması basitleştirilir.

    SPI ile bağlandığında, kartın besleme voltajını çok talep ettiğine ve besleme voltajındaki küçük bir düşüşün kartın çalışmamasına yol açtığına dikkat edilmelidir, bu kişisel deneyimlerle doğrulanmıştır, SD arayüzü hakkında söylenecek bir şey yoktur, henüz denemedim. Bütün bunlar için yazılmış güç kaynağı için kondansatörlerin kurulması gerekir. İndüktöre gelince, 100mA'ya kadar akım için derecelendirilmelidir, ancak takılması gerekli değildir.

    Yukarıda gösterilen şemalar, kartın çalışması için sırasıyla 3,3 volta ihtiyaç duyduğunu, veri iletim hatlarında voltajın 0 - 3,3 volt aralığının ötesine geçmemesi gerektiğini ve burada şu soru ortaya çıkıyor, ya MC 5 volt ile çalışıyorsa?
    Cevap basit, veri hatlarını eşleştirmeniz gerekiyor ve bu, geleneksel bir dirençli bölücü kullanılarak yapılabilir.


    Diyagram, veriler bu hat üzerinden iletildiği için MISO hattının eşleştirilmesine gerek olmadığını göstermektedir. karttan MK'ye.
    Aslında, birkaç kişi kartı doğrudan MK'ye bağlar, bir kart konektörünü MK'ye bağlamak veya bir konektör ve gerekli tüm kablo demetiyle bir kalkan satın almak çok daha uygundur.

    Bağlantıyı bulduk, şimdi kütüphaneyi nasıl kullanacağımıza bakalım. Küçük Şişmanlar küçük bellek boyutuna sahip 8 bitlik mikrodenetleyiciler için tasarlanmıştır.

    Kütüphane 5 dosyadan oluşur:
    tamsayı.h- ana veri türlerini açıklayan bir başlık dosyası.

    diskio.h- diskle çalışmak için düşük seviyeli işlevlerin prototiplerini ve bunların döndürdükleri durum kodlarını bildiren bir başlık dosyası.

    diskio.c- bu dosyada düşük seviyeli işlevler uygulanmalıdır, başlangıçta "saplamalar" vardır.

    pffconf.h- yapılandırma dosyası.

    pff.h- disk dosya sistemiyle etkileşim için işlevlerin prototiplerinin bildirildiği başlık dosyası.

    pff.c- dosya, disk dosya sistemiyle etkileşime yönelik işlevlerin uygulamalarını içerir.

    Görüldüğü gibi kütüphanenin çalışabilmesi için alt seviye fonksiyonların gerçeklenmesi gerekmektedir. Ancak AVR veya PIC'den bahsediyorsak, onlar için dosyayı içeren kitaplık ile çalışmanın bir örneğini siteden indirebilirsiniz. mmc, içinde zaten düşük seviyeli işlevler uygulanmaktadır. Ayrıca pff.h dosyasında kütüphane konfigürasyonunun ayarlanması ve SPI'nin çalışması için gerekli fonksiyonların yazılması gerekmektedir.

    Petit FatF'lerin İşlevleri.

    FRESULT pf_mount (FATFS*)- işlev diski takar/çıkarır. Bu işlev, diskle çalışmaya başlamadan önce çağrılmalıdır, işlevi bir boş işaretçi ile çağırırsanız, diskin bağlantısı kesilir. Fonksiyon herhangi bir zamanda çağrılabilir.

    Seçenekler
    FATFS* fs- FATFS tipi bir nesneye işaretçi, bu yapının açıklaması pff.h dosyasında bulunabilir. Sadece bu türden bir değişken bildirmemiz gerekiyor.

    Dönüş değerleri:
    FR_OK (0)
    FR_NOT_READY- cihaz başlatılamadı
    FR_DISK_ERR- diskten okunurken bir hata oluştu
    FR_NO_FILESYSTEM- sürücünün geçerli bir FAT bölümü yok

    FATFS fs;//FATFS türünde bir nesnenin bildirilmesi //diskin bağlanması if (pf_mount(&fs) == FR_OK) ( //diskin bağlanması, onunla çalışılması //diskin bağlanması pf_mount(NULL); ) else ( //diskin bağlanması başarısız oldu )

    FRESULT pf_open (const char* yolu)- işlev mevcut bir dosyayı açar. Dosya açıldıktan sonra onunla çalışabilir, yani ondan okuyabilir ve ona yazabilirsiniz. Başka bir dosya açılana kadar açık bir dosya ile çalışabilirsiniz. Fonksiyon herhangi bir zamanda çağrılabilir.

    Seçenekler
    const karakter* yolu- dosyanın yolunu gösteren bir dize işaretçisi. Yol, kök dizine göre tamamen belirtilmelidir ve dizinleri eğik çizgi ile ayırmalıdır.

    Dönüş değerleri:
    FR_OK (0)- işlevin başarılı bir şekilde yürütülmesi durumunda iade edilir
    FR_NO_FILE- dosya bulunamadı
    FR_DISK_ERR- disk hatası
    FR_NOT_ENABLED- disk takılı değil

    FATFS fs;//FATFS türünde bir nesne tanımlayın //Diski bağlayın if (pf_mount(&fs) == FR_OK) ( //Dosyayı kök dizinde açın if(pf_open("hello.txt") == FR_OK) ( //Birşey yapın ) //Dosyayı new klasöründe açın if(pf_open("new/hello.txt") == FR_OK) ( //Do bir şey ) //diski bağla pf_mount(NULL); ) else ( //diski bağlayamadı )

    FRESULT pf_read(void* buff, WORD btr, WORD* br)- işlev, dosyadan belirtilen sayıda baytı okur ve bunları arabelleğe kaydeder. Okunan bayt sayısı belirtilenden azsa, dosyanın sonuna ulaşılmıştır.
    #tanımla _USE_READ 1

    Seçenekler:
    geçersiz * tutkunu- okunan verilerin saklandığı arabelleğe işaretçi
    KELİME BTR- okunacak bayt sayısı
    KELİME*br- okunan bayt sayısını depolayan bir değişkene işaretçi.

    Dönüş değerleri:
    FR_OK (0)- işlevin başarılı bir şekilde yürütülmesi durumunda iade edilir
    FR_DISK_ERR- disk hatası
    FR_NOT_OPENED- dosya açılmadı
    FR_NOT_ENABLED- disk takılı değil

    FATFS fs;//FATFS BYTE türünde bir nesne bildirir buff;//WORD br dosyasını okumak için arabellek; // Sayaç okuma baytları // Diski takıyorum IF (pf_mount (& fs) == fr_ok) (// Kök dizinde bulunan dosyayı aç if (Pf_open ("Hello.txt") == Fr_ok) (// 10 bayt PF_READ (BUFF, 10, & Br); IF (BR! = 10) (// BR 10'a eşit değilse // dosyanın sonuna geldik demektir)) )

    FRESULT pf_write(const void* buff, WORD btw, WORD* bw)- işlev, açık bir dosyaya veri yazmanıza izin verir. Fonksiyonun pffconf.h dosyasında çalışması için şunu yazmanız gerekir:
    #define _USE_WRITE 1

    Seçenekler:
    geçersiz * tutkunu- yazmak istediğimiz arabelleğe işaretçi, sıfır değeri yazmayı sonlandırır
    KELİME bu arada- yazmak istediğimiz bayt sayısı
    KELİME*bw- yazılabilecek bayt sayısını saklayan bir değişkene işaretçi. Bu değişkeni analiz ederek dosyanın sonuna ulaşılıp ulaşılmadığını öğrenebilirsiniz.

    Dönüş değerleri:
    FR_OK (0)- işlevin başarılı bir şekilde yürütülmesi durumunda iade edilir
    FR_DISK_ERR- disk hatası
    FR_NOT_OPENED- dosya açılmadı
    FR_NOT_ENABLED- disk takılı değil

    Kitaplığın az miktarda belleğe sahip mikrodenetleyiciler için tasarlanmış olması nedeniyle, bu işlevin bir takım sınırlamaları vardır:

    • yeni dosyalar oluşturamazsınız ve yalnızca mevcut olanlara yazabilirsiniz
    • dosya boyutu artırılamaz
    • zaman damgası güncellenemiyor
    • yazma işlemi yalnızca bir sektör sınırında başlatılabilir/durdurulabilir
    • salt okunur dosya özniteliği yazmayı engelleyemez

    Sondan bir önceki noktayı anlamak için, kartın hafızasının 512 baytlık bloklara (sektörlere) bölündüğünü ve kayıt sadece sektörün başından itibaren başlatılabilir. Böylece 1000 byte yazmak istersek o zaman birinci sektör tamamen yazılacak ve ikinciye sadece 488 byte yazılacak ve kalan 24 byte sıfırlarla doldurulacaktır.

    Açık bir dosyaya yazmak için aşağıdakileri yapın:

    • işaretçiyi sektör sınırına ayarlayın, sınıra ayarlanmazsa işaretçi alt sektör sınırına yuvarlanır
    • yazma işlevini istediğiniz sayıda çağırın
    • işlevi bir boş işaretçi ile çağırarak girişi sonlandırın

    Kayıt fonksiyonunun çalışmasına örnek vermek için bir fonksiyonu daha ele almak gerekir.

    FRESULT pf_lseek(DWORD ofseti)- açık dosyada okuma/yazma işaretçisini ayarlar. İmleci mutlak veya göreli bir ofsetle ayarlayabilirsiniz; mutlak bir ofset için işleve bir sayı iletmelisiniz.
    pf_lseek(5000);
    göreli için, işaretçinin değerini geçerli konuma iletin fs.fptr ve yer değiştirme miktarı
    pf_lseek(fs.fptr + 3000);
    Fonksiyonun pffconf.h dosyasında çalışması için şunu yazmanız gerekir:
    #define _USE_LSEEK 1

    Seçenekler:
    DWORD ofseti işaretçinin kaydırılacağı bayt sayısıdır.

    Dönüş değerleri:
    FR_OK (0)- işlevin başarılı bir şekilde yürütülmesi durumunda iade edilir
    FR_DISK_ERR- disk hatası
    FR_NOT_OPENED- dosya açılmadı

    Bir dosyaya aşağıdaki şekilde veri yazabilirsiniz.
    FATFS fs;//FATFS BYTE türünde bir nesne bildirir buff;//WORD br dosyasını okumak için arabellek; // Okunan bayt sayacı // Diski monte etmek IF (pf_mount (& fs) == fr_ok) (// Kök dizinde bulunan dosyayı açın if (PF_OPEN ("Hello.txt") == Fr_ok) (/ E (BUFF, 10, & Br); // Finish PF_WRITE (0, 0, & Br)))

    Ayrıca burada, yukarıda açıklanan tüm işlevleri kullanan, gerçekten çalışan bir kod parçası bırakıyorum.
    #define F_CPU 8000000UL #define buff_size 10 #include #katmak #include "diskio.h" #include "pff.h" #include "spi.h" FATFS fs;//FATFS BYTE türünde bir nesne bildirmek read_buff;//dosyayı okumak için tampon BYTE write_buff = "hello word";////bir dosyaya yazmak için tampon UINT br; // bayt sayacı int main(void) oku ( // diski bağla if (pf_mount(&fs) == FR_OK) ( // dosyayı new klasöründe aç if(pf_open("new/hello.txt") == FR_OK) ( // yazma işaretçisini ayarla pf_lseek(0); // yaz pf_write(write_buff, buff_size, &br); // pf_write(0 yazmayı sonlandır) .

    FRESULT pf_opendir(DIR* dp, const char * yol)- işlev varolan bir dizini açar ve açık dizindeki dosyaların listesini almak için kullanılacak olan DIR türünde bir nesneye işaretçi oluşturur.
    Fonksiyonun pffconf.h dosyasında çalışması için şunu yazmanız gerekir:
    #define _USE_DIR 1

    Seçenekler:
    YÖN *dp- DIR türünde bir değişkene işaretçi.

    const karakter * yol- dizine giden yolu içeren bir dizeye işaretçi, dizinler eğik çizgi ile ayrılır

    Dönüş değerleri:
    FR_OK (0)- işlevin başarılı bir şekilde yürütülmesi durumunda iade edilir
    FR_NO_PATH- yol bulunamadı
    FR_NOT_READY- Disk başlatılamadı
    FR_DISK_ERR- disk hatası
    FR_NOT_ENABLED- disk takılı değil

    //fatfs fs değişkenlerinin bildirilmesi; YÖN dir; //diski bağla pf_mount(&fs); //dizin aç pf_opendir(&dir, "Klasörüm");

    FRESULT pf_readdir(DIR* dp, FILINFO* fno)- işlev, dizinin içeriğini okumanızı sağlar. Bunu yapmak için, pf_opendir() işleviyle bir dizin açın ve pf_readdir()'i çağırın. İşlev her çağrıldığında, belirtilen dizinde bulunan nesnenin (klasör/dosya) adını döndürür. Tüm nesneleri gözden geçirdiğinde, fno.fname dizi öğesindeki boş dizgiyi döndürür.
    Fonksiyonun pffconf.h dosyasında çalışması için şunu yazmanız gerekir:
    #define _USE_DIR 1

    Seçenekler:
    YÖN *dp- önceden bildirilmesi gereken DIR tipi bir değişkene işaretçi

    FILINFO *fno- önceden bildirilmesi gereken FILINFO tipi bir değişkene işaretçi.

    Dönüş değerleri:
    FR_OK- işlevin başarıyla tamamlanması
    FR_DISK_ERR- disk hatası
    FR_NOT_OPENED- dizin açık değil

    FATFS; FRESULT çözünürlüğü; FILINFO fno; YÖN dir; //diski bağla pf_mount(&fs); //res dizini aç = pf_opendir(&dir, KLASÖRÜM); //dizin içeriğini oku for(;;)( res = pf_readdir(&dir, &fno); //okurken herhangi bir hata olup olmadığını kontrol edin // ve belirtilen dizinde hala dosyalar olup olmadığını kontrol edin if ((res != FR_OK) || (fno.fname == 0))( break; ) //fno.fname usart_sendStr(fno.name); usart_sendStr(/r); )

    Son olarak, çalışma projesini burada bırakacağım.