Minidot 2 - le holoclock (2 / 6 étapes)

Étape 2: L’algorithme de gradation - modulation de largeur d’impulsion charliplexed

Tel que mentionné plus tôt, je voulais avoir les patrons différents points pour le temps de fade en douceur plutôt que secousses d’un modèle à l’autre.

Voir la vidéo pour une démonstration. Dans le middleis la nouvelle horloge de Minidot, sur la droite est le plus vieux Minidot. Remarquez combien plus agréable est une nouvelle.

(FYI l’autre affiche en arrière-plan sont mon écran de statut du supercalculateur Minicray et ma particle Nebulon capturé qui alimente la Minicray dans un champ de confinement magnétique d’antimatière. Voir ici :
http://www.youtube.com/watch?v=bRupDulR4ME
pour une démonstration de la chambre de confinement nebulon)

Si vous regardez dans le code, ouvrez le fichier display.c. Remarque Il y a quatre tableaux pour mapper les valeurs de tris/ports afin d’allumer n’importe quel tableau particulier et deux tableaux (un de plus que le code de Micropoint) pour définir les LEDs doivent être allumées pour n’importe quel modèle particulier de LED.
par exemple :

Pour allumer les LED 1 par exemple, vous devez définir le TRIS registres TRISA:B = 0xef:0xfd and PORTA:B registres PORT = 0x10:0x00 et ainsi de suite. Si vous écrivez les valeurs tris en binaire, vous remarquerez qu’à un moment donné, il y a seulement deux sorties activées. Les autres sont toutes définies sur trois États (donc enregistrer des TRIS). C’est central à charlieplexing. Vous remarquerez également qu’une sortie est toujours une logique « 1 » et l’autre est toujours une logique « 0 »... la direction qui se met en marche selon la LED est entre ces que deux lignes de sortie.
La dernière valeur dans les tableaux de port/tris est une valeur null à aucun voyant ne s’allume du tout.

Dans les micropoints, la fonction update_display passe en permanence par un autre tableau (nLeds[]) pour voir si cet LED particulière était à être éclairée. Si c’était le cas, alors les valeurs correspondantes de tris/port étaient ensemble et le voyant allumé pendant une période de temps. Dans le cas contraire, la valeur nulle a été envoyée aux PICs TRIS/PORT enregistre et aucun voyant n’était allumé pendant une période de temps. Quand fait assez vite cela a donné un modèle. Le reste du programme serait périodiquement lire les valeurs de CCF et composent un joli motif aléatoire dans ce tableau... et donc l’affichage change.

Pour rendre une fonction de gradation, cela a été légèrement étendu afin qu’après que les 30 LEDs ont été que soit éclairé (ou pas) puis les périodes supplémentaires seraient dépensés sur l’envoi de valeurs null si l’affichage devait être estompés... pour son intensité maximum puis sans périodes supplémentaires seraient dépensés. Lorsque répété s’il y avait beaucoup de périodes de null pour les DEL allumées, l’écran serait dim. En effet c’est la modulation de largeur d’impulsion multiplexé... ou parce que le matériel est configuré dans un arragement de charlieplex, puis charlieplexed modulation de largeur d’impulsion.

Le second schéma ci-dessous illustre la configuration de base pour cela. Ce que j’appelle une trame de balayage. Les 30 premières périodes à l’armature servent à passer par les LED... et un nombre variable de périodes supplémentaires de définit l’affichage sera comment dim. Ce cycle se répète. Plusieurs périodes de null signifie moins de temps pour une LED pour être sur par image (parce que le nombre de périodes augmenté). Notez que l’axe vertical ne signifie pas que le niveau de tension. L’état réel des broches va les LEDs varie en fonction de sa position dans le tableau de charlieplex... sur le schéma, cela signifie simplement qu’on ou off.

Cela signifiait aussi la longueur totale du cadre dans le temps a également augmenté, ce qui diminue le taux de rafraîchissement. Comme les LEDs obtenu gradateurs, ils commençaient à scintiller en d’autres termes. Si cette méthode est utile uniquement dans une certaine mesure. Pour l’heure, c’était OK.

Une fonction est appelée par intermittence qui lit le convertisseur A/N sur la PIC et définit ce niveau de luminosité. Si vous lisez le code, il vérifie également si la LED le plus proche de la LDR est activé et ne fait pas n’importe quel réglage niveau, dans l’affirmative, cela s’arrête l’affichage inopinément brighting lorsque le modèle a changé.

Ensuite la Croix fondu en fonction.

Articles Liés

Micropoint - montre de poignet montre LED modèle

Micropoint - montre de poignet montre LED modèle

production d'un autre RGB Sunset Productions !Ce projet est un circuit imprimé pour faire une version de taille de montre de poignet de mon horloge de minidot :avec un peu plus de fonctions plus applicables à un appareil portatif. Beaucoup d'aide et
Charlieplexing LED - la théorie

Charlieplexing LED - la théorie

cette instructable est moins une construire votre propre projet et plus d'une description de la théorie de charlieplexing. Il est adapté pour les personnes ayant les bases de l'électronique, mais ne remplissez pas les débutants. Je l'ai écrit en répo