Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

Arduino:Примеры/Запись произвольных данных на SD карту

Материал из Онлайн справочника
Перейти к: навигация, поиск

Проверка/Оформление/Редактирование: Мякишев Е.А.


Ambox content.png Черновик


Запись произвольных данных на SD карту

Данный пример демонстрирует запись произвольных данных на SD-карту с использованием платы Arduino Uno и любой платы расширения(шилд), работающей с SD-картами или MicroSD-картами(Cooking HAcks Micro SD shiled, Arduino Wireless SD shiled, Arduino Ethernet SD shiled, Arduino Wi-Fi SD shield, Adafruit data logging shield, SparkFun MicroSD shield).

Необходимые компоненты

Монтажная схема

Соедините выбранную вами плату расширения с платой Arduino Uno.

Код

  1. #include <SD.h>                                           // Подключаем библиотеку SD
  2.  
  3. /*
  4. Используемые по умолчанию контакты для библиотеки SD.
  5. Если вы используете Arduino Ethernet SD shiled или любую
  6. другую плату расширения использующую эти контакты,
  7. то ничего менять не надо
  8. MOSI = 11 контакт
  9. MISO = 12 контакт
  10. SCLK = 13 контакт
  11. */
  12.  
  13. #define CS_PIN 10                                         // Контакт выбора
  14.                                                           // Примечание: если вы используете Arduino Ethernet SD shiled
  15.                                                           // необходимо изменить номер контакта на 4.
  16.                                                           // Если ваша плата расширения использует другой контакт
  17.                                                           // вам необходимо его изменить на правильный.                        
  18. void setup()
  19. {
  20.   Serial.begin(9600);                                     // Инициализация последовательного соединения на скорости 9600 бод
  21.   Serial.println("Initializing Card");                    // Распечатываем в мониторе последовательного порта "Initializing Card"("Инициализация карты")
  22.   pinMode(CS_PIN, OUTPUT);                                // Определяем CS(контакт выбора) контакт как выход
  23.  
  24.   // Инициализация SD-карты
  25.   if (!SD.begin(CS_PIN))
  26.   {
  27.     Serial.println("Card Failure");                        // Распечатываем в мониторе последовательного порта "Card Failure"("Сбой подключения к SD-карте")
  28.     return;                                                // Останавливаем выполнение программы
  29.   }
  30.   Serial.println("Card Ready");                            // Распечатываем в мониторе последовательного порта "Card Ready"("Карта готова к работе")
  31. }
  32.  
  33. void loop()
  34. {
  35.   long timeStamp = millis();                               // Временная метка
  36.   String dataString = "Hello World!";                      // Произвольный текст
  37.  
  38.   // Открываем файл и записываем в него данные
  39.   File dataFile = SD.open("log.csv", FILE_WRITE);
  40.   if (dataFile)
  41.   {
  42.     dataFile.print(timeStamp);
  43.     dataFile.print(",");
  44.     dataFile.println(dataString);
  45.     dataFile.close();                                      // Внимание! Данные не будут записаны, пока вы не закроете соединение!
  46.  
  47.     // Распечатываем в мониторе последовательного порта те же данные для отладки
  48.     Serial.print(timeStamp);
  49.     Serial.print(",");
  50.     Serial.println(dataString);
  51.   }
  52.   else
  53.   {
  54.     Serial.println("Couldn't open log file");             // Распечатываем в мониторе последовательного порта "Couldn't open log file"("Не удалось открыть файл журнала")
  55.   }
  56.   delay(5000);                                            // Задержка 5 сек.
  57. }

См.также

Внешние ссылки