Bits bonzen stapsgewijze: controle van de Arduino voor WS2811, WS2812 en WS2812B RGB LED's (3 / 5 stap)

Stap 3: Van decimaal naar binair: afbreken van nummers in de 1s en 0s


Een aantal breken in de 1s en 0s werkelijk betekent met behulp van de binaire representatie.  We moeten niet vergeten dat in een binaire vertegenwoordiging (bijvoorbeeld 1101 in binaire vertegenwoordigt het nummer 13 in decimaal), elke positie heeft een 'gewicht' die een toename van rechts naar links door een macht van 2.  Beginnend met de eerste positie aan de rechterkant, de 'gewichten' zijn: 2 ^ 0, 2 ^ 1, 2 ^ 2, 2 ^ 3...  Dit is analoog aan het decimale stelsel waar te beginnen met het eerste cijfer aan de rechterkant, de 'gewichten' verhogen door een macht van 10:10 ^ 0, 10 ^ 1, 10 ^ 2, 10 ^ 3...  Anders dan het decimale stelsel waar kunnen we een cijfer van 0... 9 op elke positie, in het binaire systeem kan ofwel hebben we een 1 of een 0.

Zeggen dat we willen vinden de binaire vertegenwoordiging van het decimale getal 23.  Eerst zien we dat 23 een combinatie van de nummer 3 instellen in de 10 is ^ 0 positie, en het getal 2 instellen in de 10 ^ 1 positie, wat dat betekent wanneer we elk getal volgens haar standpunt wegen (2 * 10 ^ 1 + 3 * 10 ^ 0) krijgen we het nummer 23.  Als we proberen te doen hetzelfde in binaire wij zou komen met het nummer 10111 omdat 1 * 2 ^ 4 + 0 * 2 ^ 3 + 1 * 2 ^ 2 + 1 * 2 ^ 1 + 1 * 2 ^ 0 = 23.  Natuurlijk, kan het vinden van de binaire vertegenwoordiging van een relatief klein aantal zoals 23 worden gedaan zonder veel berekening.  Maar voor grotere aantallen wordt het noodzakelijk om te gebruiken het volgende algoritme:

-Verhoging van 2 ^ 0, vinden de eerste macht van 2 die groter is dan het decimale getal we hebben
-Beginnen met de kracht van 2 onmiddellijk onder de vonden we in de eerste stap, verdelen het decimale aantal door de machten van 2 in aflopende volgorde, helemaal tot aan 2 ^ 0
-Na elke stap van de divisie, zouden we een 1 of een 0 als het quotiënt, en sommige rest waarde.  De rest moet uiteindelijk ga naar 0 (dat kan gebeuren vóór de laatste stap van de divisie)
-De 1s en 0s verkregen als de quotiënten geven de binaire vertegenwoordiging van het decimale getal

Nou, als we niet hebben doorlopen het proces vóór, het klinkt allemaal als wartaal.  Niets zoals het doorlopen van een voorbeeld aan dingen ophelderen.  Zeggen dat we willen vinden de binaire vertegenwoordiging van het decimale getal 117.  Laten we proberen te volgen van de bovenstaande algoritme (ik gebruik sommige persoonlijke tweaks):

-We beginnen met 2 ^ 0 die kleiner dan 117, is dus we blijven toenemen.  2 ^ 1 is ook kleiner, blijf...  Oke, dus we naar 2 ^ 5 die is nog kleiner dan 117, maar zo snel als we hit 2 ^ 6 Wij merken dat het de "eerste macht van 2 die groter is dan het decimale getal we hebben"
-Zodat we weten dat we moeten beginnen met de kracht van 2 direct onder 2 ^ 6, oftewel 2 ^ 5.  [Persoonlijke tweaks] omdat we weten dat we gonna worden delen door alle machten van 2 onder 2 ^ 5, ik schrijf ze allemaal vooraf dus ik vergeet niet.  Ik herinner me ook dat de rest van de deling eindigt op 0, moet (hoewel het zou kunnen uitmonden in 0 langs de weg.
Scheidingslijn | Rest | Quotiënt
2 ^ 6 (64) |                    |
2 ^ 5 (32) |                    |
2 ^ 4 (16) |                    |
2^3 (8)       |                    |
2^2 (4)       |                    |
2^1 (2)       |                    |
2^0 (1)       |                    |
0
-Met alles ingesteld, we beginnen de divisie stappen:
Scheidingslijn | Rest | Quotiënt
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 gedeeld door 64 geeft een quotiënt van 1 en een rest van 53.  Dus weten we dat in de 7e positie van onze binaire vertegenwoordiging van 117, zal er een 1 (bijvoorbeeld 1XXXXXX).  Als u op de andere posities doorgaan we gewoon met de divisie:
Scheidingslijn | Rest | Quotiënt
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
- En zo, we krijgen dat de binaire vertegenwoordiging van het decimale getal 117 1110101 is.  We moeten niet vergeten, dat zelfs als de rest gaat naar 0 voordat de laatste stap van de divisie, we moeten blijven het proces helemaal tot 2 ^ 0.  Dus, in het geval van het decimale getal 48:
Scheidingslijn | Rest | Quotiënt
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
De binaire vertegenwoordiging is 110000 in tegenstelling tot 110, die we krijgen zouden als we duiken gestopt toen de rest 0 eerst wordt bereikt.  Weten hoe te breken een aantal in haar constituerende 1s en 0s is zeer noodzakelijk om te kunnen verzenden van gegevens naar de WS281X.

Gerelateerde Artikelen

Controle van de Arduino met behulp van android app

Controle van de Arduino met behulp van android app

In deze instructables ga ik uit te leggen hoe de controle van de arduino IO pinnen met behulp van een android app, die we hier schrijven.De mededeling zal via ethernet en gebruiken we het GET-verzoek voor het activeren van de IO.Laten we beginnen!Sta
Controle van een Arduino met PHP

Controle van een Arduino met PHP

hier is hoe te maken van je Arduino doen meer dan het internet zonder een ethernet of wifi schild. Dit is een eenvoudige manier om uw project bestuurbaar overal in de wereld!Stap 1: Platform CompatabilityDeze methode werkt niet onder Windows. Ik kan
Controle van de Arduino van Unity3d

Controle van de Arduino van Unity3d

Hallo jongens. In deze snelle tutorial ik "ll tonen u de eenvoudigste en meest efficiënte manier om controle van de Arduino met behulp van Unity3d. Uitsluitend volgen naar de opvoeden en vergeet niet te graag en schrijf u in voor meer video's.
Stapsgewijze LCD bedrading (4 Bit modus) en voorbeelden van de programmering voor Arduino

Stapsgewijze LCD bedrading (4 Bit modus) en voorbeelden van de programmering voor Arduino

dit instructable zal gids een gebruiker stapsgewijze in bedrading en programmering van een Hitachi HD44780 (of compatibele) chipset LCD-scherm aan een Arduino, met behulp van de LiquidCrystal-bibliotheek. Programmering voorbeelden gegeven voor alle o
Controle van de Arduino met Gamepad

Controle van de Arduino met Gamepad

Laatste tijd ik heb nieuwsgierig geweest over befriending Arduino of elke andere microcontroller met een gamepad om fysieke interactie met de dingen die ik maak, maar er leek te zijn geen snel of goedkope manier om te doen.De meeste oplossingen zijn
Met behulp van de Intel Edison op een koud gassysteem voor de controle van de reactie voor een raket klinkende

Met behulp van de Intel Edison op een koud gassysteem voor de controle van de reactie voor een raket klinkende

Wat is het doel van het maken van een controlesysteem reactie?Conventionele houding controlesystemen voor amateur-raketten gebruikt bijgevoegde vinnen, die stabiliteitscontrole van de passieve bieden. Voor het uitvoeren van actieve stabilisatie en ma
Controle van een arduino project via een aanpasbare android / Iphone app met Blynk en Wemos D1: de 2016 SUPER NOOB vriendelijke manier

Controle van een arduino project via een aanpasbare android / Iphone app met Blynk en Wemos D1: de 2016 SUPER NOOB vriendelijke manier

Het doel van dit instructable is om je te leren hoe wifi aangesloten arduino projecten de eenvoudigste en snelste manier mogelijk te maken. Als u een arduino project die u wilt vanaf beheren kunt uw smartphone en dat kostte slechts 4 eurs in hardware
Controle van de Arduino met visual basic 6.0

Controle van de Arduino met visual basic 6.0

Dit instructable is onderdeel van mijn boek Arduino + visual basic 6.0 (aanbrengen in uw eigen software controle arduino Robot.Visual basic 6.0 is een zeer oude versie sommigen kunnen vragen waarom we gebruik wilt maken van visual basic 6.0. Visual b
Controle van uw Arduino met een afstandsbediening

Controle van uw Arduino met een afstandsbediening

benieuwd over hoe om te controleren alles in uw huis met een eenvoudige afstandsbediening? Het is vrij eenvoudig en goedkoop.Stap 1: Verzamel spullen Hier is wat u nodig heeft:-Arduino (ik gebruik UNO)-Solderless breadboard-Een infrarood ontvanger-So
Controle van uw arduino vanaf uw PC met de Qt Gui

Controle van uw arduino vanaf uw PC met de Qt Gui

voor mijn eerste instructable ik zal u tonen het gebruik van Qt voor grafische interfaces voor je arduino (of elk apparaat rs232) makenDus als u maken van uw eigen grafische interfaces wilt, u bepalen spullen gewoon door te klikken op knoppen van uw
Controle van een Arduino met uw telefoon.

Controle van een Arduino met uw telefoon.

In dit Instructable zal ik laten zien hoe om te controleren uw spullen met uw telefoon en de arduino board. Ik heb alles gecontroleerd uit rookmachines ook Kerstmis licht is met dit programma.Video:Sorry dat de video is nogal vreemd, want mijn camera
Controle van de arduino met behulp van Blynk via usb

Controle van de arduino met behulp van Blynk via usb

Dit is mijn tweede instructable. In dit instructable zal ik laten zien hoe u kunt besturen LED met behulp van Blynk.Blynk is een applicatie die ons dashboard, evenals connectiviteit biedt. die u kunt downloaden van google play store (voor Android). &
Hoe de controle van de arduino met een mail

Hoe de controle van de arduino met een mail

Er zijn een heleboel oplossingen waarmee een Arduino board: web oplossingen, desktop applicatie oplossingen, hardwareoplossingen. Maar hoe zit het met e-mail? Ja, vind je iets op het web, maar ze nodig hebben voor ethernet schilden en vaak is Arduino
Controle van een Arduino met een horloge (TI eZ430 Chronos)

Controle van een Arduino met een horloge (TI eZ430 Chronos)

het horlogeDe Texas Instruments eZ430 Chronos is een coole gadget. Het heeft bidirectionele radiocommunicatie, en een gehele bos van sensoren: temperatuur, druk, versnelling.Het is in feite een development kit voor de MSP-430 (een low-power microcont