74HC164 SKIFT Register och din Arduino (8 / 9 steg)

Steg 8: Project 3 [pt 2]: "2 tråd" 4 x 4 led matrisskärm



Skiftet registrera kontroller både anoden och katod lampa i en YX-format, titta på följande

bit 1 = kolumn 1 (längst till höger)
bit 2 = kolumn 2
bit 3 = kolumn 3
bit 4 = kolumn 4
bit 5 = rad 1 (översta)
bit 6 = rad 2
bit 7 = rad 3
bit 8 = rad 4

För att göra en bild dra ut en 4 x 4 kvadrat på rutat papper och fylla i vilka som du vill ska visas, nästa gör en YX-tabell. Nedan kan du se en mappning för en liknelse, väl så gott man kan göra på 4 x 4 "pixlar"

För varje fylld i avsnitt jag skriver ner vilken kolumn (Y) är det i, så där rad är det i (X)

Nu öppen upp den _4x4.pde arkivera i arduino IDE kommer du att se våra gamla 2 vänner

#define data 2
#define klockan 3

sedan en matris av heltal

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

Om du ser det bara en lista över min skriftliga ner YX samordnar, det skulle vara en stor smärta i baken att konvertera dessa värden för hand och vi har en dator... Låt det göra det!

Flytta på där är utan laga kraft setup där vi gör vår klocka och data stift utgångar

void setup()
{
pinMode (klocka, OUTPUT); gör klockan pin en utgång
pinMode (data, produktionen); göra data stift en output3
}

Och en förvirrande letar ogiltig loop, att starta saker vi måste deklarera några lokala variabler

void loop()
{
int Y;
int X;
byte ut;

En for-loop, denna slinga behöver så länge som antalet transaktioner i matrisen img, för denna bild jag bara använt 6 pixlar, så det gör 12 YX koordinater. Jag gör det hoppa över alla andra nummer med jag += 2, eftersom vi läser 2 koordinater per slinga

för (int jag = 0; jag < 12; jag += 2) / / antalet poäng i matrisen img, detta fall 12
{

Nu vi läsa Y entery på [i] i matrisen och subtrahera en från dess värde, eftersom byte inte börjar på en, de börjar på noll, men vi räknade från 1

få det första paret YX sladdar
Y = (img [i] - 1); subtrahera ett eftersom antalet bitars börjar vid 0

Nästa vi läser X entery [i + 1] i matrisen, och subtrahera en från dess värde, på grund av samma anledning

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

Efter vi har YX värdena för pixel, vi gör några bitvis eller matematik och flytta till vänster.

Först måste vi läsa X-värde, och vad dess värde är skifta det att många platser + 4 kvar, så om X är 4 och tillsätt 4 är det lite 8 (MSB), titta på diagrammet igen...

bit 1 = kolumn 1 (längst till höger)
bit 2 = kolumn 2
bit 3 = kolumn 3
bit 4 = kolumn 4
bit 5 = rad 1 (översta)
bit 6 = rad 2
bit 7 = rad 3
bit 8 = rad 4

Bit 8 är den sista raden

Nästa läggs Y-värde också flyttas till vänster, denna gång bara genom sin egen, inget på.

Slutligen är två or'ed tillsammans i 1 byte istället för 2 halva byte (nibbles), med bitvis eller (symbolen |) tar två byte och i princip lägger dem ihop, låt oss anta att

X = 10000000
Y = 00000001
--------------------
ELLER = 10000001

rad 4 kolumn 1

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

Och slutligen shiftOut att visa den aktuella bilden, och fortsätt med det tills vi har inga mer data i matrisen... Dröj en stund och slinga för evigt, eftersom vi flytta data till vänster och vi behöver MSB att vara på det sista produktionen stiftet i skift register skicka det ut först.

shiftOut (data, klocka, MSBFIRST, ut); flytta byten ut till vårt register
Delay(1); fördröja det abit så det har en chans att lämna en plats av ljus i dina ögon

Känn dig fri att göra dina egna bilder och effekter, det finns 3 exempelfilerna, smileyn och en checkerboard (som ser ut mer som ränder) och slutligen en random sparkle maker

Se Steg
Relaterade Ämnen

Nybörjare tutorial: kontrollera ledde matrisen med 2 595 SKIFT register och potmeter

Jag börjar bara med Arduino och instructables från amandaghassaei hjälpte mig mycket. I sin andra tutorialabout in- och utgångar förklarar hon hur du använder SKIFT register och hur man styr en ledde matrisen av multiplexing. I det sista steget föres...

Ledde matrisen projektet använder SKIFT register och pic16f628a mikro

detta är aproject att flytta orden på led matrisdisplayVi använder1-pic16f628a som mikrokontroller: billiga, programminnet 2k, har interna oscillatror, två portar A, B och en massa saker.2-ledde matrisen 8 * 8 rader gemensam anod och kolumner gemensa...

Arduino 8 x 8 RGB ledde matrisen Controller med 4 SKIFT register och temperaturgivare

Första hälften av denna instruktions video visar en färdiga projekt av en Arduino med 4 SKIFT register (74HC595) används för att kontrollera och 8 x 8 RGB LED-matris. Det finns också en DS18B20 temperatursensor används för att Visa temperaturen på 8...

Kör en HD44780 visas med ett skift Register och en Raspberry Pi

i mitt förra instructable, jag täckande hur till springa ett skiftregister med hjälp av en Raspberry Pi, och typ av antydde att en sak du kan göra med det körs en HD44780 baserat uppvisning. Det är vad detta instructable kommer att täcka. Detta instr...

Multiplexering fyra 7-segment visar med hjälp av SKIFT register Arduino

Hallo allaJag konstruerade ett enkelt sätt att multiplex fyra 7-Segment visar med hjälp av SKIFT register och en ArduinoLåt oss multiplex 7 segment displaySteg 1: Steg-1: Låt oss utforma Ta fyra 7-segment visar och löda på en PCB på ett sätt som sida...

Multiplexering 7 Segment visar med Arduino och SKIFT register

i detta instructable, jag kommer att lära grunderna i multiplexing 7 segmenterar skärmar med en Arduino och ett par av SKIFT register. Detta projekt är väl lämpad för att Visa numeriska information eller om du vill styra en massa lysdioder. För nybör...

Hur man använder en SKIFT Register - Arduino handledning

I denna tutorial får du lära dig att använda ett skift register (eller följetong till paralled controller). Det SKIFT registret kommer att ge till din Arduino en ytterligare 8 digitala utgångar, med endast 3 pins på brädanI den här guiden kommer du ö...

Arduino 16 lysdioder med två 74HC595 SKIFT register (obegränsad stift)

Detta är min första instructable, hoppas du kommer att gilla den. Jag har spelat runt med lysdioder för ett tag och jag insåg att jag är ganska mycket begränsat med Arduino stift och kan inte göra stora projekt som kräver en hel del stift. Detta är s...

4 x 4 x 4 LED cube uppgradering med Skift register (74hc595)

projektet började med en påse med lysdioder som jag hade tagit bort från ficklampor, konvertera till UV ficklampor. Jag visste att jag skulle hitta något roligt för att använda dem med, men det var månader innan jag listade ut vad med dem att göra. N...

Att få mer I/O pins på ATTiny med Skift register

Om du tidigare arbetat (eller arbetar) med små 8-bitars mikrokontroller, som ATTiny eller PIC12, du har förmodligen inträffat ett grundläggande problem för att inte ha tillräckligt GPIO pins för dina behov eller projektets krav.Uppgradera till en stö...

LEDDE matrisen med hjälp av SKIFT register

detta instructable är tänkt att vara en mer fullständig förklaring än andra tillgängliga online. Detta kommer bland annat ge mer hårdvara förklaring än finns i LED markeringsramen instructable av led555.MålDetta instructable presenterar begreppen med...

Arduino Universal Bluetooth Anslut - kontroll din Arduino med din Android-enhet

Jag ville alltid enkelt styra min Arduino med min Smartphone, men jag hittat aldrig den perfekta lösningen för att göra. Jag vill inte säga att detta är perfekt, men det gör vad jag vill att det ska do...well inte helt men jag är nära... Jag tror.I d...

Hur du ställer in och testar Arduino Bluetooth-anslutning

Detta fungerar med android-telefoner och de HC-05 och HC-06 bluetooth-modulerna, som ganska mycket arduino eller arduino klon.Steg 1: Ansluta modulen till arduino Ganska enkelt, ansluta bluetooth-modulen till arduino som såRX-pin2TX-stift 3GND-GNDVCC...

Arduino och SKIFT register

I detta projekt kan du se hur du styr ledde använder arduino och SKIFT registerDu behöver:Arduinoenskiftregisterleddeför kod och krets gå till:bästa-circuit.blogspot.comatt se hur wok går till:https://www.youtube.com/watch?v=F1K3qt9nhKc...

Arduino 8 * 8 ledde matrisen driver med 2 * 74HC595 SKIFT register

Jag köpte en 8 x 8 ledde matrisen inklusive en förare ombord med ett MAX7219CNG chip. Tyvärr detta chip inte fungerar korrekt. Så jag bestämde mig att bygga min egen drivrutin med hjälp av 2 74HC595 SKIFT register.Min lösning är baserad på den "Multi...

Arduino powered 7 seg LED-skärm med hjälp av SKIFT register - jag gjorde det på TechShop

sju segmenterade skärmar är bra. De är ganska enkla, inte ta mycket ström och har en stor flexibilitet när det gäller att Visa nummer. Men bortsett från 14 stift bara för att köra det är sådan smärta. Om bara det fanns ett sätt att använda dem utan a...

KRYMPA din ARDUINO arbeten och göra det PERMANENT

Hellow world dag ska jag visa dig hur man krympa din arduino projekt och göra det en permanent. När jag gör ett projekt använder arduino det kommer förmodligen innehåller massor av jumber anslutningar på bakbord och projektet kommer inte en permanent...

RegisterWrite - att utvidga utgångarna av Arduino/mikrokontroller med Skift register

Registrera dig skriva är ett programexempel att förlänga resultaten av Arduino använder en skiftregister.Jag har skrev en enkel skiss som ska använda 3 utgångar för Arduino för att köra skiftregister.Jag skrev detta så jag inte kunde hitta någon likn...

TimeDuino - 7 Segment Arduino Clock (inga SKIFT register behövs!)

Hej alla instructable publiken! Detta är mitt första projekt. Ja, jag vet att dessa ord brukar få stereotypen "Detta kommer inte att vara ett bra projekt" attityd, men jag har väntat länge för ett projekt som är värt att eventuellt bryta den för...