Stap 2: De Shift Register
De enkelvoudige Shift Register
In isolatie, een enkele shift register krijgt u acht uitgangen voor de prijs van drie I / O's op uw Arduino. Het is een geïntegreerde schakeling die vereist kracht en grond, en duurt 3 ingangen van de Arduino. Deze input pinnen (11,12,14) worden de klok pin klink pin en de data pin respectievelijk genoemd. Van het shift register van zestien pins zijn acht uitgangen die kunnen worden gebruikt om verschillende apparaten digitaal. De Staten van deze uitgangen worden bepaald door de shift registergegevens verzenden. Gezien één byte van de gegevens het shift register zal blijken uitgangen zijn acht hoog of laag, 1 voor hoog, 0 voor laag. De Arduino gebruikt de klok en klink pinnen te vertellen de verschuiving registreren wanneer te ontvangen gegevens en wanneer om het te verwerken, terwijl de pin van de gegevens is waar de gegevens eigenlijk gebeurt. De Arduino heeft een ingebouwde opdracht te geven gegevens aan het register van de verschuiving. Een tutorial kan hier worden gevonden: http://www.arduino.cc/en/Tutorial/ShiftOut. Kennis van de opdracht van de shiftOut beschreven in de tutorial is belangrijk, maar gemakkelijk samengevatte. De syntaxis is:
digitalWrite (latchpin; LOW); signalen shift register dat er ongeveer om gegevens te ontvangen
shiftOut (dataPin, clockPin, MSBFIRST, gegevens); stuurt byte met de naam 'data', beginnend met het meest significante beetje.
digitalWrite (latchpin; HOGE); signalen shift register te verwerken van de gegevens, gewenste schakeluitgangen.
Alle deze opdracht doet het vertellen van de Arduino te sturen welke byte hebben wij gevraagd het shift register ' gegevens'. Het shift register zal nemen een byte en de waarde van de eerste bit gebruiken om te regelen haar eerste productie, enzovoort. De opdracht MSBFIRST vertelt de Ardunio die beetje eerste afgeven. De meest linkse bit is de belangrijkste. Ja, als voorbeeld, als data = 11111111, het shift register schrijft al haar uitgangen op hoog. Als gegevens = 00000000, het shift register zal al haar uitgangen schrijven naar laag.
Meerdere Shift Registers: De Daisy Chain
De echte macht in het shift register komt van hun vermogen om aan elkaar worden gekoppeld een daisy chain. Als twee shift registers hebben hun klok pinnen en klink pins aangesloten, en we de gegevens uit de pin (9) van één shift register verbinden met de pin (14) van de gegevens van een ander, kan de Arduino communiceren aan beide serieel. Op deze manier de Arduino kan communiceren naar een vrijwel onbeperkt aantal registers en andere apparaten, nog steeds met behulp van slechts drie ik verschuiving / O van Als we onze lone byte, 'data', te door een matrix van bytes zoals vervangen: [data] = {a, b}; waar een 00000000 = en b 11111111 =, vervolgens de opdracht shiftOut (dataPin, clockPin, MSBFIRST, gegevens); zal geven byte een de tweede shift register, en de byte b tot het oorspronkelijke shift register. Op deze manier werkt een willekeurig lange daisy chain net als een transportband. De eerste byte in de data-matrix is de eerste uit worden verlegd en gaat rechtstreeks naar de eerste shift register, die uit het volgende shift register en zo verder tot het einde van de keten handen. Dit gebeurt met elke byte, zodat de laatste verschuiving eindigt de eerste byte ontvangt in de matrix, terwijl de eerste shift register de laatste ontvangt registreren. Dit maakt de keten van shift registers een geweldige manier om te controleren van een reeks van 54 RGB LED's door codering met een Arduino.