De 74HC164 Shift Register en je Arduino (8 / 9 stap)

Stap 8: Project 3 [pt 2]: '2 draad' 4 x 4 led matrix beeldscherm


De verschuiving zowel de anode en de kathoden van de LED's in een YX opmaken, kijk op de volgende besturingselementen registreren

bit 1 = kolom 1 (meest rechtse)
bit 2 = kolom 2
bit 3 = kolom 3
bit 4 kolom 4 =
bit 5 = rij 1 (bovenste)
bit 6 = rij 2
bit 7 = rij 3
8-bits = rij 4

Om een afbeelding uit een vierkant 4 x 4 op ruitjespapier tekenen en vul in welke u weergeven wilt, vervolgens een YX-tabel te maken. Hieronder ziet u een toewijzing voor een simile, goed zo goed als men kan doen op de 4 x 4 "pixels"

Voor elk ingevuld sectie die ik welke kolom (Y opschrijven) is het in, dan welke rij in (X is)

Nu open het _4x4.pde bestand in de arduino IDE ziet u onze oude 2 vrienden

#define gegevens 2
#define klok 3

vervolgens een matrix van gehele getallen

int img [] = {1,1,4,1,1,3,4,3,2,4,3,4};

Als je zijn enkel kijkt een lijst van mijn schriftelijke neer YX coördineert, zou het een grote pijn in de kont waarden om te zetten die met de hand, en we hebben een computer... laat het doen!

Void setup waar we onze klok maken en gegevens stiften uitgangen verplaatsen op daar is

VOID Setup
{
pinMode (klok, uitvoer); Maak de pin van een output klok
pinMode (gegevens, OUTPUT); de data pin een output3 maken
}

En een verwarrend uitziende nietig lus, om te beginnen met dingen uit we moeten sommige lokale variabelen declareren

void loop
{
int Y;
int X;
byte

Dan een for-lus, deze lus moet worden, zolang het bedrag van de inzendingen in de img-matrix, voor dit beeld alleen gebruikte ik 6 pixels, dus dat maakt 12 YX coördinaten. Ik maak het overslaan, elk ander nummer met behulp van ik += 2, omdat we 2 coördinaten per lus lezen

voor (int i = 0; ik < 12; ik += 2) / / het aantal punten in de img-matrix, deze zaak 12
{

Nu we lezen de Y entery bij [i] in de matrix, en aftrekken van de waarde ervan, want bytes niet bij één beginnen, ze bij nul beginnen, maar we gerekend vanaf 1

krijgen de eerste paar YX koorden
Y = (img [i] - 1); een aftrekken omdat de bits-telling bij 0 begint

Volgende we lezen de X entery op [i + 1] in de matrix, en aftrekken van de waarde ervan, vanwege dezelfde reden

X = (img [i + 1] - 1);

Nadat we de YX-waarden van de pixel hebben, we doen sommige bitsgewijze of wiskunde en verschuiven naar links.

Allereerst moeten we lezen de X-waarde, en wat de waarde ervan is het dat veel plaatsen shift + 4 links, zo als X 4 en 4 is het toevoegen (MSB), 8 bit kijkend naar de grafiek weer...

bit 1 = kolom 1 (meest rechtse)
bit 2 = kolom 2
bit 3 = kolom 3
bit 4 kolom 4 =
bit 5 = rij 1 (bovenste)
bit 6 = rij 2
bit 7 = rij 3
8-bits = rij 4

8-bit is de laatste rij

Vervolgens de Y-waarde is ook verschoven naar links, dit keer gewoon door haar zelf, niets toegevoegd op.

Tot slot de twee zijn or'ed samen in 1 byte in plaats van 2 halve bytes (nibbles), met behulp van bitwise of (het symbool |   ) neemt twee bytes en basicly hen worden opgeteld, laat veronderstellen

X = 10000000
Y = 00000001
--------------------
OF = 10000001

rij 4, kolom 1

uit = 1 << (X + 4) | 1 << Y;

En ten slotte shiftOut voor het weergeven van de huidige afbeelding, en dat blijven doen totdat we geen meer gegevens in de array hebben... eventjes vertragen en eeuwig, want we gegevens naar links verschuiven werden, en we moeten de MSB uit te zijn op de laatste output-pin van de shift register verzenden het eerste.

shiftOut (data, klok, MSBFIRST, out); verschuiving van de byte uit naar onze register
delay(1); vertragen het abit, dus het is een kans om te vertrekken van een vlek van licht in je ogen

Voel je vrij om uw eigen beelden en effecten, zijn er 3 voorbeeldbestanden, het smileygezicht en een dambord (die ziet er meer als strepen), en tenslotte een willekeurige sparkle maker

Gerelateerde Artikelen

ATTiny45/85 LCD Weergave besturingselement met een shift register, geprogrammeerd in Arduino

ATTiny45/85 LCD Weergave besturingselement met een shift register, geprogrammeerd in Arduino

uitgevoerd op een ATTiny45 van 85 chip Arduino is een grote kosten-spaarder voor mini-projecten. Echter geen u een HD44780 compatibele LCD display verbinding maken als u nodig hebt 6 uitgangen, maar u slechts 5 hebt. Dit probleem kan worden opgelost
LinkIt één - Shift Register

LinkIt één - Shift Register

De LinkIt One is een zeer goede Raad om mee te werken en een geweldig alternatief voor de Arduino, maar als de projecten ingewikkeld krijgen kunt u geconfronteerd dat 14 pinnen van de LinkIt One kunnen niet enkel genoeg. En soms is het wellicht niet
Met behulp van een Dot Matrix LED met een Arduino en Shift Register

Met behulp van een Dot Matrix LED met een Arduino en Shift Register

de Siemens DLO7135 Dot matrix LED is een verbazingwekkend stukje opto-elektronica. Het is gefactureerd als een 5 x 7 Dot Matrix intelligente Display (r) met geheugen/Decoder/Driver. Samen met dat het geheugen, het heeft een 96-ASCII karakterdisplay s
Twee Nixie-buizen met een Arduino rijden via een shift register en twee SN74141s.

Twee Nixie-buizen met een Arduino rijden via een shift register en twee SN74141s.

Nixie buizen zijn echt cool op zoek en zijn steeds heel populair voor hun 'retro' look. Hoewel er een aantal tutorials die er over het gebruik van de watergeest buizen en sommige aardige voorverpakte eenheden (zie deze leuke degenen uit ogi lumen en
Eerste stappen met Processing en Arduino (controlerend shift register van computer)

Eerste stappen met Processing en Arduino (controlerend shift register van computer)

Hey weer! Ik heb slechts een paar delen, dus heb ik besloten om te beginnen met de bouw virtueel! Ik had de verwerking op mijn computer, maar ik had nooit gebruikt, omdat i´m alleen een student en ik don´t Java helemaal kennen. Eerst besloten heb ik
Het gebruik van een Shift Register - Arduino tutorial Arduino Tutorial

Het gebruik van een Shift Register - Arduino tutorial Arduino Tutorial

In deze tutorial leert u hoe u een shift register (of serieel naar paralled controller). Het shift register zal geven je Arduino een extra 8 digitale uitgangen, met behulp van slechts 3 pinnen op je boardIn deze tutorial zal je de praktijk door bestu
Het gebruik van een 74HC595 Shift Register met een AVR ATtiny13

Het gebruik van een 74HC595 Shift Register met een AVR ATtiny13

als je hebt gespeeld met microcontrollers en elektronica dan u waarschijnlijk gezien hebt LED dot matrix displays en andere projecten die daar gebruik van shift registers zoals 7-segment displays en meer. Dit instructable gaat over een snelle intro a
74HC595 Shift register

74HC595 Shift register

dit is een snelle start gids voor het 74HC595 Shift register.Het shift register werkt op een vrij eenvoudige manier, maar kan worden gewijzigd om te worden erg ingewikkeld, maar zeer nuttig.Het basisconcept is je 8 output pinnen uit de 74HC595.  Voor
8 LED Chaser met 74HC595 8 Bit Shift Register

8 LED Chaser met 74HC595 8 Bit Shift Register

heb je wilde maken van een zoete Cylon/Knight Rider (Larson) Scanner-effect? Maar u geen gebruik wilt maken van alle van uw pins Arduino IO? Nou, kunt u een mooie 8 LED Scanner met een verschuiving registreren van IC.In deze tutorial zullen we gebrui
Een shift register met Raspberry Pi

Een shift register met Raspberry Pi

dit instructable zal proberen uit te leggen, in eenvoudige termen, wat een verschuiving register is, en hoe u het kunt gebruiken met de Raspberry Pi om uit te breiden de GPIO poort door het uitvoeren van acht uitgangen met slechts vier GPIO poorten.O
Exploitatie van een Shift Register

Exploitatie van een Shift Register

In afwachting voor de 8 x 8 x 8 LED kubus Instructable (ik heb een 3 x 3 x 3 versie hier), 'm I gonna verklaren een belangrijk onderdeel van de exploitatie van de kubus die ik voel me niet zo mooi als het zou kunnen worden (maar aarzel niet om mij te
Verschuiving Me Kit: 595 en 165 Shift Register Kit

Verschuiving Me Kit: 595 en 165 Shift Register Kit

kunt u zich voorstellen moetend haak alle regels nodig gewoon om 74HC595s te verschuiven van een bajillion bits voor u?  Ja. Evenmin kunnen wij.  Dus hebben we breadboard-vriendelijke shift modules die ad infinitum tot elkaar wordt vastgehaakt kunnen
74HC595 Shift Register Demystified

74HC595 Shift Register Demystified

voorbereidende uitleg/voorzorgsmaatregelenAltijd verwijzen naar de gegevensbladen voordat u eventuele tests uitvoert op een geïntegreerde schakeling.CMOS operaties:Een belangrijk ding in gedachten te houden is de 74HC595 (HC) is CMOS-technologie. De
LED matrix project met behulp van shift register en pic16f628a micro

LED matrix project met behulp van shift register en pic16f628a micro

dit is een te bewegen van woorden op led matrix beeldschermWe gebruiken1-pic16f628a als microcontroller: goedkoop, program 2k geheugen, heeft twee poorten A, B, interne oscillatror en een heleboel dingen.2 geleide matrix 8 * 8 rijen gemeenschappelijk