Cœur dans votre boîte de LED mains (7 / 9 étapes)

Étape 7: Programmer le microcontrôleur

Le programme est assez simple. Une fois le MCU est initialisé, il pénètre dans la boucle principale où la luminosité de chaque LED est augmentée ou diminuée. Une interruption de 100ns sert le calendrier pour les LEDs. Chaque 10ms (100Hz) les LED sont allumées. Chaque LED est activée puis désactivée chaque fois qu’un compteur reçoit au niveau de luminosité appropriées.

Voici un exemple d’un les contrôles de luminosité des LED dans la boucle principale du programme. Tout d’abord, la « direction » est checed. 1 moyen augmente la luminosité ; un 0 signifie magnitude apparente décroissante. Ensuite, le niveau est augmenté/diminué à un taux basé sur son niveau actuel. Pour maintenir la LED à un état variateur plus longtemps (il est bien vif pendant la majeure partie de son fonctionnement), son niveau change lentement au début. Une fois qu’il arrive aux États plus lumineux, le niveau va changer plus rapidement. Si vous voulez les LEDs à se comporter différemment, c’est l’endroit pour faire les changements.

if(stat_flag & DIRECTION0) {/ / si la LED 0 devrait augmenter en luminosité

Si (brightness0 < 25) brightness0 ++ ;   Augmenter lentement au cours des États dim
ElseIf (brightness0 < 40) brightness0 += 5 ; Augmenter un peu plus vite
ElseIf (brightness0 < 100) brightness0 += 10 ; Augmenter rapidement
else CLEAR_BIT (stat_flag, DIRECTION0) ;  Temps de changer de direction
}
else {/ / si la LED 0 devrait diminuer de luminosité
Si brightness0 (brightness0 > 40)-= 10 ;  Diminuer rapidement
ElseIf (brightness0 > 25) brightness0-= 5 ; Baisse un peu plus lent
ElseIf (brightness0 > 1) brightness0--;  Diminuer lentement au cours des États dim
else SET_BIT (stat_flag, DIRECTION0) ;   Temps de changer de direction

}

L’exemple suivant est la partie de l’interruption de 100ns qui active ou désactive les voyants. Un compteur pour chaque LED compte jusqu'à 100, date à laquelle il la LED s’allume et remet le compteur. Si le compteur n’est pas à 100, il est vérifié pour voir s’il a atteint le degré de luminosité actuel. En ce moment, le voyant est éteint et reste éteint jusqu'à ce que le compteur atteigne 100. C’est ce qu’on appelle PWM (modulation de largeur d’impulsions) et il contrôle efficacement la luminosité de la LED.

Si (++ cnt0 == 100) {/ / 100 * 100 ns = 10ms (100Hz)
LED_ON(0) ;             Allumer LED 0
cnt0 = 0 ;                    Réinitialiser le compteur
}
ElseIf (cnt0 == brightness0) LED_OFF(0) ; Si a atteint le degré de luminosité désiré, désactiver les LED 0

J’ai joint le fichier principal (valentine.c) ainsi que le makefile nécessaire pour une utilisation avec WinAVR. Le fichier Hex est également disponible si vous voulez juste à programmer la puce et ne toucher à rien du tout. Le schéma pour une utilisation dans Cadsoft Eagle est également inclus dans ce fichier zip.

Articles Liés

Coudre les LEDs dans votre projet !

Coudre les LEDs dans votre projet !

Il est vraiment facile d'inclure des LEDs dans votre projet de circuit souple. Pour cela j'ai utilisé un fil conducteur de faible résistance, de la belle Lynne Bruning, des pinces, deux aiguilles à coudre et un tas de LEDs vertes.Commencer par enroul
Comment installer les LED Angel Eyes dans votre BMW correctement ?

Comment installer les LED Angel Eyes dans votre BMW correctement ?

Propriétaires de BMW beaucoup éprouvent des Difficulté lors de l'installation des ampoules LED BMW ring yeux ange marqueur.  Tandis que certains lutte avec les problèmes de câblage, d'autres sont confondues avec les désastres de l'éclairage. La plupa
Comment intégrer une LED Ultrabright dans votre NERF longshot

Comment intégrer une LED Ultrabright dans votre NERF longshot

il vous permet d'avoir une option de vision de nuit en option sur votre LongshotCoût du projet : autour de 40 $- 50 $Longshot : 30 $Electronique : 10-20Vous aurez besoin :ExactoknifePerceuse (en option)1 nerf longshot (duh)1 ultrabright tension 10 mm
Comment installer un Custom USB chargeur dans votre moto

Comment installer un Custom USB chargeur dans votre moto

Il s'agit de « Comment installer un USB charge et 5 volts DC circuit d'alimentation de votre moto. »Je voulais plus de puissance dans mon chargeur, et je voulais la souplesse nécessaire pour faire plus avec elle comme le crochet vers le haut un Pi de
Comment installer un endroit frais, à la recherche de panneau de distribution dans votre véhicule

Comment installer un endroit frais, à la recherche de panneau de distribution dans votre véhicule

je voulais partager comment j'ai construit un panneau dans mon camion consistant en :fiches 2 x 12 volts,prise usb 1 x 5 volts et2 x 120 v ca se branche.Découvrez mes autres instructables iciSi vous aimez cette instructable, me faire une faveur et me
Épeler affection pour votre Valentine avec chocolats, LEDs, Attiny13 et IDE Arduino

Épeler affection pour votre Valentine avec chocolats, LEDs, Attiny13 et IDE Arduino

Eh bien, bien sûr, vous auriez pu mettre une note de post-it avec le même message à l'intérieur de cette boîte de chocolats:) mais il ne sera pas presque aussi cool, surtout si votre Valentine a un sweet spot pour nerds. Venez pour penser à lui : bie
Comment faire pour remplacer le voyant d’alimentation dans votre Nintendo Gamecube

Comment faire pour remplacer le voyant d’alimentation dans votre Nintendo Gamecube

dans ce Instructable je vais vous montrer comment vous remplacez le voyant d'alimentation dans votre Nintendo Gamecube. Je vous recommande de mettre un jeu dans la Gamecube avant de prendre à part donc il y aura moins de chance de rayer l'objectif. J
Créer votre propre barre de LED

Créer votre propre barre de LED

Dans ce projet, je vais vous montrer comment je construis mon propre Bar LED autour de ma matrice de LED RVB 15 x 10. Il dispose d'un plan supérieur qui est en verre acrylique et il s'allume au toucher d'un bouton. Avec l'aide d'une bande LED WS2812B
L’Air froid arrive dans votre maison ?

L’Air froid arrive dans votre maison ?

L'air froid arrive dans votre maison ? Avec ce projet, vous ferez un testeur de petit format de poche qui permettra de tester vos fenêtres, les portes, les etc pour voir si l'air froid arrive. Ce projet utilise l'Arduino Uno et un microcontrôleur ATM
Arbre d’ombre lumière : nuit forêt dans votre chambre à coucher

Arbre d’ombre lumière : nuit forêt dans votre chambre à coucher

Transformer votre chambre à coucher dans une forêt de nuit de lune éclairée à la chiquenaude d'un commutateur.Étape 1: Ce que vous aurez besoin # Bien en forme de branchesDemandez à votre ami horticulteur une faveur d'épargner quelques branches sinon
En utilisant un MCU dans votre circuit

En utilisant un MCU dans votre circuit

à l'aide de microcontrôleurs peut ouvrir un tout nouveau monde pour vos circuits.  Tout en gardant leur simple et câblés plutôt que programmée est belle un tout, il arrive un moment où écrire un programme pour un circuit est beaucoup mieux.  À l'aide
Comment faire pour empêcher les gens de venir dans votre chambre avec l’électronique

Comment faire pour empêcher les gens de venir dans votre chambre avec l’électronique

ne sont pas vous ennuyé quand les gens viennent dans votre chambre sans permission. Dans ce instructable vous apprendrez comment faire pour empêcher les gens d'entrer dans votre chambre. Les étapes dira que vous pouvez comment le faire de différentes
Vol dans votre propre Globe

Vol dans votre propre Globe

Hey tout le monde,Voici mon idée s'animent - sorte de. Après beaucoup de rupture des ampoules, j'ai finalement réussi à terminer le projet.J'espère que vous appréciez.Étape 1: Choses à faire1. 3v le motoréducteur. Vous pouvez obtenir ces here.this on
Réaliser votre propre matrice de LED 10 x 10

Réaliser votre propre matrice de LED 10 x 10

Dans ce projet, je vais vous montrer comment combiner couramment disponibles WS2812B RGB LEDs avec un Arduino Nano afin de créer une matrice de LED colorée 10 x 10. Let's get started!Étape 1: Regardez la vidéo !La vidéo vous donne toutes les informat