La matrice de LED Panel, ou LMP, pour le micro-ordinateur de l’Arduino, suite. (1 / 3 étapes)

Étape 1: L’esquisse (LMP_Musicator01)

/*

  • Vumètre / Light orgue (présentation complète db)
  • Présentation horizontale - Centre écran linéaire
  • (c) Copyright 2009 QS
  • Tous droits réservés

*

  • Matrice de LED rangée: 1-5 ; Col: 1-6
  • Carte PORTB == D8:D12 - pin [ligne + 7]: + v
  • PORTD == D2:D7 - pin [8-col] ; GND
  • Notre sortie : col::D2:D7 - ve (basse), tandis que row::D8:D13 + ve

*/

Char [msg] = {}
0 x 11, 0x0a, 0x0e, 0x0e, 0x0a, 0 x 11, / / starburst
0 x 00, 0 x 00, 0 x 00, 0 x 00, 0 x 00, 0x0e,
0 X 11, 0 X 19, 0X1E, 0 X 00, 0X1F, 0 X 10, / / Q U
0X1F, 0 X 00, 0X1E, 0 X 05, 0X1E, 0 X 00, / / A
0X1F, 0 X 06, 0X0C, 0X1F, 0 X 00, 0 X 03, / / N T
0X1F, 0 X 03, 0 X 00, 0 X 12, 0 X 15, 0 X 09, / / S
0 X 00, 0X1F, 0 X 10, 0X1F, 0 X 00, 0X1F, / / F U
0 X 05, 0 X 05, 0 X 00, 0X1F, 0 X 05, 0 X 05, / / F
0,0,0,0,0,0} ; Ainsi un dépassement de tampon

modèle binaire, 1 octet par colonne. Haut = lsb

affichage de char [6], hdisp [6] ;

int w10kbuf [2], w1kbuf [20], w100buf [100] ; Assumer tous à zéro (: P)
int w10kidx, w1kidx, w100idx ;
int w10kmax, w5kmax, w1kmax, w500max, w100max ;
long w, w10ksum = 0, w1ksum = 0, w100sum = 0 ;
int www, w10k, w1k, w100, mètre [5] ;

échelle d’int = 3 ; Connectez-vous à échelle (commencer à 23)
recal int = 0 ; Taux d’AGC
int inPin = 1 ; analogRead sur A01

void setup() / / exécuter une seule fois, au démarrage de l’esquisse
{
pour (int ledPin = 2; ledPin < = 12 ; ledPin ++) {}
pinMode (ledPin, sortie) ; définit la broche numérique en sortie
digitalWrite (ledPin, (ledPin < = 7)) ; Désactiver tous les cols
}
lmpWrite(msg,0,15) ; Délai du cycle est de 1/10 secondes
(c’est vraiment pour initialiser les compteurs)
analogReference(INTERNAL) ; N’utilisez pas de valeur par défaut ou externe !
int i = digitalRead(inPin) ; supprimer les anciennes données
}

void loop() / / run maintes et maintes fois
{
W100 = (w100sum / 23) >> à l’échelle ; Un filtre bon marché @ app 100Hz
W1K = abs ((w1ksum / 3)-w100) >> à l’échelle ; 1kHz
w10k = (www + w10ksum) >> à l’échelle ; 10kHz
w = (w100, w1k + w10k) ; Puissance totale (fonction VU)

Si (w < 13) {}
ReCAL ++ ;
Si (f > = 15) {//350mS compte avant de ré-étalonnage du compteur
f = 0 ;
= l’échelle (échelle > 3) ;
}} / / augmentation seulement si res inférieure à échelle 1/2

Si ((w100>33) || (w1k > 30) || (w10k>33)) {/ / log2
Si ((w100 w1k + w10k) > 83) {/ / visière : rendre moins sensible
f = 0 ;
échelle ++ ;
W100 = w100 >> 1 ;
W1K = w1k >> 1 ;
w10k = w10k >> 1 ;
}
compteur [0] = min (w100 >> 1,31) ;
compteur [1] = min(abs(w100+w1k-w10k) >> 2,31) ;
compteur [2] = min (w1k >> 2,31) ;
compteur [3] = min(abs(w1k+w10k-w100) >> 2,31) ;
compteur [4] = min((w10k*5) >> 3,31) ;

pour (col int = 0; col < 6; col ++) {}
int c = 0 ;
pour (mm int = 0; mm < = 4; mm ++) {}
c = c << 1 ;
c += (compteur [mm] > col) ;
}
hdisp [col] = c ;
}
afficher [0] = hdisp [4] ;
afficher [1] = hdisp [2] ;
afficher [2] = hdisp [0] ;
afficher [3] = hdisp [0] ;
afficher [4] = hdisp [2] ;
afficher [5] = hdisp [4] ;

lmpWrite(display,0,1) ;

afficher [0] = hdisp [5] ;
afficher [1] = hdisp [3] ;
afficher [2] = hdisp [1] ;
afficher [3] = hdisp [1] ;
afficher [4] = hdisp [3] ;
afficher [5] = hdisp [5] ;

/ * Affichage vertical routine
*
fillVBar(display,0,w100) ;
fillVBar(display,1,abs(w100+w1k-w10k)) ;
fillVBar(display,2,w1k) ;
fillVBar(display,3,abs(w1k+w10k-w100)) ;
fillVBar(display,4,w10k) ;
fillVBar (affichage, 5, w10k >> 1) ;
fillVBar (affichage, 5, échelle + 1) ;
int i = 0 ;
s int = échelle-1 ;
pour (ii int = 0; ii < 5; ii ++) {}
J’ai j’ai = | (s-1) ;
i = i << 1 ;
s = s >> 1 ;
}
afficher [5] = i ;
*
*/

lmpWrite(display,0,1) ;
}

void fillVBar (char [] disp, o int, int val) {}
int j = B100000 ; modèle à chiffres
Val = constrain(val,2,127) ;
tandis que (val > 2) {}
j| = (j >> 1) ;
Val = val >> 1 ;
}
DISP [o] = j ;
}

void lmpWrite (char disp [], int stchar, int étapes)
/ * Utilisation : modèle binaire charges dans [disp], en commençant à stchar,

  • 1 octet par colonne, de gauche à droite, de haut-bas
  • Carte PORTB == D8:D12 - pin [ligne + 7]: + v
  • PORTD == D2:D7 - pin [8-col] ; GND

*/
{
int col, rangs, cval, allumé = 0, ww = 0 ;
long delayStart=millis() + 90*(constrain(steps,1,100)) ;
Affichage / boucle de temps
www = 0 ;
{}
pour (col = 0; col < 6; col ++) {}
cval = disp [col + stchar] ;
pour (ligne = 1; rangée < = 5; ligne ++) {//only 5 bits de poids faible
Si (cval & 1) {/ / à la lumière de cette LED
Si (allumé == 0)
digitalWrite(7-col,LOW) ; col a besoin d’activation
digitalWrite(row+7,HIGH) ;
allumée ++ ; dans le cas où nous avons besoin de savoir combien de LED est allumées
}
Cycle de voler ici, pour lire VU entrée
WW=Max(WW,analogRead(inPin)) ; Données de volume brut (rectifiées)
www=Max(WW,www) ; PIC retect
delayMicroseconds(80) ; Cela assure que le panneau est
allumé à la même période de temps.
digitalWrite(row+7,LOW) ; Éteindre la LED
cval = cval >> 1 ; Vérifiez le bit suivant
}
digitalWrite(7-col,HIGH) ; désactiver le col
w10ksum += www-w10kbuf [w10kidx] ; Il s’agit de notre « condensateur »
w10kbuf [w10kidx] = www ;
w10kidx ++ ;
w10kidx = ((w10kidx<1)) ; 0 ou 1
Si (w10kidx > 3) w10kidx = 0 ;
w10ksum = ww ; Augmenter la réponse haut de gamme

w1ksum += ww-w1kbuf [w1kidx] ;
w1kbuf [w1kidx] = ww ;
w1kidx ++ ;
Si (w1kidx > 19) w1kidx = 0 ;
w1kidx = ((w1kidx<19) & & (w1kidx ++)) ; 0 - 19

w100sum += ww-w100buf [w100idx] ;
w100buf [w100idx] = ww ;
w100idx ++ ;
Si (w100idx > 99) w100idx = 0 ;
w100idx = ((w100idx<1) & & (w100idx ++)) ; 0 - 199

allumé = 0 ;
}
}
tandis que (delayStart > millis()) ;
}

Articles Liés

Matrice de LED à l’aide de projet shift micro Registre et pic16f628a

Matrice de LED à l’aide de projet shift micro Registre et pic16f628a

il s'agit même de déplacer des mots sur l'affichage à matrice de ledNous utilisons1-pic16f628a comme microcontrôleur : pas cher, programmer la mémoire 2k, a oscillatror interne, deux ports A, B et beaucoup de choses.2-led matrice 8 * 8 rangs common a
Tutoriel débutant : contrôler la matrice de LED avec 2 595 registres à décalage et POTENTIOMETRE

Tutoriel débutant : contrôler la matrice de LED avec 2 595 registres à décalage et POTENTIOMETRE

Je viens juste de commencer avec Arduino et les instructables d'amandaghassaei m'a beaucoup aidé. Dans son second tutorialabout entrées et sorties, elle explique comment utiliser des registres à décalage et comment contrôler une matrice de LED par mu
Comment faire un diffuseur pour votre matrice de LED

Comment faire un diffuseur pour votre matrice de LED

Salut, dans cet Instructable je tiens à vous montrer comment créer votre propre diffuseur pour une matrice de LED. Pour ce faire nous allons utiliser une imprimante 3D et OpenSCAD. Dans ce tutoriel, je vais utiliser un bouclier-LOL par Jimmie ( http:
Matrice de LED pour le rétro-éclairage

Matrice de LED pour le rétro-éclairage

Une des meilleures choses à propos à l'aide d'impressions 3D de FDM style partir d'une imprimante 3D série 1 pour construire des murs dans la translucidité du matériau. Cette qualité du matériau permet des éléments interactifs et performatives à inté
Matrice de LED sur un budget

Matrice de LED sur un budget

Une pièce unique de mobilier sans dépenser beaucoup d'argent?! C'est ce que je voulais atteindre dans ce projet. Aussi, je ne suis pas complètement peu familier avec la programmation et de l'électronique et, comme le font la plupart d'entre nous, je
Thermomètre à matrice de LED

Thermomètre à matrice de LED

Quelques mises à jour ! Le code a été modifié après la virgule est donc dans l'emplacement correct. J'ai aussi ajouté une étape, que j'ai oublié dans la section soddering.Projet en bref :En utilisant une matrice de LED conseil comme un capteur de tem
Matrice de LED Cube

Matrice de LED Cube

Utilisez la matrice WS2812 LED et affichage clair boîtes et Blinkytape contrôleur pour construire une matrice de LED RVB programmable simple Cube en 30 minutes.Étape 1: matériel WS2812 matrice 8 * 8: 5 pcs ou 6p.Contrôleur Blinkytape * 1pcs (ou vous
Réaliser votre propre matrice de LED RVB 15 x 10

Réaliser votre propre matrice de LED RVB 15 x 10

Dans cette série de vidéos, je vais vous présenter comment générer une matrice de LED RVB 15 x 10. Cette matrice a une largeur de 1,5 m et une hauteur de 1m. Il se compose de PL9823 RGB LED, qui sont une alternative bon marché aux communes WS2812 LED
Matrice de LED contrôlé GUI

Matrice de LED contrôlé GUI

j'ai récemment reçu un Arduino Uno, et il est rapidement devenu mon jouet préféré. Après avoir appris les rudiments du fonctionne de la plate-forme, je me suis intéressé à l'entoilage de l'Arduino avec des ordinateurs personnels. Après avoir vu un gr
Matrice de LED interactif Intel Galileo

Matrice de LED interactif Intel Galileo

Créer un interactif 8 x 8 LED Matrix et envoyer photos à afficher de n'importe où dans le monde entier !Dans ce projet, nous utilisons une carte Intel Galileo qui nous a généreusement donné par Intel (ils vous donner beaucoup de ceux aux Etats-Unis d
Matrice de LED Arduino

Matrice de LED Arduino

Dans ce bref didacticiel, vous apprendrez comment faire une matrice de LED alimenté par Arduino. Contrairement à plusieurs autres modèles, celui-ci utilise un ordinateur « compagnon » pour informer l'Arduino qui LEDs doivent être alimentées.J'ai four
Incroyable horloge binaire dans une matrice de LED

Incroyable horloge binaire dans une matrice de LED

Bonjour, tous!!Il s'agit de mon projet d'une horloge binaire à l'aide de la matrice de LED 8 x 8 et notamment des caractéristiques intéressantes.Toutes les informations du jour, mois, année, heure, minutes, numéro de la semaine de l'année sont présen
Matrice de LED utilisant des registres à décalage

Matrice de LED utilisant des registres à décalage

cette instructable est censée être une explication plus complète que d'autres disponibles en ligne. En particulier, cela vous donnera plus d'explication matérielle celle située sous le chapiteau de LED instructable par led555.ObjectifsCette instructa
Serpent sur la matrice de LED (BT)

Serpent sur la matrice de LED (BT)

Salut tout le monde !Aujourd'hui, je vais vous montrer comment faire le serpent sur la matrice de led avec contrôleur de BT (tout est mieux avec BT).Étape 1: matériauxNous avons besoin :-4 modules de matrice avec max7219 (j'utilise le MOD-39)-Module