Проблема с sd-картридером

Тема в разделе "Arduino & Shields", создана пользователем Филипп123, 21 мар 2024.

  1. Включил картридер (troyka-module) в Arduino UNO через Shield. Залил код с официального сайта Амперки, но без датчика температуры и влажности. Пишет, что карта не найдена, хотя вставлена. Был в офисе Амперки, с датчиком влажности все работает. Написал свой код просто для того, чтобы он сохранил в файл "1". Пишет ошибку- карта не найдена. Прикрепляю 2 кода, свой для SD карты и код, в который я хочу интегрировать SD для записи данных. Собираем для стратостата, если у кого-то есть возможность, и Вы разбираетесь, буду безумно благодарен, если Вы закинете код работающего SD-картридера в наш код для стратостата.

    Код (C++):
    #include <SPI.h>
    #include <SD.h>

    #define SD_CS_PIN  8

    void setup ()
    {
      // открываем последовательный порт для мониторинга действий в программе
      Serial.begin(9600);

      // выводим сообщение в Serial-порт о поиске карты памяти
      Serial.println("Initializing SD card...");
      // если microSD-карта не была обнаружена
      if (!SD.begin(SD_CS_PIN)) {
        // выводим сообщение об ошибке
        Serial.println("Card failed, or not present");
        // don't do anything more:
        return;
      } else {
        Serial.println("Card initialized.");
      }
    }

    void loop ()
    {
    }

    void saveSD ()
    {
      File dataFile = SD.open("datalog.txt", FILE_WRITE);
      if (dataFile) {
        // сохраняем данные
        dataFile.println("1");
        // закрываем файл
        dataFile.close();
        // выводим сообщение об удачной записи
        Serial.println("Save OK");
      }
      else
      {
        // если файл не доступен
        Serial.println("Error opening datalog.txt");
      }
    }
    Код (C++):
    // Библиотека для работы с модулями IMU

    Вот код, который заливал только для SD





    #include <TroykaIMU.h>
    #include <microDS18B20.h>
    // Создаём объект для работы с акселерометром
    Barometer barometer;
    MicroDS18B20<2> sensor;

    void setup() {
        // Открываем Serial-порт
        Serial.begin(9600);
        // Выводим сообщение о начале инициализации
        Serial.println("Barometer begin");
        // Инициализируем барометр
        barometer.begin();
        // Выводим сообщение об удачной инициализации
        Serial.println("Initialization completed");

    }
    void loop() {
           sensor.requestTemp();
           
         
       
        // Создаём переменную для значения атмосферного давления в Паскалях
        float pressurePascals = barometer.readPressurePascals();
        // Создаём переменную для значения атмосферного давления в мм рт.ст.
        float pressureMillimetersHg = barometer.readPressureMillimetersHg();
        // Создаём переменную для значения высоты над уровнем море
        float altitude = pressurePascals/(1,29*9,8*100) ;
        // Создаём переменную для значения температуры окружающей среды
        float temperature = barometer.readTemperatureC();
        // Cоздаём переменную для значения температруы за бортом (DS18B20)
        float temperature1 = sensor.getTemp();
        // Вывод данных в Serial-порт
        Serial.print("Pressure: ");
        Serial.print(pressurePascals);
        Serial.print(" Pa\t");
        Serial.print(pressureMillimetersHg);
        Serial.print(" mmHg\t");
        Serial.print("Height: ");
        Serial.print(altitude);
        Serial.print(" m \t");
        Serial.print("Indoor temperature: ");
        Serial.print(temperature);
        Serial.print(" C°");
        Serial.print("     Outdoor temperature: ");
        Serial.print(temperature1);
        Serial.println(" C°");
        delay(6000);
    }

    Код, в который нужно интегрировать SD