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

Stap 4: Van binaire getallen naar digitale logica


Oke, dus nu dat we vertrouwd met de binaire vertegenwoordiging van decimale getallen zijn kunnen we de intensiteitswaarden we willen communiceren aan de WS2811 LED driver IC.  Aangezien de waarden gaan van 0 tot en met 255 voor elke LED, zullen we 8 posities (bits in digitale logica genoemd) ter dekking van het hele bereik — 255 is 11111111 binair.  En we moeten 24 bits voor het verzenden van de waarden voor alle 3 LEDs binnen elke WS2812.  Maar hoe kunnen we vertellen de WS2811 dat we een 0 of een 1 willen.  Nou, blijkt het dat we nodig hebben om te manipuleren van de timing van een blokgolf-signaal om dit te doen.

Disclaimer: Er is een kleine variant van de timing onderstaande afhankelijk van of u van een werkelijke WS2811 IC, of de ingesloten versie binnen de WS2812/WS2812B gebruikmaakt.  De getallen gebruikt onder komen overeen met het laatste geval (WS2812/WS2812B).  Als u van de WS2811 IC gebruikmaakt dan het gegevensblad te voor de enigszins verschillende nummers raadplegen (anders dan dat, alles anders hieronder beschreven is hetzelfde).

Beginsel van bewerking
De WS2811 verwacht twee dingen:
1) een puls (dat wil zeggen, rechthoekig) Golf signaal met een frequentie van ongeveer 800 KHz — andere frequenties eveneens werken, maar we houden tot 800 KHz in deze tutorial — die de intensiteitswaarden stelt in een interne shift register.  Laten we er echter dat de WS2811 gedraagt zich anders dan een standaard shift register in die zin dat de gegevens zijn verschoven in een First Last-Out mode.
2) nadat de gegevens zijn verschoven naar de plaats, de WS2811 verwacht een laag signaal duurt ten minste 50μs om de gegevens op hun respectieve uitgangen klink.

Verschuiving van de gegevens
Wie niet vertrouwd met de term 'pulse wave' zou kunnen hebben gehoord van haar speciaal geval: de blokgolf.  Dit soort niet-sinusvormige signalen bestaan uit een afwisselend amplitude tussen een vastgesteld maximum en vaste minimaal met een constante frequentie.  Wanneer de afwisseling symmetrisch plaatsvindt, dat wil zeggen, hebben wanneer de tijd gedurende welke het signaal een maximumwaarde moet is gelijk aan de tijd gedurende welke het signaal een minimale waarde moet, dan we het speciale geval van een blokgolf.  Op ongeveer 800KHz, elke periode van de pols golf is ongeveer 1.25μs lang (1 / 1.25μs = 800 KHz).  We moeten aanpassen van de tijd gedurende welke het signaal is hoog of laag om het signaal van een 0 of een 1 voor de communicatie met de WS2811.  Er is een fout in het gegevensblad van WorldSemi, dus de werkelijke waarde (krediet aan de mensen over bij Adafruit moeten voor het vangen van dit):

Toezending van een 1:
Tijd voor het signaal hoog blijven (T1H): 0.8μs
Tijd voor het signaal blijven laag (T1L): 0.45μs

Toezending van een 0:
Tijd voor het signaal hoog blijven (T0H): 0.4μs
Tijd voor het signaal blijven laag (T0L): 0.85μs

De gegevens arrêtering
Na het versturen van alle de bits overeenkomen met de intensiteitswaarden van de LED's die we willen af van controle, dan we moeten gewoon houd de waarde van de pols golf op de minimumwaarde voor ten minste 50μs.

Toezending van een 'bevel van Klink":
Tijd voor het signaal blijven laag (TL): > = 50μs

Dit soort signaal heeft de speciale eigenschappen van zichzelf wordt geklokt, en niet-nulzijnde retourneren (NZR).  Dus, wat overblijft is om te zien hoe we onze ATMega328p tot een precies getimede signaal dat wij kunnen doorgeven aan de matrix met WS2812 RGB LED's kunt instellen.  [Spoiler alert!]  We gebruiken de bitbanging-techniek.

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