fusion-zauberstab/firmware/src/zauberstab.cpp

31 lines
694 B
C++

#include "zauberstab.h"
CRGB leds[NUM_LEDS];
static int16_t mic_offset = 0;
static uint16_t read_mic() {
return analogRead(MIC_PIN);
}
static uint16_t get_mic_offset() {
float average = 0.f;
uint32_t num_samples = 0;
for(num_samples = 0; num_samples < 10000; num_samples++) {
uint16_t sample = read_mic();
average += ((float) sample - average) / (num_samples + 1);
}
return (uint16_t)average;
}
int zauberstab_init() {
FastLED.addLeds<WS2812, LED_PIN, RGB>(leds, NUM_LEDS);
//FastLED.setMaxPowerInVoltsAndMilliamps(5, 300);
mic_offset = get_mic_offset();
return 0;
}
int32_t get_sample() {
return read_mic() - mic_offset;
}