Ошибка компиляции списка аргументов библиотеки ArduinoFFT в Arduino

Я создаю визуализатор звука, используя Arduino Nano, электретный конденсаторный микрофон и матрицу 8X32, и продолжаю получать ту же ошибку.

вот код:

#include <ArduinoFFT.h>
#include <Adafruit_GFX.h>
#include <Adafruit_NeoMatrix.h>
#include <Adafruit_NeoPixel.h>

#define PIN_MATRIX 2 // Arduino Nano Pin D2 to DIN of matrix
#define PIN_MIC 0   // Arduino Nano Analog Pin A0 to microphone Vout
#define MATRIX_WIDTH 32
#define MATRIX_HEIGHT 8
#define MIC_SAMPLE_SIZE 48 // Change according to your mic module's specifications

ArduinoFFT fft;

Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(MATRIX_WIDTH, MATRIX_HEIGHT, PIN_MATRIX,
  NEO_MATRIX_TOP     + NEO_MATRIX_LEFT +
  NEO_MATRIX_COLUMNS + NEO_MATRIX_ZIGZAG,
  NEO_GRB            + NEO_KHZ800);

void setup() {
  Serial.begin(9600);
  matrix.begin();
  matrix.setTextWrap(false);
  matrix.setBrightness(50); // Adjust brightness as needed
  matrix.setTextColor(matrix.Color(255, 255, 255)); // Text color
  fft.begin(MIC_SAMPLE_SIZE); // Initialize the FFT object
}

void loop() {
  fft.Execute(); // Run FFT

  int max_index = 0;
  int max_value = 0;

  for (int i = 0; i < MIC_SAMPLE_SIZE / 2; i++) {
    int value = fft.Output[i]; // Read FFT result
    if (value > max_value) {
      max_value = value;
      max_index = i;
    }
  }

  // Map max_index to matrix columns
  int column = map(max_index, 0, MIC_SAMPLE_SIZE / 2, 0, MATRIX_WIDTH);

  // Clear matrix
  matrix.fillScreen(0);

  // Draw bar on matrix
  for (int y = 0; y < MATRIX_HEIGHT; y++) {
    matrix.drawPixel(column, y, matrix.Color(255, 255, 255)); // White color
  }

  matrix.show();
}

Вот ошибка:

/Users/vyomesh/Documents/Arduino/sketch_apr22a/sketch_apr22a.ino:12:1: error: invalid use of template-name 'ArduinoFFT' without an argument list
 ArduinoFFT fft;
 ^~~~~~~~~~
/Users/vyomesh/Documents/Arduino/sketch_apr22a/sketch_apr22a.ino:12:1: note: class template argument deduction is only available with -std=c++1z or -std=gnu++1z
In file included from /Users/vyomesh/Documents/Arduino/sketch_apr22a/sketch_apr22a.ino:1:0:
/Users/vyomesh/Documents/Arduino/libraries/arduinoFFT/src/ArduinoFFT.h:58:29: note: 'template<class T> class ArduinoFFT' declared here
 template <typename T> class ArduinoFFT {
                             ^~~~~~~~~~
/Users/vyomesh/Documents/Arduino/sketch_apr22a/sketch_apr22a.ino: In function 'void setup()':
/Users/vyomesh/Documents/Arduino/sketch_apr22a/sketch_apr22a.ino:25:3: error: 'fft' was not declared in this scope
   fft.begin(MIC_SAMPLE_SIZE); // Initialize the FFT object
   ^~~
/Users/vyomesh/Documents/Arduino/sketch_apr22a/sketch_apr22a.ino:25:3: note: suggested alternative: 'ffs'
   fft.begin(MIC_SAMPLE_SIZE); // Initialize the FFT object
   ^~~
   ffs
/Users/vyomesh/Documents/Arduino/sketch_apr22a/sketch_apr22a.ino: In function 'void loop()':
/Users/vyomesh/Documents/Arduino/sketch_apr22a/sketch_apr22a.ino:29:3: error: 'fft' was not declared in this scope
   fft.Execute(); // Run FFT
   ^~~
/Users/vyomesh/Documents/Arduino/sketch_apr22a/sketch_apr22a.ino:29:3: note: suggested alternative: 'ffs'
   fft.Execute(); // Run FFT
   ^~~
   ffs

exit status 1

Compilation error: invalid use of template-name 'ArduinoFFT' without an argument list

Схема подключения матрицы: Земля-Земля 5В-5В DIN-D2

Электретный конденсаторный микрофон: Положительный — A0 и подключен к 5 В через резистор. Отрицательный-земля

Дополнительная информация: Макос Сонома. имя библиотеки — ArduinoFFT.h

  • Перезапустил IDE
  • Переустановил библиотеку
  • пробовал разные версии
  • в крайнем случае обратился за помощью к ChatGPT (все равно безуспешно)
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
170
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это проблема, связанная со сборкой. К вашему электронному дизайну это не имеет никакого отношения..

Согласно странице проекта GitHub, вы должны предоставить конструктору некоторые параметры:

/*
These are the input and output vectors
Input vectors receive computed results from FFT
*/
double vReal[samples];
double vImag[samples];

ArduinoFFT<double> FFT = ArduinoFFT<double>(vReal, vImag, samples, samplingFrequency);

Приведенный выше код взят из файла примера FFT_01.ino, размещенного на странице проекта на GitHub.

Другие вопросы по теме