8x8 LED Matrix Animations (12 / 14 stap)

Stap 12: Hardware Add-on 1 - toetsenbord


ik vond de willekeurige animaties die ik zou kunnen noemen, maar voor de partij die ik wilde deze overschrijven en zet op een bepaalde animatie alleen en niet wijzigen. Vandaar de eerste add-on-een toetsenbord een bepaalde animatie wilt worden geselecteerd.

Probleem daarbij is dat we alleen 3 ingangen links op de Arduino hebben, zodat met behulp van een toetsenbord op de normale wijze niet werken. Dus na wat onderzoek vond hier en op internet, ik een oplossing met slechts één ingang te detecteren welke knop is ingedrukt.

Lees dit uitstekende instructable op welke manier voor speurder de pinnen op uw toetsenbord en howto draad het tot enige gebruiken één ingang. Zodra ik had het opbouwen van de weerstand-matrix, ik de output van het toetsenbord aangesloten op pin A2. Ik gebruikte een breadboard terwijl deze hardware testen. Ik ook gesoldeerd kop pinnen aan het toetsenbord zodat ik het project van en naar het breadboard gemakkelijker loskoppelen kunt. ook wanneer ik het opbouwen van het slotcircuit alles is modulair en gemakkelijk kan worden aangesloten.

Dus voegde ik de volgende drie verklaringen net onder de definities van de matrix
int keyboardPin = A2;
int keyboardValue = 0;
int keypressed = 0;

Vervolgens voegde ik de volgende functie zodat me om te lezen in die toets is ingedrukt op het toetsenbord. Opmerking mijn waarden zijn verschillend van de instructable boven als ik vroeger de weerstand van de verschillende waarden.

ongeldig readkeyboard() {}
keypressed = 0;
keyboardValue = analogRead(keyboardPin);
Als (keyboardValue < 25) {keypressed = -1;}
Als ((keyboardValue >25) & & (keyboardValue < 45)) {keypressed = 1;}
Als ((keyboardValue >45) & & (keyboardValue < 80)) {keypressed = 2;}
Als ((keyboardValue >80) & & (keyboardValue < 160)) {keypressed = 3;}
Als ((keyboardValue >162) & & (keyboardValue < 253)) {keypressed = 4;}
Als ((keyboardValue >253) & & (keyboardValue < 361)) {keypressed = 5;}
Als ((keyboardValue >361) & & (keyboardValue < 479)) {keypressed = 6;}
Als ((keyboardValue >479) & & (keyboardValue < 585)) {keypressed = 7;}
Als ((keyboardValue >585) & & (keyboardValue < 715)) {keypressed = 8;}
Als ((keyboardValue >715) & & (keyboardValue < 760)) {keypressed = 9;}
Als ((keyboardValue >839) & & (keyboardValue < 880)) {keypressed = 10;}
Als ((keyboardValue >760) & & (keyboardValue < 839)) {keypressed = 11;}
Als ((keyboardValue >880) & & (keyboardValue < 1000)) {keypressed = 12;}
delay(50);
}

Deze functie werkt door het detecteren van welke toets is ingedrukt op basis van de waarde op de toetsenbord invoer pin en vervolgens stellen de globale variabele keypressed naar een nummer dat overeenkomt met dit.

De functie van de lus wordt vervolgens gewijzigd om te lezen als dit

void loop {}
int randnumber = 0;
readkeyboard();
Als (keypressed > 0 & & keypressed < 12) {}
manualEffect = 1;
prevKeyPressed = keypressed;
voor (int x = 0; x < 2; x ++) {}
(*funcAnimate[keypressed]) ();
delay(1);
}
} else if (keypressed = 12) {}
manualEffect = 0;
Laat de lus opnieuw doorlopen en de laatste instructie else zal dan lopen van een willekeurige effect
Als de manualEffect zijn hersteld
} else if (manualEffect = 1) {}
voor (int x = 0; x < 2; x ++) {}
(*funcAnimate[prevKeyPressed]) ();
delay(1);
}
} else {}
randnumber = random(0,2);
voor (int x = 0; x < 2; x ++) {}
(*funcAnimate[randnumber]) ();
delay(1);
}
}
}
Dit werkt door het lezen van de waarde van het toetsenbord.

Dan een als instructie controleert om te zien als een toets tussen 0 en 11
Als dit waar is dan het manualeffect 1 ingesteld en dan loopt het gekozen effect.
Als de #-toets is ingedrukt dan het manualeffect wordt ingesteld op 0, dan wordt dus de volgende keer lus wordt uitgevoerd als geen toets zal worden ingedrukt en manualeffect is ingesteld op 0 wordt dus dan een willekeurige effect uitgevoerd
Dan is de als instructie controleert als manualeffect gelijk aan 1 is. Dit gebeurt als een sleutel is eerder gedrukt en gestart met een handmatige effect. Hierdoor is ons om te blijven spelen op het eerder gekozen handmatige effect.  Dit handmatige effect blijft draaien totdat een andere toets wordt ingedrukt
De laatste instructie else wordt uitgevoerd als manualeffect is ingesteld op 0, wat gebeuren zal wanneer het apparaat is ingeschakeld of als u de willekeurige toets indrukt. Vervolgens op een willekeurige effect zal uitvoeren.

De definitieve aanpassing van de schets is het toevoegen van de volgende functie

ongeldig dummy() {}

Vervolgens aan de matrix van functies om te lezen, zoals dit

funcAnimate [0] = dummy;
funcAnimate [1] = MakeSadSmileFace;
funcAnimate [2] = MakewinkingFace;

Wijzig de randNumber = random(0,2); = & randnumber = random(1,3);

Deze wijzigingen betekenen dat wanneer het toetsenbord wordt ingedrukt de functie op matrixpositie 0 wordt nooit uitgevoerd als gevolg van de variabele toewijzingen. Dus we voeg gewoon een dummy functie er dat niet. Wij veranderde ook de randNumber een willekeurig getal tussen 1, om opnieuw te beginnen zodat matrixpositie 0 wordt nooit uitgevoerd wordt toegewezen.

De volledige schets is hieronder.

Gerelateerde Artikelen

LED matrix - spel van het leven

LED matrix - spel van het leven

Dit project zal het uitvoeren van Conway's spel van het leven op een 8 x 8 LED matrix.Het heeft 2 knoppen, een voor het opzetten van een willekeurig veld, de andere starten of stoppen van de iteraties.Stap 1: materialen Een 8 x 8 LED matrix2 x aprox.
Pong met 8 x 8 Led Matrix op Arduino

Pong met 8 x 8 Led Matrix op Arduino

spel Pong gemaakt met 8 x 8 Led Matrix op Arduino Diecimila (microcontroller van Atmel ATMega 168). Voor meer informatie http://blog.bsoares.com.br/arduino/ping-pong-with-8x8-led-matrix-on-arduino
Vlammen effect met een 8 x 8 LED Matrix en ATMega328

Vlammen effect met een 8 x 8 LED Matrix en ATMega328

een tijdje geleden vond ik sommige blogposten uit te leggen hoe het gebruik van een LED-matrix als een hanger (http://hackaday.com/2013/01/10/8x8-led-matrix-pendant-sealed-in-a-block-of-epoxy/ en https://sites.google.com/site/tinymatrix/ ). De 8 x 8
TFT Touch scherm Animation Engine en 8 x 8 RGB LED Matrix Controller

TFT Touch scherm Animation Engine en 8 x 8 RGB LED Matrix Controller

Deze ingesloten toepassing heeft hoopjes van creatieve potentieel voor elke aspirant Arduino fanatici! Een TFT Touch scherm Animation Engine en optionele 8 x 8 RGB LED Matrix Controller. Bekijk de introductie video voor meer details:Wat je nodig hebt
Arduino 8 x 8 RGB LED Matrix Controller with 4 Shift Registers en temperatuursensor

Arduino 8 x 8 RGB LED Matrix Controller with 4 Shift Registers en temperatuursensor

De eerste helft van deze instructievideo toont dat een voltooide project van een Arduino met 4 shift registers (74HC595) gebruikt om te bepalen en 8 x 8 RGB LED Matrix. Er is ook een DS18B20 temperatuursensor gebruikt voor weergave van de temperatuur
Gemakkelijk 4 x 6 LED Matrix, Arduino!

Gemakkelijk 4 x 6 LED Matrix, Arduino!

In deze inst'able, zal ik u tonen hoe te creëren uw zeer eigen 4 x 6LED matrix evenals u tonen hoe om code te schrijven voor het!Er is een animatie Schepper programma in stap 4!Hier is één animatie om u enthousiast over het project!*** Golf animatie
8 x 8 LED matrix

8 x 8 LED matrix

dit instructable zal u tonen hoe te maken van een 8 x 8 LED matrix in heks kunt u controleren van evry één LED en uw eigen patronen maken, zolang ze hoeft alleen 64 pixels om ze te laten in één kleur.Update 25.09.10Ik heb toegevoegd een patroon gener
Arduino gebaseerd Bi-color LED Matrix Audio Spectrum Visualizer

Arduino gebaseerd Bi-color LED Matrix Audio Spectrum Visualizer

Nadat we met de Bi-color LED Matrix Driver Module kit kwamen, we hebben ons gebogen rond voor interessante projecten te werken.Bent u wellicht geïnteresseerd in een aantal van de projecten die we hebben opgemaakt op instructables met behulp van deze
Grote 8 x 8 LED Matrix Display

Grote 8 x 8 LED Matrix Display

Heb je gewerkt met kant en klare 8 x 8 LED matrix als beeldschermen? Ze komen in verschillende maten en zijn erg interessant om mee te werken. De grootte van een grote beschikbaar is rond 60 x 60 mm. Als u op zoek bent voor een veel grotere kant en k
Arduino gebaseerd Bi-color LED Matrix Game of Life

Arduino gebaseerd Bi-color LED Matrix Game of Life

Conway's Game of Life is geen conventionele spel. Het is de bekendste tweedimensionale cellulaire automaat gemaakt door de Britse wiskundige John Horton Conway in 1970.Het wordt gespeeld op een tweedimensionaal raster van cellen. Een cel kan worden d
Arduino gebaseerde Bi-color LED Matrix Tetris Game

Arduino gebaseerde Bi-color LED Matrix Tetris Game

Een van de elektronica DIY kit jolliFactory kwam omhoog met is de Bi-color LED Matrix Driver Module Kit. Deze module is ontworpen om kunnen keten-zodat u kan serieschakeling de modules samen aan het aantal modules moet u past bij uw project.De volgen
Stem ingang Arduino Bi-color LED Matrix scrollen tekstweergave (Bluetooth + Android)

Stem ingang Arduino Bi-color LED Matrix scrollen tekstweergave (Bluetooth + Android)

Tijdens het browsen interessante projecten op Instructables, stuitte we op de indrukwekkende stem geactiveerd Arduino (Bluetooth + Android) instructable. Je kan check it out opOnlangs, hebben zetten we een instructable te bouwen een 7 Bi-color 8 x 8
8 x 8 LED Matrix voor RaspberryPi en 3 programma's

8 x 8 LED Matrix voor RaspberryPi en 3 programma's

Dit is een 8 x 8 LED matrix voor een RaspberryPi en drie programma's uit te voeren op het:1 - een "Hello World" programma met een volledige Engelse lettertype.2 - een dobbelspel.3 - een kleine versie van de 8 x 8 van Conway's Game of Life..U moe
Een 8 x 8 LED matrix verbinden met een klein Breadboard

Een 8 x 8 LED matrix verbinden met een klein Breadboard

deze matrices zijn leuk om te spelen met, maar hun grootte maakt hen moeilijk te gebruiken op de meeste breadboard. Hier is een manier om te mounten op een klein breadboard in een (relatief) nette manier.Hebt u nodig:1 breadboard1 8 x 8 LED matrix (d