Деякі речі, які слід пам'ятати при використанні бібліотеки SD

Документація
Зв’язок між мікроконтролером та SD-картою використовує SPI, який використовує цифрові піни 11, 12 та 13 (на більшості плат Arduino) або 50, 51 та 52 (Arduino Mega). Крім того, інший пін має бути використаний, щоб вибрати SD-карту. Це може бути апаратний пін SS — пін 10 (на більшості плат Arduino) або пін 53 (на Mega) — або інший пін, вказаний у виклику до SD.begin(). Зверніть увагу, що навіть якщо Ви не використовуєте апаратний пін SS, він має бути залишений як вихід, інакше бібліотека SD не працюватиме. Різні плати використовують різні піни для цієї функціональності, тому переконайтеся, що Ви вибрали правильний пін у SD.begin().

Не всі функції перелічені на головній сторінці бібліотеки SD, оскільки вони є частиною допоміжних функцій бібліотеки.

Форматування/підготовка карти
(Примітка: при зверненні до SD-карти використовуються розміри SD and microSD, як і формати SD and SDHD)

Більшість SD-карт працюють відразу з коробки, але можливо, що у вас така, що використовувалася у комп’ютері чи камері і не може бути зчитана бібліотекою SD. Форматування карти створить файлову систему, яку Arduino зможе зчитувати та в яку записувати.

Небажано часто форматувати SD-карти, бо це скорочує їхню тривалість життя.

Вам знадобиться SD-рідер та комп’ютер, щоб форматувати карту. Бібліотека підтримує файлові системи FAT16 та FAT32, але використовуйте FAT16, де це можливо. Процес форматування досить простий.

Windows: клікніть правою клавішею мишки на каталозі Вашої карти та виберіть “Format” з випадаючого списку. Переконайтеся, що як файлову систему Ви обрали FAT.

OSX: відкрийте Disk Utility (розташовано у Applications>Utilities). Виберіть Card, клікніть на вкладку стирання, виберіть MS-DOS(FAT) як Format та натисніть Erase. Примітка: OSX містить число “прихованих” файлів на пристрої, коли форматує диск. Щоб форматувати SD-карту без додаткових файлів на OSX, дотримуйтесь цієї інструкції.

Linux: вставивши SD-карту, відкрийте кінцеве вікно. У командному рядку надрукуйте df та натисніть Enter. Вікна повідомлять пристрою ім’я Вашої SD-карти, воно має виглядає схоже на /dev/sdb1. Відключіть картку, але залиште її комп’ютері. Надрукуйте sudo mkdosfs -F 16 /dev/sdb1, замінивши ім’я пристрою Вашим. Вилучіть SD-карту та вставте назад, щоб переконатися, що вона працює.

Іменування файлів
Файлова система FAT має обмеження, коли мова йде про правила іменування. Потрібно використовувати формат 8.3, щоб імена файлів виглядали як “NAME001.EXT”, де “NAME001” є рядком з восьми чи менше символів, а “EXT” є розширенням з трьох символів. Люди зазвичай використовують розширення .TXT та .LOG. Можливо мати коротше ім’я файлу (наприклад, mydata.txt чи time.log), але не можна використовувати довші. Для детальнішої інформації див. правило 8.3.

Відкривання/закривання файлів
Коли Ви використовуєте file.write(), запис на карту не відбувається до функцій flush() або close(). Щоразу, коли відкриваєте файл, обов'язково закрийте його, щоб зберегти дані.
З версії 1.0 можна одночасно відкривати декілька файлів.

Різні шилди/плати
Є цілий ряд різних шилдів, що підтримують SD-карти. Цей перелік не є виключним, але часто використовуваним.

Arduino Ethernet Shield
Arduino Ethernet Shield
Шилд Ethernet постачається з вбудованим слотом для SD-карти. Шилд розміщується зверху на Arduino. Оскільки модуль Ethernet використовує пін 10, пін CS для SD-карти переміщено на пін 4. Переконайтеся, що Ви використовуєте SD.begin(4), щоб скористатися функціональністю SD-карти.

Перехідна плата для Micro-SD від Adafruit
Перехідна плата для Micro-SD від Adafruit
Ця плата підтримує карти Micro-SD, її слід підключити перед використанням. GND на платі підключіть до землі на Arduino, 5v до 5v, CLK до піна 13, DO до піна 12, DI до піна 11, CS до піна 10. Якщо Ви вже використовуєте пін 10, можна вибрати інший пін, але не забудьте змінити пін у SD.begin().

Шилд SD від Sparkfun
Шилд SD від Sparkfun
Шилд від Sparkfun підходить для Arduino та використовує пін 8 для CS. Вам знадобиться функція SD.begin(8), щоб використовувати карту. Примітка: шилд від Sparkfun нещодавно був оновлений. Старші версії виглядають схоже, але не мають зв'язку з шиною 3.3V і вбудованого інвертора.

Повернутись до головної

Коментарі 0

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.