Étape 2: Notes de programme
Il y a trois tâches principales impliquées dans ce programme :
1) obtenir la tension d’entrée. Les 16 MHz Arduino prend 100uS pour lire l’entrée, ce qui signifie que même si ce n’est rien d’autre, la fréquence maximale qu’il peut détecter de manière fiable est 3kHz, donc nous utilisons ce qu’on appelle signal crénelage, prenant un certain nombre de lectures à partir aussi vite que possible (5 dans notre programme) et en additionnant les séparent en lieux. En prenant les moyennes des différentes gammes d’échantillons, nous pouvons rapprochant le bas et milieu de gamme des fréquences, la différence est supposée pour être la lecture élevée. Il s’agit en aucun cas une science exacte, mais ici, nous juste besoin rugueux des proportions, donc l’exactitude n’est pas critique.
2) nous allons faire une analyse statistique d’un grand ensemble de nombres, donc tout est réduit à des nombres entiers pour économiser l’espace de stockage et d’accélérer les calculs. Il n’y aura aucun conversion de l’entrée 10-bit base du port d’entrée analogique.
3) traduction et Visualisez sur la LMP. Chaque LED est en marche pour tout le temps nécessaire à la pour lecture de la broche analogique, et chaque « cadre » (la matrice 6 x 5) est présentée deux fois, afin que nous puissions afficher 1.5dB étapes. Cela prend environ 100 ms. Le temps ici est essentiel - tout plus lent, le œil va commencer à voir scintillement, trop vite, les « patterns » look dim et formés de manière incorrecte.
AGC est compris, de sorte que le programme peut fonctionner avec une large gamme de volume et de la musique. Un minimum de 150 MV est nécessaire, mais il devrait poser aucun problème avec les niveaux d’écoute régulières. Le "échelle" variable peut être abaissé pour plus de sensibilité, mais va rendre le programme plus sensibles aux bruits électriques - dans laquelle sefyu, contourner l’entrée avec un 0.1uF condensateur à la masse...
Pour maximiser le caractère « dynamique » de la musique, la plus importante 2bits sont perdus et les 4 autres sont « étiré » pour s’adapter à l’horizontales 6 LEDs.