SD карта и модул Ардуино
Какво трябва да знаете, когато се използва SD карта с Arduino
Първо. Карти са предназначени за 3,3 V. Когато информацията е актуална интензивност може да достигне високи стойности до 100 mA, а дори и повече! Това предполага, че е необходимо да се осигури високо качество на храните 3.3 карта. Освен това, е необходимо да има източник на 3.3V за логика власт. SD карти са много чувствителни - използването на резистори и дълги проводници, свързващи доведе до значителен спад в честотата на предаване на данни. Така че използването на възможно най-конекторите и да се избегне резистори във веригата логика доставки. Вместо това можете да използвате преобразуватели ниво въз основа HEF4050 чипс, 74LVX245 или 74AHC125.
На второ място. Има два режима на работа: SPI и SDIO. SDIO изпълнява по-бързо, но това се реализира, когато се работи с Ардуино трудно. режим SPI е много по-лесно да се установи, когато се работи с всеки микроконтролер. За да се свържете с режим SPI ще се нуждаят от общо четири пина (по-подробно, считаме този въпрос по-нататък).
SD карти са на разположение в два форм фактори: микроб и SD. Connections, структура на програмата и т.н. За тях една и съща. Единствената разлика - размера. Micro SD карта е много по-малки по размер.
На трето място. SD карти представляват чип с отделни сектори. Това означава, че определена структура, която трябва да не се използва. Това означава, че картата може да бъде форматиран с файлова система Linux, GFAT (DOS) или Mac. Тя може да отсъства файлова система! По този начин 99% от компютри, фотоапарати, MP-3 плеъри, GPS-навигатор за използване изисква FAT16 или FAT32 формат система. Уловката се крие във факта, че сравнително голям процент от заделената памет при работа със сложни файлови системи в микроконтролери като Ардуино.
Форматиране на SD карта
По принцип, можете да използвате SD карта без файлова система, но това не е много удобно. За да работите с Ардуино е по-добре да се използва FAT16 или FAT32 формат. Това се дължи главно на наличието на съответните библиотеки. Някои един формат подкрепа, някои - от друга. Arduino SD библиотека поддържа и двата формата.
За форматиране, можете да използвате тази програма, например: SD Card форматиране
На страницата за изтегляне има инструкции за използване на програмата. Проблемите трябва да се появят.
Свързване Модул SD-карта за Arduino
След това привеждане на SD картата, може да започне да се свържете разширителни карти микроб и Arduino. Разширяване карта значително улеснява връзката. Той е разположен регулатор, който превръща напрежението на 3.3 - 6 V при 3.3 V (I2C). Има регулатор ниво, което преобразува силата на логиката в 3.3-5 до 3.3 V. Това означава, че картата за разширение може да се използва с микроконтролер 3.3 V и 5 V.
В примера, който се използва Arduino микроконтролер. Ако използвате друг микроконтролер, схемата за свързване и кода може да варира.
- Свържете 5V щифт с пин на Arduino 5V
- Свържете GND GND щифт с пин на Ардуино
- Свързване Pin CLK към щифта 13 или 52
- НЕ свърже с пин 12 или 50
- DI свърже с пин 11 или 51
- Свържете CS с пин 10 или 53
Има още един конектор - CD - този ПИН за инициализиране на SD картата. Той затваря на земята, когато е поставена на картата. Ако искате да използвате, свържете гостилница резистор (около 10k) и на друг Пина. В този пример, помислете за тази възможност, ние няма.
Всичко! Ние сме готови да се отвърне!
Зареждане на библиотеката и първото стартиране на SD картата
Трансфер на данни към SD карта - това е голяма част от кода, но за щастие за нас там е интегриран в библиотеката на Arduino IDE наречен SD (на името на точката, не е това.)). Намери библиотеката може да бъде в менюто Примери. Примери в подменюто, изберете скица CardInfo.
С тази скица, не можете да прехвърляте данни, а само да получите отговор, дали свързаното SD-картата е разпозната. Много полезна скица, ако искате да разберете дали то е подкрепено от работата с вашата карта. Преди да започнете работа с новата карта е необходимо да се извърши тази проверка!
В началото на променлива chipSelect на скица проверка. В този пример са свързани към 10 щифт на, съответно, на променлива приема стойност 10.
Сега поставете SD картата в картата за разширяване и зареди на скицата.
Отворете прозореца сериен монитор в Ардуино, въведете всеки символ и натиснете Изпрати. Най-вероятно ще се появи нещо като това:
Моля, имайте предвид, че дава информация на файловата система - FAT16, размерът на картата (2 GB, която в този случай отговаря на действителността) и т.н.
Ако имате лоша карта (на първо място, тази карта от неизвестни производители), се появи подобно на следното:
В този пример, картата отговаря на заявки, но неправилно. Имайте предвид, в непосредствена близост до идентификационния номер на продукта се вижда "N / A", няма Производител ID и OEM ID. В допълнение, картата връща SD грешки грешка. Като цяло, картата неизползваеми. Можете да опитате да го форматирате. Ако след грешки при форматирането не се консумира, като се използва тя няма да работи.
Опитайте се да премахнете SD картата и рестартирайте програмата. В поредния мониторът показва следното:
Тази грешка се появява, когато не успя дори да се инициализира картата. Първа възможна причина: картата е повредена. На второ място, неправилно свързване на модула на SD картата Arduino.
Запис на данни върху SD карта чрез Ардуино
В скица показва основните възможности за запис на данни от карти. В действителност тя е основа за работа с модул SD карта.
Serial.print ( "Инициализиране на SD карта.");
// съответства на табелката на Ethernet CS щифт от 4 мача. По подразбиране тя е настроена за изхода режим
// имайте предвид, че ако тя не се използва като ПИН CS, на SS щифт за оборудването
// (10 на повечето Ардуино дъски, 53 на Mega Ардуино), следва да бъдат оставени в режим на производство.
// иначе SD библиотечни функции на библиотеката няма да работи.
// отваряне на файла. Имайте предвид, че паралелно не може да отвори множество файлове.
// преди да отворите нов файл, старото трябва да се затвори
моятФайл = SD.open ( "test.txt", FILE_WRITE);
// ако не може да отвори файла, пишете на него:
Serial.print ( "Писане на test.txt.");
myFile.println ( "изпитване 1, 2, 3");
// ако файлът не се отваря, се появява съобщение за грешка:
Serial.println ( "грешка отваряне test.txt");
// настройка след нищо не се случва
Работещи пародия да изпълнява, ще видите следното:
След като работи скица, можете да отворите файла, генерирани на персонален компютър. Всеки ред съответства на един цикъл на програмата. Това означава, че се добавя данни и не са презаписани.
Заслужава да се отбележи няколко неща:
библиотека SD карта не се поддържа "дълго име", така че имената на файловете трябва да са къси! Например, image.jpg - голямо заглавие, datalog.txt - подходящ. Но нещо като "My GPS лог file.text" няма да работи! Също така имайте предвид имената на буквите няма значение. Това означава, че datalog.txt - това е едно и също нещо като DataLog.Txt или DATALOG.TXT
Четене на данни от SD карта, чрез Ардуино
Сега ние трябва да се разбере как е възможно да се чете информация от файл, който се съхранява на картата. Процесът е много подобен на записа. Ние ще използваме функция SD.open () с името на файла. Можете да се обадите функция на разположение () (което ще ви кажа дали има информация за картата, за да се чете) и прочетете () от файла, който се връща на следващия байт.
Serial.print ( "Инициализиране на SD карта.");
// съответства на табелката на Ethernet CS щифт от 4 мача. По подразбиране тя е настроена за изхода режим
// имайте предвид, че ако тя не се използва като ПИН CS, на SS щифт за оборудването
// (10 на повечето Ардуино дъски, 53 на Mega Ардуино), следва да бъдат оставени в режим на производство.
// иначе SD библиотечни функции на библиотеката няма да работи.
// настройка след нищо не се случва
Някои важни бележки:
- Можете да запазите и двете отворени няколко файла и да чете информация от домакина.
- Прочетете () връща байта за единица време. Функцията не чете цялата линия!
- В края на краищата това е необходимо да използвате функцията за близо (), за да затворите файла, за да се намали количеството памет RAM.
Рекурсивни данни четене / запис от файлове
Изпълнете SD → listfiles проба скица.
Там ще намерите подпапка Аним (има анимационни файлове). Числото след името на файла описва размера на файла в байтове. Много полезно, ако искате да се провери кои файлове се наричат с картата си.
Заслужава да се отбележи няколко неща:
Други полезни функции
Има и други полезни функции за работа с SD карта. Някои от тях, ние даваме по-долу:
- Ако искате да проверите за файла на медиите, използвайте функцията SD.exists ( "filename.txt"), който ще се върне вярно или невярно.
- За да изтриете файл, можете да използвате функцията SD.remove ( "filename.txt"). Но бъдете внимателни! File се изтрива напълно. Не "кошница" или резервното копие ще бъде оставен да се възстанови.
- Създайте подпапка, можете да използвате функцията SD.mkdir ( "/ imya_novoy_papki"). Много удобно за структуриране на данните си на първо ниво. Ако една папка със същото име вече съществува, нищо няма да се случи. Не забравяйте, че можете да използвате SD.exists () функция, за да създадете папка за преглед.
Няколко полезни функции за работа с файлове:
- За да придвижите показалеца, когато четете / пишете на файл, който се използва потърси функция (). Например, функцията за запис, като се търси (0) ще се движите в началото на файла.
- позиция () функция ви позволява да знаете точно къде сте в преписката по това време.
- размер () функция ще ви донесе информация за размера на файла в байтове.
- Разберете дали директорията, в картата файл може да бъде достъпен isDirectory (функция).
- Последователна работа с файлове, които са в една папка се осъществява с помощта на openNextFile () функция разговор.
- Може да се наложи да подаде име. Например, ако сте се обадили на следващия файл в папката с помощта openNextFile (). В този случай, можете да използвате името (), която връща масив от символни данни, които могат да бъдат показвани директно в сериен монитора Arduino IDE използване Serial.print ().
- Технически данни на микроб карта: Transcend.
- Най-новата версия на библиотеката SD карта библиотека: GitHub.
ARDUINO-DIY.COM - информационен ресурс, с най-добрите инструкциите и уроци за използването на Arduino контролер.
Винаги се радвам да си сътрудничат конструктивно. Ако имате въпроси, коментари и предложения, моля електронна поща [email protected].