SD card модуль подключение к Arduino

Опубликовано 14.07.2013 12:57:00


Иногда в проектах требуется сохранить большое количество информации. В данной статье мы рассмотрим один из вариантов решения данной задачи - SD card модуль. Разберем стандартные примеры-основы, а в конце перейдем к считыванию показаний с модуля датчика температуры и влажности DHT11 и их записи на карту.

иллюстрация подключения модуля картоприемника

 

 

SD card модуль найдет свое применение в проектах где вам недостаточно объема EEPROM (энергонезависимая память), либо необходимо сохранять данные получаемые с различных датчиков на внешний носитель для последующей обработки.

Подключение сигнальных линий и земли к Arduino производится следующим образом:

 SD Card модуль  Arduino на базе 328
 CS  D4
 MOSI  D11
 MISO  D12
 SCK  D13
 GND  GND

 

Касательно питания, на плате есть разъемы для подключения напряжения на 5 вольт и и 3.3 

Непосредственно сама SD карта питается от 3.3 вольт. Плюсом данного модуля является установленный стабилизатор на необходимые 3.3 вольта. Так что если у вас под рукой нет 3.3вольт, то подавайте питание на разъем 5 вольт и все будет работать. На иллюстрации модуль запитан как раз таки от +5V.

иллюстрация подключения модуля картоприемника


 

 

Приведем простой пример работы с этим модулем в среде Arduino, с использованием стандартной библиотеки SD.h.

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

 

 
Пример программного кода

 

 Пример копирования файла на SD card модуле ардуино


 

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

Ссылка на библиотеку, для работы с DHT11.

 
Пример кода SD card + DHT11
#include <SD.h>
#include <dht11.h>      // Добавляем библиотеку DHT11
dht11 DHT;               // Объявление переменной класса dht11
#define DHT11_PIN 7     // Датчик DHT11 подключен к цифровому пину номер 7
File sensorDataFile;  // Файл в который будут записаны показания с датчика
char* SENSOR_DATA_FILE_NAME = "1.txt";  // Название файла
int chk; //переменная для отслеживания ошибок dht11

void setup()
{
  Serial.begin(9600);
  // Инициализируем СД карту
  Serial.print("Initializing SD card...");
  if (!SD.begin(4)) {
    Serial.println("initialization failed!");
    return;
  }
  Serial.println("initialization done.");

  // Открываем (или создаем, если его нет) файл для записи данных с датчика
  sensorDataFile = SD.open(SENSOR_DATA_FILE_NAME, FILE_WRITE);
  for (int i = 0; i < 10; i++)  //делаем 10 замеров
  {
    chk = DHT.read(DHT11_PIN);    // Чтение данных
    switch (chk)
    {
      case DHTLIB_OK:
        if (sensorDataFile)
        {
          char msg[128];
          sprintf(msg, "Current humidity = %d%% temperature = %dC",
            DHT.humidity, DHT.temperature);
          Serial.println(msg);
          sensorDataFile.println(msg);
        }
        else
        {
          Serial.println("File error, \t");
        }
        break;
      case DHTLIB_ERROR_CHECKSUM:
        Serial.println("Checksum error, \t");
        break;
      case DHTLIB_ERROR_TIMEOUT:
        Serial.println("Time out error, \t");
        break;
      default:
        Serial.println("Unknown error, \t");
        break;
    }
    delay(1000);
  }
  sensorDataFile.close();
  Serial.println("Finished.");
}

void loop()
{
}

 


Сохранение информации с датчика температуры DHT11 на SD card модуле Arduino


 

P.S. Несмотря на то, что скорость записи на SD карту не так высока в сравнении с записью в EEPROM и тем более в обычную энергозависимую память контроллера, данный модуль бесспорно расширяет потенциал Arduino, позволяя автономно хранить огромные объемы данных, а также переносить их на обычной флешке.


 

Купить Купить в России  SD card модуль


А как же комментарии?