Bit cogner étape par étape : Arduino contrôle de WS2811, WS2812 et LED RGB WS2812B (3 / 5 étapes)

Étape 3: De décimal en binaire : décomposer les nombres en 1 s et 0 s

Décomposer un nombre en 1 s et 0 s signifie vraiment à l’aide de sa représentation binaire.  Il faut se rappeler que dans une représentation binaire (par exemple, 1101 en binaire représente le nombre 13 en décimal), chaque position a un « poids » qui passe de droite à gauche par une puissance de 2.  À partir de la première position sur la droite, les « poids » sont: 2 ^ 0, 2 ^ 1, 2 ^ 2, 2 ^ 3...  C’est analogue au système décimal où commençant par le premier chiffre à droite, les « poids » augmentent par une puissance de 10:10 ^ 0, 10 ^ 1, 10 ^ 2, 10 ^ 3...  Différent du système décimal où nous pouvons avoir n’importe quel nombre compris entre 0... 9 dans chaque position, dans le système binaire nous pouvons soit avoir un 1 ou un 0.

Dire que nous voulons trouver la représentation binaire du nombre décimal 23.  Tout d’abord, nous remarquons que 23 est une combinaison du nombre 3 dans les 10 ^ position 0 et le numéro 2 dans la 10 ^ 1 position, ce qui signifie que lorsque nous pesons chaque numéro selon sa position (2 * 10 ^ 1 + 3 * 10 ^ 0) nous obtenons le nombre 23.  Si nous avons essayé de faire la même chose en binaire nous serait venu avec le numéro 10111 parce que 1 * 2 ^ 4 + 0 * 2 ^ 3 + 1 * 2 ^ 2 + 1 * 2 ^ 1 + 1 * 2 ^ 0 = 23.  Bien sûr, trouver la représentation binaire d’un nombre relativement restreint comme 23 peut être fait sans beaucoup de calcul.  Mais pour un plus grand nombre, il devient nécessaire d’utiliser l’algorithme suivant :

-Augmentation de 2 ^ 0, trouver la première puissance de 2 qui est supérieure au nombre décimal nous avons
-En commençant par la puissance de 2 immédiatement inférieure à celle que nous avons trouvé dans la première étape, divisez le nombre décimal par les puissances de 2 par ordre décroissant, tout le chemin jusqu'à 2 ^ 0
-Après chaque étape de la division, nous devrions obtenir un 1 ou un 0 comme le quotient et une valeur de reste.  Le reste devrait finalement aller à 0 (cela peut se produire avant la dernière étape de division)
-1 s et 0 s obtenue comme les quotients donnent la représentation binaire du nombre décimal

Eh bien, si nous n’avons pas passé par le processus avant, tout cela ressemble à charabia.  Rien de tel en passant par un exemple pour éclaircir les choses.  Dire que nous voulons trouver la représentation binaire du nombre décimal 117.  Nous allons essayer de suivre l’algorithme ci-dessus (je vais utiliser quelques réglages personnels) :

-Nous commençons par 2 ^ 0 qui est plus petit que 117, donc nous continuons à augmenter.  2 ^ 1 est plus petit, continuez...  Bon alors nous arrivons à 2 ^ 5, qui est encore plus petit que 117, mais dès que nous avons atteint 2 ^ 6, nous remarquons que c’est la « première puissance de 2 qui est plus grande que le nombre décimal nous avons »
-Donc, nous savons que nous devons commencer avec la puissance de 2 immédiatement au-dessous de 2 ^ 6, qui est 2 ^ 5.  [Réglages personnels] puisque nous savons que nous allons être divisant par toutes les puissances de 2 inférieur à 2 ^ 5, j’ai les écrire tous au préalable donc je n’oublie pas.  Je me rappelle aussi que le reste de la division devrait se terminer à 0 (bien qu’il pourrait se transformer en 0 le long du chemin.
Diviseur | Reste | Quotient
2 ^ 6 (64) |                    |
2 ^ 5 (32) |                    |
2 ^ 4 (16) |                    |
2^3 (8)       |                    |
2^2 (4)       |                    |
2^1 (2)       |                    |
2^0 (1)       |                    |
0
-Avec tout ce que la valeur, nous commençons les étapes de la division :
Diviseur | Reste | Quotient
2 ^ 6 (64) | 117             | 1
2 ^ 5 (32) |  53              |
2 ^ 4 (16) |                    |
2^3 (8)       |                    |
2^2 (4)       |                    |
2^1 (2)       |                    |
2^0 (1)       |                    |
0
117, divisé par 64 donne un quotient de 1 et un reste de 53.  Ainsi, nous savons qu’en 7e position de notre représentation binaire de 117, il y aura un 1 (p. ex., 1XXXXXX).  Pour obtenir les autres positions, nous continuons tout simplement le processus de division :
Diviseur | Reste | Quotient
2 ^ 6 (64) | 117             | 1
2 ^ 5 (32) | 53               | 1
2 ^ 4 (16) | 21               | 1
2^3 (8)       | 5                 | 0
2^2 (4)       | 5                 | 1
2^1 (2)       | 1                 | 0
2^0 (1)       | 1                 | 1
0
- Et ainsi, nous obtenons que la représentation binaire du nombre décimal 117 est 1110101.  Il faut se rappeler, que, même si le reste passe à 0 avant la dernière étape de la division, nous devons continuer le processus jusqu'à 2 ^ 0.  Ainsi, dans le cas du nombre décimal 48 :
Diviseur | Reste | Quotient
2 ^ 5 (32) | 48               | 1
2 ^ 4 (16) | 16               | 1
2^3 (8)       | 0                 | 0
2^2 (4)       | 0                 | 0
2^1 (2)       | 0                 | 0
2^0 (1)       | 0                 | 0
0
La représentation binaire est 110000 au lieu de 110, qui nous obtiendrions si nous cessions de plongée lorsque le reste d’abord atteint 0.  Savoir comment faire tomber un certain nombre dans son constituant 1 s et 0 s est très nécessaire pour être en mesure de transmettre les données à le WS281X.

Articles Liés

Arduino contrôlée Président de LED et de système de jeu

Arduino contrôlée Président de LED et de système de jeu

L'objectif de ce projet a été d'apprendre à utiliser les outils et mettre en œuvre de logiciels avec qui. Ceci a été divisé en trois parties principales : le Strip LED contrôlé par un Arduino, le système Rasberry PI connecté à un moniteur et le bâtim
Commander une LED RGB avec le HC-06 Bluetooth Module utilisant Android OS(Arduino)

Commander une LED RGB avec le HC-06 Bluetooth Module utilisant Android OS(Arduino)

Ce tutoriel vous expliquera le processus de connexion d'un Bluetooth Module de HC-06 à un Arduino et contrôler la couleur d'une LED RGB à l'aide de l'application ArduDroid sur le système d'exploitation Android. Cette configuration très probablement c
Autocollant de fenêtre numérique (Arduino contrôlée)

Autocollant de fenêtre numérique (Arduino contrôlée)

un autocollant de taille matrice de LED qui affiche des images en séquence à partir d'une carte SD, pour produire une animation signe ou « vitrophanie ». Arduino contrôlée ! Inclut également le code de Windows, Mac et Linux pour la conversion des fic
Arduino contrôlées Animatronic squelette Rock Band - en cours

Arduino contrôlées Animatronic squelette Rock Band - en cours

Pour l'Halloween cette année, j'ai décidé de construire un animatronic squelette Rock. C'est un travail en cours à ce stade, mais je suis assez content de comment il est à venir le long. Presque tout est fait de matériaux que j'avais sur la main (je
Arduino contrôlée animatronique tête en bois (lampe de lecture)

Arduino contrôlée animatronique tête en bois (lampe de lecture)

cette tête est une lampe de lecture qui peut être ajustée pour la direction de l'éclairage et estompée au besoin.Ce Instructable combine Arduino programmation, certains électronique simple, sculpture avec des outils manuels et électriques, contrôle m
Lampe à LED RGB Arduino + 4 bit écran LCD

Lampe à LED RGB Arduino + 4 bit écran LCD

c'est mon premier instructable!!! Yay...Avant de continuer. Je ne pas entrer dans les détails de la façon de couper le bois, ou tout reconstituer. J'ai chorégraphié le processus de génération entière, quelle que soit venu à l'esprit est ce que j'ai r
Arduino - contrôle de points/turnout

Arduino - contrôle de points/turnout

Mise à jour 28 avril 2016Les points / contrôleur de taux de participation est construit et installé dans ma mise en page du chemin de fer.Le système fini contrôle 16 points et 15 accessoires tels que les lumières, sons, platine, etc.Le circuit est in
Arduino contrôlée hélicoptère

Arduino contrôlée hélicoptère

Cette instructable a été créée dans l'accomplissement de l'exigence de projet de la Makecourse à l'Université de Floride du Sud (www.makecourse.com). L'objectif de ce cours était pour nous enseigner la créativité, l'ingéniosité et l'application prati
Laser Galvo - Arduino contrôlée

Laser Galvo - Arduino contrôlée

Arduino contrôlée laser galvo. La servocommande de miroirs diriger le laser UV laissant une traînée phosphorescente sur la feuille de vinyle glow-in-the-dark.Posté sur notes.robives.comÉtape 1 :À partir d'une feuille de vinyle lumineux d'eBay et poin
Arduino contrôlée ruche spécialiste / désodorisant

Arduino contrôlée ruche spécialiste / désodorisant

Dans le chaos relatif de mes arrangements domestiques, j'ai une petite oasis d'un ordre parfait. Une chose que je peux appeler « organisé » et « pleinement fonctionnelle ». Une chose que je peux toucher et savons qu'il est fiable et prêt pour l'actio
Arduino contrôlée de fenêtre pour chat

Arduino contrôlée de fenêtre pour chat

je soumets cette instructable le défi de l'Arduino. N'oubliez pas de voter !Mon voisin a eu un petit problème avec son chat. Il veulent de sortir et de revenir trop souvent à l'intérieur. Habituellement, il ouvre juste la fenêtre de sa cuisine et nou
Arduino contrôlée Rotary Stewart Platform

Arduino contrôlée Rotary Stewart Platform

Cette instructable est sur la génération d'une rotative Plate-forme de Stewart. Il permet de positionner sa plateforme de mouvement à six degrés de liberté. Cette plateforme spécifique est conçue pour pouvoir positionner un reflex numérique ou tout a
Arduino contrôlée CNC / 3D imprimante hybride

Arduino contrôlée CNC / 3D imprimante hybride

Dame Nature fait... Nous construisons des.BuildersBot fusibles impression 3D & fraisage CNC dans rêve d'un générateur "3dprintingindustry.com"Le BuilderBot est une machine de conception ouverte, qui utilise OpenLogiciels et matériels ouvert.
Arduino contrôlée coaster smart

Arduino contrôlée coaster smart

Le Coaster Smart est un coaster intelligent pour vos boissons. Il reconnaît que les différents types de boissons placé dessus, avec un cocktail le Coaster Smart s'illumine dans quelques couleurs atmosphériques et variation lente. Si vous placez une t