8x8 LED Matrix Animations (12 / 14 steg)

Steg 12: Hårdvara tillägg 1 - knappsats



jag gillade slumpmässiga animationer jag kunde ringa, men för partiet jag ville åsidosätta detta och sätta på en viss animation endast och inte ändra den. Därav den första add-on-en knappsats så att en viss animation väljas.

Problemet med detta är att vi bara har 3 ingångar lämnade på Arduino så med en knappsats i dess normalt sätt brukar fungera. Så efter en del forskning hittade här och på internet, jag en lösning att endast använda en input för att upptäcka vilken knapp har tryckts.

Läs detta utmärkta instructable på hur man upptäcker stiften på din knappsats och howto tråd det upp till endast använda en ingång. När jag hade bygga matrisen resistor, ansluten jag knappsatsen utdata till pin A2. Jag använde en skärbräda samtidigt testa denna hårdvara. Jag lödde också huvudet pins till knappsatsen så jag kan koppla det till och från bakbord lättare. även när jag bygger den slutliga kretsen allt är modulära och kan anslutas lätt.

Därför La jag följande tre förklaringar precis under array definitionerna
int keyboardPin = A2;
int keyboardValue = 0;
int keypressed = 0;

Sedan la jag följande funktion för att tillåta mig att läsa där nyckeln har tryckt på knappsatsen. Observera mina värderingar skiljer sig från den instructable ovan som jag använt olika motstånd värden.

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

Denna funktion fungerar genom att upptäcka vilken tangent har tryckts baserat på värdet på tangentbordet ingångsstift och sedan ställa den globala variabeln keypressed till ett antal som motsvarar detta.

Loop funktion sedan ändras för att läsa såhär

void loop() {
int randnumber = 0;
readkeyboard();
om (keypressed > 0 & & keypressed < 12) {
manualEffect = 1;
prevKeyPressed = keypressed;
för (int x = 0; x < 2; x ++) {
(*funcAnimate[keypressed]) ();
Delay(1);
}
} else om (keypressed = 12) {
manualEffect = 0;
Låt loop kör igen och den annan redovisningen löper en slumpmässig effekt
som manualEffect har återställts
} else om (manualEffect = 1) {
för (int x = 0; x < 2; x ++) {
(*funcAnimate[prevKeyPressed]) ();
Delay(1);
}
} annat {
randnumber = random(0,2);
för (int x = 0; x < 2; x ++) {
(*funcAnimate[randnumber]) ();
Delay(1);
}
}
}
Detta fungerar genom att läsa värdet tangentbord.

Då en om sats kontroller för att se om en tangent har tryckts mellan 0 och 11
Om detta är sant då anger manualeffect vara 1, och sedan körs den valda effekten.
Om #-knappen har tryckts då det kommer att ställa manualeffect till 0, så nästa gång loopen körs som ingen nyckel kommer att pressas och manualeffect är satt till 0 så då körs en slumpmässig effekt
Då den om uttalande kontrollerar om manualeffect är lika med 1. Detta händer om en nyckel har pressat tidigare och började köra en manuell effekt. Detta tillåter oss att fortsätta spela den tidigare valda manuella effekten. Denna manuella effekt kommer att fortsätta tills en annan tangent trycks
Den slutliga else-satsen körs om manualeffect är satt till 0, som kommer att hända när enheten slås på eller när slumpmässiga knappen trycks. En slumpmässig effekt kommer då att köras.

Den slutliga justeringen på skissen är att lägga till följande funktion

void dummy() {}

Sedan till utbudet av funktioner ändra att läsa så här

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

Ändra sedan randNumber = random(0,2); att randnumber = random(1,3);

Dessa förändringar innebär att när du knappsatsen trycker funktionen array position 0 aldrig kör på grund av de varierande uppdrag. Så vi bara lägga till en dummy funktion där som inte gör något. Vi ändrade också den randNumber som har tilldelats ett slumptal starta från 1, igen så array position 0 är aldrig köra.

Hela skissen är nedan.

Se Steg
Relaterade Ämnen

Arduino-baserad Bi-color LED Matrix Flappy fågeln spel

Vi har byggt en hel del projekt med Bi-färg (rött och grönt) LED Matrix drivrutinsmodulen Kit från jolliFactory och har publicerat dem som instructables här. Var och en av dessa moduler använder två MAX7219 Display Driver ICs för att driva en Bi-colo...

LED Matrix Editor

Det finns några sätt att lagra denna typ av matris i Arduino koden.Gillar det här:byte [bild] = {0, 0, 0, 0, 1, 0, 0, 0,0, 0, 0, 1, 1, 0, 0, 0,0, 0, 0, 0, 1, 0, 0, 0,0, 0, 0, 0, 1, 0, 0, 0,0, 0, 0, 0, 1, 0, 0, 0,0, 0, 0, 0, 1, 0, 0, 0,0, 0, 0, 0, 1,...

Baserade Arduino Bi-color LED Matrix Tetris spelet

En av elektronik DIY kit jolliFactory kom upp med är den Bi-color LED Matrix Driver modul Kit. Denna modul är utformad för att kunna kedja-så att du kan seriekoppla moduler tillsammans med antalet moduler du behöver för att passa ditt projekt.Följand...

Daft Punk LED Matrix Breakout styrelse

jag imponerades alltid av Daft Punk soffbordet. Att kunna lysa upp en massa lysdioder och flash dem i mönster har så många tillämpningar. Det var en av anledningarna till varför jag köpte en Arduino att se hur det kunde kontrollera en matris av LED-l...

Baserade Arduino Bi-color LED Matrix Pong spel

Vi har skapat två game-projekt instructables hittills använda jolliFactory Bi-color LED Matrix Driver modul DIY kit vi har utformat. Denna ledde matrisen modul är utformad för att kunna kedja-så du kan seriekoppla moduler tillsammans med antalet modu...

Arduino LED Matrix Kit

Arduino LED Matrix Kit utvecklades så att du kan arbeta med en 8 x 8 ledde matrisen, en integrerad krets MAX7219 och en Arduino. I projektet, kommer att du dra, med en lätt och kort kod, ett glatt ansikte. Nästa, you´ll Rita en glada ansikte i aktion...

Baserade Arduino Bi-color LED Matrix Audio Spectrum Visualizer

Efter att vi kom med Bi-color LED Matrix drivrutinsmodulen kit, har vi letat efter intressanta projekt att arbeta med den.Du kan vara intresserad av några av de projekt som vi har lagt upp på instructables använder detta ledde matrisen kit.Instructab...

Stor 8 x 8 LED Matrix Display

Har du arbetat med färdiga 8 x 8 ledde matrisen som visar? De finns i olika storlekar och är ganska intressant att arbeta med. En stor lätt tillgängliga storlek är runt 60 x 60 mm. Men om du letar efter en mycket större färdiga ledde matrisen, kanske...

Baserade Arduino Bi-color LED Matrix Game of Life

Conway's Game of Life är inte en konventionell spel. Det är den mest kända tvådimensionell cellulär automat skapad av brittiska mathematicianen John Horton Conway 1970.Det spelas på ett tvådimensionellt rutnät av celler. En cell kan vara död eller le...

7 Bi-color LED Matrix prydande Text Display

Här visar vi hur en 7 Bi-color 8 x 8 LED Matrix prydande Text Display är byggd, där meddelanden och kommandon kan skickas till det via Bluetooth med en Android Smart Phone. Logiskt, kan alla enheter som kan skicka textmeddelanden via Bluetooth anpass...

Arduino (SPI) 7 Bi-color LED Matrix prydande Text visas

Viss tid tillbaka, vi kom fram till en instructable att bygga en 7 Bi-color 8 x 8 LED Matrix rullning textvisning. Du kan besöka för mer i detalj.I detta instructable, vi använde utmärkt LedControl biblioteket som har skrivits specifikt för den MAX72...

Voice ingång Arduino Bi-color LED Matrix prydande Text Display (Bluetooth + Android)

Medan du surfar på intressanta projekt på Instructables, snubblade vi över imponerande röst aktiverat Arduino (Bluetooth + Android) instructable. Du kan kolla upp det påVi har nyligen satt upp en instructable att bygga en 7 Bi-color 8 x 8 LED Matrix...

Göra en 8 x 10 LED Matrix

uppdatering 1: Jag har lagt till kod för CONWAYS spelet i livetUPPDATERING 2: NU KAN DU SPARA NÅGRA ARDUINO PINS MED HJÄLP AV 1 SKIFTREGISTER.I detta instructable jag kommer att visa dig hur man bygger en ganska fancy 8 av 10 LED matrix (med rullande...

LED Matrix soffbord

några konstruktion skott av min Arduino-kontrollerade 8 x 8 LED matrix LED soffbord....

8 x 8 LED Matrix - flera skisser att prova

Kära alla, första ' kompatibel från mig, så bli mjuk.Jag har spelat runt med Arduinos för ett par månader, finner jag att veta vad man ska göra med dem är det största problemet. Jag har massor av bitar, och har varit instructibles på här mycket nytti...

DIY 5 x 7 LED Matrix styrelse

hai läsare.Idag jag ska visa hur man gör 5 × 7 ledde dot matrix styrelse. I det här inlägget kommer att jag visa att bygga styrelsen och visa dig att använda den manuellt. Jag kommer att publicera de programmering och gränssnitt med arduino så snart...

LED Matrix Test 1 med hjälp av en AS1107 IC

fick tag i några AS1107 LED Driver Chips från Österrike Microsystems. Dessa är utformade för att köra 8 x 8 segment LED numeriska visar. De kan också användas för att styra en 8 x 8 ledde matrisen. Endast 3 utgångar behövs från Boarduino (Arduino) -...

24*10 LED MATRIX PERFECTLY RUNNING

EFTER 24 * 6 LEDDE MATRISEN AVOCH 24 * 8 LEDDE MATRISEN AVEn annan 24 * 10 ledde matrisen skapas genom att modifiera koden och hårdvaraJag kommer att gekoden och bevis av löpande styrelsen (video)och den senare om jag kommer att ladda upp bilderna. J...

Charlieplexed 4 x 5 flerfärgad LED matrix kontrolleras av Python på Pi

I den här guiden kommer vi göra en enkel 4 x 5 matris med endast 5 GPIO stift på din Raspberry Pi. Detta görs med en teknik som kallas Charlieplexing.Det finns en hel del sidor på interwebs om Charlieplexing och Python-språket och hur det fungerar så...