Звук на ардуино

Тема в разделе "Arduino & Shields", создана пользователем Аббадон разоритель миров, 20 мар 2020.

  1. Используя скетч ниже, пытался запустить музыку на ардуино, тем самым проверив модуль sd card, но сд карта не проходит инициализацию (пишет об этом в ком порт). Сейчас не знаю что делать, пробовал другие варианты, и все тоже самое. В программировании новичок.
    Код (C++):
    // Подключить библиотеку SD:
    #include <SPI.h>
    #include <SD.h>
    // Задать переменные, использующие функции вспомогательной библиотеки SD:
    Sd2Card card;
    SdVolume volume;
    SdFile root;
    // Измените это в соответствии с вашей платой расширения или модулем;
    const int chipSelect = 4;
    void setup() {
      // Открть последовательный порт и ждать выполнения его открытия:
      Serial.begin(9600);
      Serial.print("Initializing SD card...");
      // мы будем использовать код инициализации из вспомогательных библиотек,
      // так как мы только проверяем, работает ли карта!
      if (!card.init(SPI_HALF_SPEED, chipSelect))
      {
        Serial.println("initialization failed. Things to check:");
        Serial.println("* is a card inserted?");
        Serial.println("* is your wiring correct?");
        Serial.println("* did you change the chipSelect pin to match your shield or module?");
        while (1);
      }
      else
      {
        Serial.println("Wiring is correct and a card is present.");
      }
      // тип карты
      Serial.println();
      Serial.print("Card type:         ");
      switch (card.type())
      {
        case SD_CARD_TYPE_SD1:
          Serial.println("SD1");
          break;
        case SD_CARD_TYPE_SD2:
          Serial.println("SD2");
          break;
        case SD_CARD_TYPE_SDHC:
          Serial.println("SDHC");
          break;
        default:
          Serial.println("Unknown");
      }
      // попробуем открыть "том"/"раздел" - он должен быть FAT16 или FAT32
      if (!volume.init(card))
      {
        Serial.println("Could not find FAT16/FAT32 partition.\nMake sure you've formatted the card");
        while (1);
      }
      Serial.print("Clusters:          ");
      Serial.println(volume.clusterCount());
      Serial.print("Blocks x Cluster:  ");
      Serial.println(volume.blocksPerCluster());
      Serial.print("Total Blocks:      ");
      Serial.println(volume.blocksPerCluster() * volume.clusterCount());
      Serial.println();
      // напечатать тип и размер первого тома FAT-типа
      uint32_t volumesize;
      Serial.print("Volume type is:    FAT");
      Serial.println(volume.fatType(), DEC);
      volumesize = volume.blocksPerCluster();    // кластеры это коллекции блоков
      volumesize *= volume.clusterCount();       // у нас будет много кластеров
      volumesize /= 2;                           // блоки SD карты всегда равны 512 байт (2 блока равны 1KB)
      Serial.print("Volume size (Kb):  ");
      Serial.println(volumesize);
      Serial.print("Volume size (Mb):  ");
      volumesize /= 1024;
      Serial.println(volumesize);
      Serial.print("Volume size (Gb):  ");
      Serial.println((float)volumesize / 1024.0);
      Serial.println("\nFiles found on the card (name, date and size in bytes): ");
      root.openRoot(volume);
      // перечислить все файлы на карте с датой и размером
      root.ls(LS_R | LS_DATE | LS_SIZE);
    }
    void loop(void)
    {
    }
     
  2. NikitOS

    NikitOS Король шутов Администратор

    Подключение правильное?
     
  3. Подключение правильное.
     
  4. NikitOS

    NikitOS Король шутов Администратор

    Проверяйте исправность карты. Ну и чтобы отформатирована была в FAT16 или FAT32
     
    SergeiL нравится это.