Étape 3: Code
C’est le code que nous avons utilisé pour le visualiseur, il suffit de le télécharger pour vous arduino/*
FFT pour bouclier LoL v0.9
par Andy Doro
http://andydoro.com/
basé sur la bibliothèque de la FFT et code des forums Arduino et
la bibliothèque de Charlieplexing pour le bouclier LoL.
*/
#include < Charliplexing.h >
#include < fix_fft.h >
#define AUDIOPIN 4
im Char [128], données [128] ;
char data_avgs [14] ;
int i = 0, val ;
void setup() {}
LedSign::Init() ; Initilizes le bouclier LoL
}
void loop() {}
pour (i = 0; i < 128; i ++) {}
Val = analogRead(AUDIOPIN) ;
données [i] = val ;
im [i] = 0 ;
};
fix_fft(Data,im,7,0) ;
pour (i = 0; i < 64; i ++) {}
données [i] = sqrt (données [i] * données [i] + im [i] * im[i]) ; Il obtient la valeur absolue des valeurs du tableau, donc nous traitons uniquement avec des nombres positifs
};
ensemble moyens barres
pour (i = 0; i < 14; i ++) {}
data_avgs [i] = (données [J’ai * 4] + données [J’ai * 4 + 1] + données [J’ai * 4 + 2] + données [J’ai * 4 + 3]) ; moyenne de l’ensemble
data_avgs [i] = carte (data_avgs [i], 0, 30, 0, 9) ; valeurs de remappage des couleurs pour LoL
}
Set LoLShield
pour (int x = 0; x < 14; x ++) {}
pour (int y = 0; y < 9; y ++) {}
Si (y < data_avgs[13-x]) {/ / 13-x inverse les barres sorte voltages faibles à élevée sont représentés de gauche à droite.
LedSign::Set(x,y,1) ; la valeur de la LED sur
} else {}
LedSign::Set(x,y,0) ; déclencher la LED
}
}
}
retard (30) ;
}