MyTetra Share
Делитесь знаниями!
Время создания: 12.02.2023 18:54
Автор: alensav
Текстовые метки: РадиоэлектроникаЦифровая электроникаОтладочные комплектыArduinoРабота Arduino с периферийными устройствамиПамять и хранение данных (работа Arduino с периферией) linuxcenter.shop РЕКЛАМА Каталог товаров Raspberry Pi. Недорого. Доставка по РФ! ruvds.com РЕКЛАМА VDS/VPS сервер от 130 руб/месяц Arduino: чтение и запись файлов на SD карту Добавлено 6 ноября 2016 в 14:50 Сохранить или поделиться Вы можете использовать SD карту в ваших устройствах на Arduino, чтобы сохранять и извлекать информацию. В некоторых приложениях на Arduino полезно иметь возможность локально сохранять и извлекать информацию. Вы можете сделать это с помощью Secure Digital, или SD, карты. SD карта – это энергонезависимая карта памяти, широко используемая в портативных устройствах, таких как мобильные телефоны, цифровые фотоаппараты, навигационные устройства GPS, карманные консоли и планшетные компьютеры. Другой тип SD карт – это карта microSD. Это самая маленькая карта памяти, ее размеры составляют 15 мм x 11 мм x 1 мм. Это примерно четверть размера SD карты обычного размера. Карта памяти microSD Карта памяти microSD Для подключения карты памяти microSD к нашей плате Arduino Mega мы будем использовать плату расширения Ethernet shield со встроенным слотом microSD. Однако, есть множество других плат расширения, доступных для других типов SD карт. Распиновка карты памяти microSD Распиновка карты памяти microSD Как показано на рисунке выше, карта памяти microSD имеет 8 выводов. Описание каждого вывода приведено в таблице ниже. Описание выводов карты памяти microSD Номер вывода Название Описание 1 NC не подключен 2 CS выбор чипа / выбор ведомого (SS) 3 DI выход мастера / вход ведомого (MOSI) 4 VDD напряжение питания 5 CLK тактовый сигнал (SCK) 6 VSS земля 7 DO вход мастера / выход ведомого (MISO) 8 RSV зарезервировано Если вы решили попробовать подключить SD карту самостоятельно, то убедитесь, что подключили выводы SD карты к соответствующим выводам платы Arduino. Так как мы используем имеющуюся в продаже плату расширения, то у нас с этим проблем нет. Всё, что нам нужно сделать, это сконфигурировать вывод Arduino, использующийся по умолчанию, как CS (выбор чипа), для работы в качестве выхода. В нашей Arduino Mega это вывод 53. На плате расширение Ethernet shield выводом CS является вывод 4. Вы должны правильно указать это в коде для SD карты. Эксперимент 1 В этом эксперименте мы рассмотрим, как прочитать файл с SD карты. Комплектующие 1 x карта памяти microSD; 1 x плата расширения Ethernet shield; 1 x плата Arduino Mega 2560. Arduino Mega с установленной платой расширения Ethernet shield Arduino Mega с установленной платой расширения Ethernet shield Код Для чтения с SD карты мы будем использовать библиотеку SD.h. Данный код предполагает, что файл "ourfile.txt" уже записан на SD карту. #include <SD.h> const int cs = 4; void setup() { Serial.begin(9600); Serial.print("Initializing card..."); // убедитесь, что стандартный вывод выбора чипа работает как выход pinMode(53, OUTPUT); // посмотреть, есть ли карта if (!SD.begin(cs)) { Serial.println("Card failed to initialize, or not present"); return; } Serial.println("card initialized."); // открыть файл с именем ourfile.txt File myfile = SD.open("ourfile.txt"); // если файл доступен, прочитать его if (myfile) { while (myfile.available()) { Serial.write(myfile.read()); } myfile.close(); } else // если файл не может быть открыт, то выдать сообщение об ошибке { Serial.println("error opening the text file"); } } void loop() { } Эксперимент 2 В этом эксперименте мы рассмотрим, как создать файл, записать его, а затем прочитать его с SD карты. Комплектующие Мы будем использовать то же самое аппаратное обеспечение, что и в предыдущем эксперименте. Код Чтобы записать файл на SD карту и прочитать его же, мы снова будем использовать библиотеку SD.h. #include <SD.h> File myfile; void setup() { Serial.begin(9600); Serial.print("Initializing card..."); // объявить стандартный CS вывод как выход pinMode(53, OUTPUT); if (!SD.begin(4)) { Serial.println("initialization of the SD card failed!"); return; } Serial.println("initialization of the SDcard is done."); myfile = SD.open("textFile.txt", FILE_WRITE); if (myfile) { Serial.print("Writing to the text file..."); myfile.println("Congratulations! You have successfully wrote on the text file."); myfile.close(); // закрыть файл Serial.println("done closing."); } else // если файл не может быть открыт, то выдать сообщение об ошибке { Serial.println("error opening the text file!"); } // снова открыть текстовый файл для чтения myfile = SD.open("textFile.txt"); if (myfile) { Serial.println("textFile.txt:"); // прочитать весь текст, записанный в файле while (myfile.available()) { Serial.write(myfile.read()); } // закрыть файл myfile.close(); } else // если файл не может быть открыт, то выдать сообщение об ошибке { Serial.println("error opening the text file!"); } } void loop() { } Надеюсь, статья оказалась полезной. Оставляйте комментарии! Оригинал статьи: Editorial Team. Reading and Writing Files from an SD Card with an Arduino Теги Сохранить или поделиться РЕКЛАМА linuxcenter.shop Каталог товаров Raspberry Pi. Недорого. Доставка по РФ! Узнать больше РЕКЛАМА yecss.ru Лучшая альтернатива Raspberry Pi! Узнать цену РЕКЛАМА componetica.ru Изготовление печатных плат. Сжатые сроки! Свой склад. Узнать больше РЕКЛАМА мехатроника.маэо.рф Курс «Мехатроника и роботехника» Квалификационный сертификат в подарок! Узнать больше На сайте работает сервис комментирования DISQUS, который позволяет вам оставлять комментарии на множестве сайтов, имея лишь один аккаунт на Disqus.com. В случае комментирования в качестве гостя (без регистрации на disqus.com) для публикации комментария требуется время на премодерацию.
Раздел: ARDUINO
Запись: alensav/MyTetra2/main/base/1676217258hjsdba3tca/text.html на raw.githubusercontent.com

Вы можете использовать SD карту в ваших устройствах на Arduino, чтобы сохранять и извлекать информацию.

В некоторых приложениях на Arduino полезно иметь возможность локально сохранять и извлекать информацию. Вы можете сделать это с помощью Secure Digital, или SD, карты. SD карта – это энергонезависимая карта памяти, широко используемая в портативных устройствах, таких как мобильные телефоны, цифровые фотоаппараты, навигационные устройства GPS, карманные консоли и планшетные компьютеры. Другой тип SD карт – это карта microSD. Это самая маленькая карта памяти, ее размеры составляют 15 мм x 11 мм x 1 мм. Это примерно четверть размера SD карты обычного размера.Карта памяти microSD

Для подключения карты памяти microSD к нашей плате Arduino Mega мы будем использовать плату расширения Ethernet shield со встроенным слотом microSD. Однако, есть множество других плат расширения, доступных для других типов SD карт.Распиновка карты памяти microSD

Как показано на рисунке выше, карта памяти microSD имеет 8 выводов. Описание каждого вывода приведено в таблице ниже.

Описание выводов карты памяти microSD

Номер вывода

Название

Описание

1

NC

не подключен

2

CS

выбор чипа / выбор ведомого (SS)

3

DI

выход мастера / вход ведомого (MOSI)

4

VDD

напряжение питания

5

CLK

тактовый сигнал (SCK)

6

VSS

земля

7

DO

вход мастера / выход ведомого (MISO)

8

RSV

зарезервировано

Если вы решили попробовать подключить SD карту самостоятельно, то убедитесь, что подключили выводы SD карты к соответствующим выводам платы Arduino. Так как мы используем имеющуюся в продаже плату расширения, то у нас с этим проблем нет. Всё, что нам нужно сделать, это сконфигурировать вывод Arduino, использующийся по умолчанию, как CS (выбор чипа), для работы в качестве выхода. В нашей Arduino Mega это вывод 53. На плате расширение Ethernet shield выводом CS является вывод 4. Вы должны правильно указать это в коде для SD карты.

Эксперимент 1


В этом эксперименте мы рассмотрим, как прочитать файл с SD карты.

Комплектующие


  • 1 x карта памяти microSD;
  • 1 x плата расширения Ethernet shield ;
  • 1 x плата Arduino Mega 2560 .Arduino Mega с установленной платой расширения Ethernet shield

Код

Для чтения с SD карты мы будем использовать библиотеку SD.h. Данный код предполагает, что файл "ourfile.txt" уже записан на SD карту.

#include <SD.h>


const int cs = 4;


void setup()

{

Serial.begin(9600);


Serial.print("Initializing card...");


// убедитесь, что стандартный вывод выбора чипа работает как выход

pinMode(53, OUTPUT);

// посмотреть, есть ли карта

if (!SD.begin(cs))

{

Serial.println("Card failed to initialize, or not present");

return;

}

Serial.println("card initialized.");

// открыть файл с именем ourfile.txt

File myfile = SD.open("ourfile.txt");


// если файл доступен, прочитать его

if (myfile)

{

while (myfile.available())

{

Serial.write(myfile.read());

}

myfile.close();

}

else // если файл не может быть открыт, то выдать сообщение об ошибке

{

Serial.println("error opening the text file");

}

}


void loop()

{

}

Эксперимент 2

В этом эксперименте мы рассмотрим, как создать файл, записать его, а затем прочитать его с SD карты.

Комплектующие

Мы будем использовать то же самое аппаратное обеспечение, что и в предыдущем эксперименте.

Код

Чтобы записать файл на SD карту и прочитать его же, мы снова будем использовать библиотеку SD.h.

#include <SD.h>


File myfile;


void setup()

{

Serial.begin(9600);

Serial.print("Initializing card...");

// объявить стандартный CS вывод как выход

pinMode(53, OUTPUT);

if (!SD.begin(4)) {

Serial.println("initialization of the SD card failed!");

return;

}

Serial.println("initialization of the SDcard is done.");

myfile = SD.open("textFile.txt", FILE_WRITE);

if (myfile)

{

Serial.print("Writing to the text file...");

myfile.println("Congratulations! You have successfully wrote on the text file.");

myfile.close(); // закрыть файл

Serial.println("done closing.");

}

else // если файл не может быть открыт, то выдать сообщение об ошибке

{

Serial.println("error opening the text file!");

}

// снова открыть текстовый файл для чтения

myfile = SD.open("textFile.txt");

if (myfile)

{

Serial.println("textFile.txt:");

// прочитать весь текст, записанный в файле

while (myfile.available())

{

Serial.write(myfile.read());

}

// закрыть файл

myfile.close();

}

else // если файл не может быть открыт, то выдать сообщение об ошибке

{

Serial.println("error opening the text file!");

}

}


void loop()

{

}

Надеюсь, статья оказалась полезной. Оставляйте комментарии!

Так же в этом разделе:
 
MyTetra Share v.0.64
Яндекс индекс цитирования