Неработает библиотека fht при попитке компилировать не видит библиотеку

Тема в разделе "Arduino & Shields", создана пользователем ArtemFBR, 17 апр 2023.

  1. ArtemFBR

    ArtemFBR Нуб

    Код (C++):
    /*
       Крутейшая свето-цветомузыка на Arduino и адресной светодиодной ленте WS2812b
       Управление:
        - Однократное нажатие кнопки: смена режима
        - Удержание кнопки: калибровка нижнего порога шума
       Режимы работы (переключаются кнопкой):
        - VU meter (столбик громкости): от зелёного к красному
        - VU meter (столбик громкости): плавно бегущая радуга
        - Светомузыка по частотам: 5 полос симметрично
        - Светомузыка по частотам: 3 полосы
        - Светомузыка по частотам: 1 полоса
       Особенности:
        - Плавная анимация (можно настроить)
        - Автонастройка по громкости (можно настроить)
        - Фильтр нижнего шума (можно настроить)
        - Автокалибровка шума при запуске (можно настроить)
        - Поддержка стерео и моно звука (можно настроить)

       НАСТРОЙКА НИЖНЕГО ПОРОГА ШУМА (строки 65-71)
        - Ручная: выключаем AUTO_LOW_PASS и EEPROM_LOW_PASS, настраиваем LOW_PASS и SPEKTR_LOW_PASS вручную
        - При запуске: включаем AUTO_LOW_PASS. При подаче питания музыка должна стоять на паузе!
        - По кнопке: при удерживании кнопки 1 секунду настраивается нижний порог шума (музыку на паузу!)
        - Из памяти (ЛУЧШИЙ ВАРИАНТ): выключаем AUTO_LOW_PASS и включаем EEPROM_LOW_PASS
          - Включаем систему
          - Ставим музыку на паузу
          - Удерживаем кнопку 1 секунду
          Значения шумов будут записаны в память и САМИ загружаться при последующем запуске! Всё!

       **************************************************
       Разработано: AlexGyver
       Страница проекта: http://alexgyver.ru/colormusic/
       GitHub: https://github.com/AlexGyver/ColorMusic
    */


    // --------------------------- НАСТРОЙКИ ---------------------------
    // лента
    #define NUM_LEDS 60        // количество светодиодов
    #define BRIGHTNESS 200     // яркость (0 - 255)

    // пины
    #define SOUND_R A2         // аналоговый пин вход аудио, правый канал
    #define SOUND_L A1         // аналоговый пин вход аудио, левый канал
    #define SOUND_R_FREQ A3    // аналоговый пин вход аудио для режима с частотами (через кондер)
    #define BTN_PIN 3          // кнопка переключения режимов (PIN --- КНОПКА --- GND)
    #define LED_PIN 12         // пин DI светодиодной ленты
    #define POT_GND A0         // пин земля для потенциометра

    // настройки радуги
    #define RAINBOW_SPEED 6    // скорость движения радуги (чем меньше число, тем быстрее радуга)
    #define RAINBOW_STEP 6     // шаг изменения цвета радуги

    // отрисовка
    #define MODE 0              // режим при запуске
    #define MAIN_LOOP 5         // период основного цикла отрисовки (по умолчанию 5)
    #define SMOOTH 0.5          // коэффициент плавности анимации VU (по умолчанию 0.5)
    #define SMOOTH_FREQ 0.8     // коэффициент плавности анимации частот (по умолчанию 0.8)
    #define MAX_COEF 1.8        // коэффициент громкости (максимальное равно срднему * этот коэф) (по умолчанию 1.8)
    #define MAX_COEF_FREQ 1.2   // коэффициент порога для "вспышки" цветомузыки (по умолчанию 1.5)

    // сигнал
    #define MONO 1              // 1 - только один канал (ПРАВЫЙ!!!!! SOUND_R!!!!!), 0 - два канала
    #define EXP 1.4             // степень усиления сигнала (для более "резкой" работы) (по умолчанию 1.4)
    #define POTENT 1            // 1 - используем потенциометр, 0 - используется внутренний источник опорного напряжения 1.1 В

    // нижний порог шумов
    int LOW_PASS = 100;         // нижний порог шумов режим VU, ручная настройка
    int SPEKTR_LOW_PASS = 40;   // нижний порог шумов режим спектра, ручная настройка
    #define AUTO_LOW_PASS 0     // разрешить настройку нижнего порога шумов при запуске (по умолч. 0)
    #define EEPROM_LOW_PASS 1   // порог шумов хранится в энергонезависимой памяти (по умолч. 1)
    #define LOW_PASS_ADD 13     // "добавочная" величина к нижнему порогу, для надёжности (режим VU)
    #define LOW_PASS_FREQ_ADD 3 // "добавочная" величина к нижнему порогу, для надёжности (режим частот)

    // режим цветомузыки
    #define SMOOTH_STEP 20          // шаг уменьшения яркости в режиме цветомузыки (чем больше, тем быстрее гаснет)
    #define LOW_COLOR HUE_RED       // цвет низких частот
    #define MID_COLOR HUE_GREEN     // цвет средних
    #define HIGH_COLOR HUE_YELLOW   // цвет высоких

    // режим стробоскопа
    #define STROBE_PERIOD 100           // период вспышек, миллисекунды
    #define STROBE_DUTY 30              // скважность вспышек (1 - 99) - отношение времени вспышки ко времени темноты
    #define STROBE_COLOR HUE_YELLOW     // цвет стробоскопа
    #define STROBE_SAT 0                // насыщенность. Если 0 - цвет будет БЕЛЫЙ при любом цвете (0 - 255)
    #define STROBE_SMOOTH 100           // скорость нарастания/угасания вспышки (0 - 255)

    /*
      Цвета для HSV
      HUE_RED
      HUE_ORANGE
      HUE_YELLOW
      HUE_GREEN
      HUE_AQUA
      HUE_BLUE
      HUE_PURPLE
      HUE_PINK
    */

    // --------------------------- НАСТРОЙКИ ---------------------------

    // --------------------- ДЛЯ РАЗРАБОТЧИКОВ ---------------------
    #define MODE_AMOUNT 6      // количество режимов

    // цвета (устаревшие)
    #define BLUE     0x0000FF
    #define RED      0xFF0000
    #define GREEN    0x00ff00
    #define CYAN     0x00FFFF
    #define MAGENTA  0xFF00FF
    #define YELLOW   0xFFFF00
    #define WHITE    0xFFFFFF
    #define BLACK    0x000000

    #define STRIPE NUM_LEDS / 5

    #define FHT_N 64         // ширина спектра х2
    #define LOG_OUT 1
    #include <FHT.h>         // преобразование Хартли
    #include <EEPROMex.h>

    #include "FastLED.h"
    CRGB leds[NUM_LEDS];

    #include "GyverButton.h"
    GButton butt1(BTN_PIN);

    // градиент-палитра от зелёного к красному
    DEFINE_GRADIENT_PALETTE(soundlevel_gp) {
      0,    0,    255,  0,  // green
      100,  255,  255,  0,  // yellow
      150,  255,  100,  0,  // orange
      200,  255,  50,   0,  // red
      255,  255,  0,    0   // red
    };
    CRGBPalette32 myPal = soundlevel_gp;

    byte Rlenght, Llenght;
    float RsoundLevel, RsoundLevel_f;
    float LsoundLevel, LsoundLevel_f;

    float averageLevel = 50;
    int maxLevel = 100;
    byte MAX_CH = NUM_LEDS / 2;
    int hue;
    unsigned long main_timer, hue_timer, strobe_timer;
    float averK = 0.006, k = SMOOTH, k_freq = SMOOTH_FREQ;
    byte count;
    float index = (float)255 / MAX_CH;   // коэффициент перевода для палитры
    boolean lowFlag;
    byte low_pass;
    int RcurrentLevel, LcurrentLevel;
    int colorMusic[3];
    float colorMusic_f[3], colorMusic_aver[3];
    boolean colorMusicFlash[3], strobeUp_flag, strobeDwn_flag;
    byte this_mode = MODE;
    int thisBright[3], strobe_bright = 0;
    unsigned int light_time = STROBE_PERIOD * STROBE_DUTY / 100;

    #define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
    #define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
    // --------------------- ДЛЯ РАЗРАБОТЧИКОВ ---------------------

    void setup() {
      Serial.begin(9600);
      FastLED.addLeds<WS2811, LED_PIN, GRB>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
      FastLED.setBrightness(BRIGHTNESS);

      pinMode(13, OUTPUT);
      digitalWrite(13, LOW);

      pinMode(POT_GND, OUTPUT);
      digitalWrite(POT_GND, LOW);
      butt1.setTimeout(900);

      // для увеличения точности уменьшаем опорное напряжение,
      // выставив EXTERNAL и подключив Aref к выходу 3.3V на плате через делитель
      // GND ---[10-20 кОм] --- REF --- [10 кОм] --- 3V3
      // в данной схеме GND берётся из А0 для удобства подключения
      if (POTENT) analogReference(EXTERNAL);
      else analogReference(INTERNAL);

      // жуткая магия, меняем частоту оцифровки до 18 кГц
      // команды на ебучем ассемблере, даже не спрашивайте, как это работает
      sbi(ADCSRA, ADPS2);
      cbi(ADCSRA, ADPS1);
      sbi(ADCSRA, ADPS0);
    ...

     
    [​IMG] [​IMG] код указан не полностью
     
  2. parovoZZ

    parovoZZ Гуру

    а вопрос в чём?
     
  3. DetSimen

    DetSimen Гуру

    У него свой форум есть, можешь там спросить, здесь за его "творчество" не отвечают
     
  4. User248

    User248 Гик

    Если не видит библиотеку, значит её нет. Установите.
     
    Airbus нравится это.