Étape 5: Projet 1 [pt 2]: logiciel de contrôleur « 2 fils » bargraph LED display
Ouvrez le fichier « _164_bas_ex.pde » à l’intérieur de l’arduino IDE, ses un simple croquis qui vient vous permet de définir ou désactiver la LED dans le bargraph
Les 2 premières lignes définissent les codes pin, que nous allons utiliser pour les données et horloge, j’utilise #define cours entier const, m’est plus facile à retenir, et il n’y a aucun avantage à l’un ou l’autre une fois compilé
#define données 2
#define horloge 3
ensuite est la fonction de réglage Sub, il fonctionne seulement une fois, donc l’arduino se met en marche, définit le registre à décalage et n’a rien d’autre à faire. À l’intérieur de la fonction de réglage Sub, nous avons mis les broches de l’horloge et de données comme les broches de sortie, puis à l’aide de la fonction shiftOut nous envoyer les données vers le registre à décalage
void setup()
{
pinMode (horloge, sortie) ; faire l’horloge à épingler une sortie
pinMode (données, sortie) ; rendre les données épingler une sortie
shiftOut (données, horloge, LSBFIRST, B10101010) ; Envoyer cette valeur binaire pour le registre à décalage
}
Dans la fonction shiftOut vous pouvez voir ses arguments
données sont la broche de données, horloge est la broche horloge
LSBFIRST veut dire quel ordre sa, quand il écrit dehors en notation binaire (Bxxxxxxxx) le 7e élément après le B est le moins Signifigant Bit tout d’abord, c’est alimenté en premier donc il se termine sur la dernière sortie une fois tous les 8 bits sont alimentés en
B10101010 est la valeur binaire envoyée pour le registre à décalage, et il va allumer toutes les lumières étranges, essayez de jouer avec des valeurs différentes pour activer ou désactiver différents modèles
et enfin une boucle vide vide (parce que vous en avez besoin même si votre ne pas l’utiliser)
void loop() {} / / vider la boucle pour l’instant
Exemple 2 : void setup()
les 8 premières lignes sont les mêmes que les 8 premières lignes de l’exemple de la première, en fait elles ne modifieront pas pour aucun des autres projets, donc
#define données 2
#define horloge 3
{
pinMode (horloge, sortie) ; faire l’horloge à épingler une sortie
pinMode (données, sortie) ; rendre les données épingler une sortie
Mais maintenant dans la configuration du Sub, il y a un nombre de 8 pour boucle, prenant un octet vide et décalage de 1 bit dans à la fois à partir de la bit de gauche et la droite mobile. C’est en arrière depuis le premier exemple où nous avons commencé de la mèche à droite et a gauche, mais à l’aide de MSBFIRST le changement de fonction envoie les données de la manière correcte
Aussi, nous ajoutons un retard dans la boucle ainsi il ralentit suffisamment pour être visible. void loop() {} / / vider la boucle pour l’instant
pour (int i = 0; j’ai < 8; ++ j’ai) //for 0 - 7 faire
{
shiftOut (données, horloge, MSBFIRST, 1 << i) ; décalage de bits haute valeur (1) logique par i
Delay(100) ; délai de 100 ms ou vous ne serait pas capable de le voir
}
}
Télécharger le script et vous devriez maintenant voir le graphique à barres s’allument chacun léger à la fois