Здравствуйте, хочу сделать режим светомузыки "заполнение ленты в зависимости от громкости звука" от центра ленты к краям, использую библиотеки microLED и Volanalyzer. С 25 по 50 пиксель заполнение работает идеально а в обратную сторону с 24 по 0 не хочет. Помогите пожалуйста.
C++:
//https://kit.alexgyver.ru/tutorials/microphone/
//https://alexgyver.ru/microled/
//AR-Gain 5+
#define STRIP_PIN 4 // пин ленты
#define NUMLEDS 50 // кол-во светодиодов
#define COLOR_DEBTH 3
#include <microLED.h> // подключаем библу
#include "VolAnalyzer.h"
VolAnalyzer analyzer(A0);
microLED< NUMLEDS, STRIP_PIN, -1, LED_WS2812, ORDER_RGB> strip;
int i = 0;
void setup() {
strip.setBrightness(255);
Serial.begin(9600);
//analogReference(DEFAULT);
//analyzer.setVolK(1); // снизим фильтрацию громкости (макс. 31)
analyzer.setVolMax(50); // выход громкости 0-255
//analyzer.setPulseMax(200); // сигнал пульса
//analyzer.setPulseMin(200);
}
void loop() {
analyzer.tick();
//for (int r = 0; r < 255; r++){
analyzer.tick();
strip.show();
analyzer.tick();
//Serial.println(analyzer.getVol());
analyzer.tick();
int i = map(analyzer.getVol(), 0, 50, 25, 50);
int t = map(analyzer.getVol(), 0, 50, 24, 0);
Serial.println(i);
analyzer.tick();
strip.fill(25, i, mWheel8(100));
strip.show();
strip.fill(25, t , mWheel8(100));
strip.show();
strip.fill(25, i , mWheel8(100, 0 ));
strip.show();
strip.fill(24, t , mWheel8(100, 0 ));
strip.show();
}
Изменено: