Возрастное ограничение 12+

Светомузыка на основе преобразования Фурье.

Описание

Программа ардуино для светомузыки.



#define LOG_OUT 1

#define FFT_N 128

#include

#define MIC_PIN A0

#define RED_LED 2

#define BLUE_LED 3

#define GREEN_LED 4

#define YELLOW_LED 5

#define FREQ_LOW_FFT 20

#define FREQ_MIDDLE_FFT 30

#define FREQ_HIGH_FFT 60

#define FREQ_LOW_LEVEL 38

#define FREQ_MIDDLE_LEVEL 18

#define FREQ_HIGH_LEVEL 15

void setup()

{

pinMode(RED_LED, OUTPUT);

pinMode(BLUE_LED, OUTPUT);

pinMode(GREEN_LED , OUTPUT);

pinMode(YELLOW_LED, OUTPUT);

}

void loop()

{

for (int i = 0 ; i ﹤ FFT_N; i++) {

int sample = analogRead(MIC_PIN) - 511;

if(sample ﹤ 5 && sample ﹥ -5) {

sample = 0;

}

fft_input[i++] = sample;

fft_input[i] = 0;

}

fft_window();

fft_reorder();

fft_run();

fft_mag_log();

if (fft_log_out[FREQ_LOW_FFT] ﹥ FREQ_LOW_LEVEL) {

digitalWrite(RED_LED, HIGH);

} else {

digitalWrite(RED_LED, LOW);

}

if (fft_log_out[FREQ_MIDDLE_FFT] ﹥ FREQ_MIDDLE_LEVEL) { digitalWrite(GREEN_LED, HIGH);

digitalWrite(YELLOW_LED, LOW);

} else {

digitalWrite(GREEN_LED, LOW);

digitalWrite(YELLOW_LED, HIGH);

}

if (fft_log_out[FREQ_HIGH_FFT] ﹥ FREQ_HIGH_LEVEL) {

digitalWrite(BLUE_LED, HIGH);

} else {

digitalWrite(BLUE_LED, LOW);

}

}

Автор

МЕХАТРОНИК-НК
МЕХАТРОНИК-НК