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

Аватар автора
МЕХАТРОНИК-НК
Программа ардуино для светомузыки. LOG_OUT 1 FFT_N 128 MIC_PIN A0 RED_LED 2 BLUE_LED 3 GREEN_LED 4 YELLOW_LED 5 FREQ_LOW_FFT 20 FREQ_MIDDLE_FFT 30 FREQ_HIGH_FFT 60 FREQ_LOW_LEVEL 38 FREQ_MIDDLE_LEVEL 18 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); } }

0/0


0/0

0/0

0/0