Bitars banka steg för steg: Arduino kontroll av WS2811, WS2812 och WS2812B RGB lysdioder (3 / 5 steg)

Steg 3: Från decimaltal till binärt: bryta ner nummer i 1: or och 0: or



Verkligen bryta flera ner till 1: or och 0: or betyder att man använder sin binär representation. Vi måste komma ihåg att i en binär representation (t.ex. 1101 i binär representerar nummer 13 i decimal), varje position har en "vikt" som ökar från höger till vänster med 2. Från och med den första positionen till höger, "vikterna" är: 2 ^ 0, 2 ^ 1, 2 ^ 2, 2 ^ 3... Detta är analogt med det decimal-systemet där från och med den första siffran till höger, "vikter" öka med 10:10 ^ 0, 10 ^ 1, 10 ^ 2, 10 ^ 3... Annorlunda än det decimal-systemet där vi kan ha valfritt antal från 0... 9 på varje position, i det binära systemet vi kan antingen ha en 1 eller 0.

Att vi vill hitta den binär representationen av decimaltal 23. Vi märker först att 23 är en kombination av nummer 3 i 10 ^ 0 position och nummer 2 i 10 ^ 1 position, vilket betyder att när man väger varje nummer enligt dess position (2 * 10 ^ 1 + 3 * 10 ^ 0) vi få nummer 23. Om vi försökte göra samma sak i binär vi skulle komma med nummer 10111 eftersom 1 * 2 ^ 4 + 0 * 2 ^ 3 + 1 * 2 ^ 2 + 1 * 2 ^ 1 + 1 * 2 ^ 0 = 23. Att hitta den binär representationen av förhållandevis få annat 23 kan naturligtvis göras utan mycket beräkning. Men för större blir det nödvändigt att använda följande algoritm:

-Öka från 2 ^ 0, hitta första makt 2 som är större än ett decimaltal som vi har
-Börjar med makt 2 omedelbart nedanför den vi hittade i det första steget, dividera decimaltal med befogenheter för 2 i fallande ordning, ända ner till 2 ^ 0
-Efter varje division steg får vi antingen en 1 eller 0 som kvoten och några resten värde. Resten ska så småningom gå till 0 (detta kan inträffa innan det sista divisionen steget)
-1: or och 0: or som kvoter ge den binär representationen av decimaltal

Tja, om vi inte har gått igenom processen innan, låter allt som rent nonsens. Ingenting som går igenom ett exempel för att klara upp saker. Att vi vill hitta den binär representationen av decimaltal 117. Låt oss försöka följa algoritmen ovan (jag kommer att använda några personliga tweaks):

-Vi börjar med 2 ^ 0 som är mindre än 117, så vi fortsätter att öka. 2 ^ 1 är också mindre, hålla igång... Okej så vi får till 2 ^ 5 är fortfarande mindre än 117, men så snart som vi träffar 2 ^ 6 märker vi att det är "första makt 2 som är större än ett decimaltal som vi har"
-Så vi vet att vi måste börja med makt 2 omedelbart under 2 ^ 6, som är 2 ^ 5. [Personlig tweaks] eftersom vi vet att vi kommer att vara divideras med all makt 2 nedan 2 ^ 5, jag skriver dem alla ner förväg så jag inte glömmer. Jag också påminna mig själv att resten av divisionen skall upphöra i 0 (även om det kunde förvandlas till 0 längs vägen.
Divider | Resten | Kvoten
2 ^ 6 (64) ||
2 ^ 5 (32) ||
2 ^ 4 (16) ||
2 ^ 3 (8) ||
2 ^ 2 (4) ||
2 ^ 1 (2) ||
2 ^ 0 (1) ||
0
-Med allt ställa in, vi börjar uppdelning kliver:
Divider | Resten | Kvoten
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 dividerat med 64 ger en kvot av 1 och en rest av 53. Vi vet således att i den 7: e plats av vår binär representation av 117, det blir en 1 (dvs. 1XXXXXX). För att få de andra positionerna fortsätta vi helt enkelt division:
Divider | Resten | Kvoten
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
- Och så får vi att den binär representationen av decimaltal 117 är 1110101. Vi måste komma ihåg, att även om resten går till 0 innan sista division steg, vi måste fortsätta ända ner till 2 ^ 0. Således, när det gäller den decimala nummer 48:
Divider | Resten | Kvoten
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
Binär representation är 110000 i stället för 110, som vi skulle få om vi stannade dykning när resten först nått 0. Att veta hur att bryta ner ett tal till sina väljare 1: or och 0: or är mycket nödvändigt för att kunna överföra data till WS281X.

Se Steg
Relaterade Ämnen

Super enkel 10-steg arduino sequencer

Denna sequencer är så enkelt jag behöver bara ett steg visar hur! Just nu är det är en 10 steg sequencer men kan lätt bli mer rättvis genom att ändra variabeln "steg" i koden.https://Instagram.com/p/2_uf05wwEc/Allt du behöver för detta projekt ä...

Smart WIFI Video bil (Arduino kontroll)

Alla av oss har en utforskning önskan på okänd ort. När jag och min partner tittar på filmen "The Martian" och se att det finns en robotbil i Mars - - en planet som är femtio - sex miljoner kilometer från vår jord. "Han" arbetar på Mar...

Seriella Servo Controller w/Arduino - kontroll upp till 12 servon samtidigt med Arduino och en USB-anslutning

jag kommer att visa dig hur du använder din Arduino för att styra upp till 12 servon på en gång med minimal jitter. Med ett enkelt seriellt gränssnitt kan du kontrollera positionen för upp till 12 servo kanaler. Upp till 10 ögonblicksbild positioner...

Hemgjord Lizylotte robotarm DIY Robotic ram projekt chassi Draw Arduino kontroll

Hemgjord Lizylotte robotarm DIY Robotic ram projekt chassi Draw Arduino kontrollMaterial:1 st aluminiumlegering 245 mm x 42 mm x 12 mm1 st aluminiumlegering 200 mm x 22 x 12 mm1 st aluminiumlegering 100 mm x 160 x 12 mm för säng1 st steg motor 42 x 4...

Hacking en Keychain digitalkamera för Arduino kontroll

fotografering alternativ för Arduino är få och långt mellan. Webbkameror är praktiska för applikationer som kite fotografering eller offentliga fotografering, om du känner för att köpa en 200 fot USB-kabel. Och aktuella tekniker för fristående Arduin...

Arduino - kontroll lysdioder med en fjärrkontroll

Hi guys,Jag delar med dig ett projekt jag gjort nyligen. I'ts om hur du kan kontrollera vissa lysdioder med en fjärrkontroll och din Arduino. Men du kan tillämpa detta på alla elektroniska enheter såsom motorer, ljus t.ex.Du kan besöka min hemsida fö...

Nybörjare 123D krets Arduino kontroll servon

Detta är en kort instruktion om använder 123D kretsar för att ställa in en Arduino med några potentiometrar och som styr placeringen av servon.Steg 1: inställningarSkapa ett konto på 123d.circuits.io/Liksom de flesta hemsida nu är det enkelt att länk...

Hemgjord Lizylotte Robot Arm Robotic Draw med Arduino kontroll

Hemgjord Lizylotte robotarm Robotic Rita Arduino kontroll DIY Laser gravyr Frame 3D-skrivare PlotterMaterial:1 st 57 mm Stepper motor 1,8 grader ta från gamla kopieringsapparat1 st 42 mm Stepper motor 1,8 grader ta från gamla kopieringsapparat2 st FL...

Arduino Mega 8 x 8 x 8 RGB LED Cube

"Så du vill bygga en 8 x 8 x 8 RGB LED Cube"Jag har spelat runt med elektronik och Arduinos ett tag nu, inklusive bygga en hög amp switch controller för min bil och en sex körfält Pinewood Derby domare för våra scouter grupp.Jag var så fascinera...

Kontroll RGB lysdioder med en handrörelse.

IntroduktionVi var välkomna att hjälpa till vid våra lokala grundskolan STEM natt och behövde en cool demonstration, med lite tid att förbereda.Så, vi tittade igenom tech vi hade liggandes, och kom upp med idén att använda den LeapMotion handen track...

CPU-fläkten hacka - RGB lysdioder - Arduino & TLC5940

I detta Instructable, jag kommer att vägleda dig genom processen att hacka och konvertera en tydlig, 120 mm PWM fläkt används gemensamt hushåll datorer från en enda färg LED till individuellt adresserbara RGB lysdioder. Tillämpningar av detta hack är...

Chalieplexing 4 RGB-lysdioder med 4 trådar på Arduino

Har du alla behov många lysdioder, men bara några sladdar? Då är Charlieplexing en stor sak att prova. Med bara 4 trådar kan du köra 12 ledde med endast 4 motstånd som ett extra skydd och utan någon "informationsövertag" komponent som en 74595 e...

Färg kalibrera RGB lysdioder med en Arduino

De flesta människor tror lysdioder och Arduinos relationerna avslutas med ett ögonblick skiss. Därefter måste du gå mot motorer, smarta hem och andra "allvarliga" saker. Tja, kanske jag är långsam eller kanske är det bara att jag är en grafisk k...

Låg höjd miljöövervakning med en Arduino baserade väder Instrument och Aeropod Remote Sensing plattform

ProjektöversiktStudenter på New Lothrop High School i Michigan har arbetat tillsammans för att bygga en plattform för remote sensing låg höjd som kallas en "Aeropod" och rummen har det med ett "Arduino" baserade väder instrument att sa...

Arduino Mega GPS med LCD och SD loggning

Använd din Audino Mega som en GPS logger med tydlig LCD display och 5 funktionsknappar. En bi-färg LED används för att ange statusinformation.SDcard kan vara kvar i och läsa med en kort läsaren skiss, med utgång till den seriella Monitor.Detta instru...

Arduino solar storma controller + effektreglering och data loggning online med Xbee WiFi

För ett tag sedan jag började arbeta på en sol laddningsregulatorn, det var baserat på en PIC mikrokontroller, en 20 x 4 tecken display och koden är skriven i assembler. Det fungerade bra och arbetade fortfarande när jag bestämde mig att lägga mer ti...

Polisens blixtljus med scanner rgb lysdioder och Arduino

Det är inte en riktig blixt mönster som används av polisen.Bara några öglor programmeras av mig att demonstrera några möjligheter.DISCLAIMER:JAG ÄR INTE ANSVARIGA FÖR ÅTGÄRDER ELLER KONSEKVENSER NÄR DET GÄLLER DENNA TUTORIAL.Använd det endast inomhus...

Skicka SMS från Arduino över Internet med ENC28J60 och Thingspeak

Detta Instructable förklarar hur du skickar ett SMS från en Arduino använder Internet. Det finns många sätt att närma sig detta och jag kommer att förklara ett av de olika metoder som används för att utföra denna uppgift.Några viktiga punkter som beh...

Ambilight för icke påverkbar RGB lysdioder [använder Arduino]

Först av allt.. Om du inte vet vad Ambilgiht är Check Ambilgiht PhillipsKolla in min andra tutorial om du inte har en arduino TUTeftersom det är samma rgb ledde och samma 3 transistorer som jag använt tidigare varför lägger arduino att fungera?Svaret...