Advertisement
Guest User

Untitled

a guest
Dec 13th, 2016
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.87 KB | None | 0 0
  1. #include <fix_fft.h>
  2.  
  3. #define AUDIOPIN 0
  4. const int leds=5; // Количество светодиодов
  5. const int DLed[leds] = {9, 8, 7, 6, 5}; // Номера выводов светодиодов
  6. const int res = 12; // "Разрешение" одного канала (от 1 до 64/leds*10)
  7. char im[128], data[128];
  8. char data_avgs[leds];
  9. int i, val, barsdiv;
  10.  
  11.  
  12. void setup() {
  13.   barsdiv=64/leds; // Отношение 64-х столбцов спектра к количеству светодиодов
  14.   for (i=0; i < barsdiv; i++) {
  15.          pinMode(DLed[i], OUTPUT);
  16.   }
  17. }
  18.  
  19.  
  20. void loop() {
  21.  
  22.   for (i=0; i < 128; i++){
  23.     val = analogRead(AUDIOPIN);
  24.     data[i] = val;                                      
  25.     im[i] = 0;                                
  26.   };
  27.  
  28.   fix_fft(data,im,7,0);
  29.  
  30.   for (i=0; i<64; i++){                                      
  31.     data[i] = sqrt(data[i] * data[i] + im[i] * im[i]);  // this gets the absolute value of the values in the array, so we're only dealing with positive numbers
  32.                                                         // !!!!! Вот тут я нихрена не понимаю, почему они данные с аудиовхода мешают с результатом преобразования????
  33.   };    
  34.  
  35.  
  36.   // average bars together
  37.  
  38.   for (i=0; i < leds; i++) {
  39.     for (val=0; val<barsdiv; val++) {
  40.       data_avgs[i] = data_avgs[i] + data[i*barsdiv+val];   // Суммируем значения спектра для одного светодиода
  41.     }
  42.     data_avgs[i] = map(data_avgs[i], 0, res*barsdiv, 0, res);  // Преобразуем сумму в величину от 0 до res
  43.  
  44.   // Let be the light!
  45.  
  46.      if (data_avgs[i]>res/2) {
  47.        digitalWrite(DLed[i],1);        // set the LED on
  48.      } else {
  49.        digitalWrite(DLed[i],0);       // set the LED off
  50.      }
  51.    }
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement