Mellanliggande Arduino: Ingångar och utgångar (8 / 9 steg)

Steg 8: Använder en matris att lagra och ställa in staterna i ett LED-matris



I det sista steget såg vi hur byte förenklat processen att staterna i varje rad i matrisen LED. Nu ska vi ta en titt på en strategi för att lagra informationen i en matris. En array är en plats där vi kan lagra en samling relaterade variabler, i detta fall, jag kommer att använda en matris för att lagra påstår av varje rad i matrisen. Eftersom vi som företräder staterna i varje rad i matrisen med hjälp av en byte, och det finns 8 rader, behöver jag en matris på 8 byte att lagra påstår av alla 64 lysdioder i ledde matrisen. Här är hur matrisen skapas

byte ledStates [8] = {0, 15, 0, 0, 0, 84, 0, 0};

Jag har initiera arrayen med en uppsättning av byte, jag kastade i vissa icke-noll byte att se hur de dyker upp på LED matrix. Här är hur matrisen används:

byte ledStates [8] = {0, 15, 0, 0, 0, 84, 0, 0};

void setup() {
stift 6-13 som utgångar och initiera högt
för (int pinNum = 6; pinNum < 14; pinNum ++) {
pinMode (pinNum, produktionen);
digitalWrite (pinNum, hög);
}
ställa in stift A0-A6 som utgångar
för (int pinNum = A0; pinNum < A6; pinNum ++) {
pinMode (pinNum, produktionen);
}
ställa in stift 2 och 3 som utgångar
för (int pinNum = 2; pinNum < 4; pinNum ++) {
pinMode (pinNum, produktionen);
}
}

void loop() {
för (int jag = 0; jag < 8; i ++) {

setStates(ledStates[i]);

int pinNum = getPinNumForLEDIndex(i);
digitalWrite (pinNum, låg);
digitalWrite (pinNum, hög);
}
}

int getPinNumForLEDIndex (int index) {
Avkastningsindex + 6.
}

void setStates (byte staterna) {
zeroStates (); //first tur alla stift av
titta på varje bit av binärt tal och uppsättningen hög om
om (staterna & 1) digitalWrite (A0, hög);
om (staterna & 2) digitalWrite (A1, hög);
om (staterna & 4) digitalWrite (A2, hög);
om (staterna & 8) digitalWrite (A3, hög);
om (staterna & 16) digitalWrite (A4, hög);
om (staterna & 32) digitalWrite (A5, hög);
om (staterna & 64) digitalWrite (2, hög).
om (staterna & 128) digitalWrite (3, hög).
}

void zeroStates() {
digitalWrite (A0, låg);
digitalWrite (A1, låg);
digitalWrite (A2, låg);
digitalWrite (A3, låg);
digitalWrite (A4, låg);
digitalWrite (A5, låg);
digitalWrite (2, låg).
digitalWrite (3, låg).
}

För att få en variabel lagras i en matris måste använda du följande syntax:

arrayName [variableIndex]

där variableIndex är platsen för variabeln i matrisen. Till exempel:

ledStates [0] är lika med 0

ledStates [1] är lika med 15

eftersom först (index = 0) elementet i arrayen är 0, och andra (index = 1) elementet i arrayen är 15.

Eftersom jag inte längre iteration över pinNums i min for-loop, jag skapade en hjälpare funktion som konverterar mellan min iterator variabel "i" och den Arduino pin ansluten till raden av intresse:

int getPinNumForLEDIndex (int index) {

Avkastningsindex + 6.

}

Prova att ändra byte array ledStates att se hur de påverkar produktionen av matrisen. Också prova att ändra variabler lagras i ledStates som skiss går, använder du följande syntax:

ledStates [indexNum] = newValue

Du kan också ange påstår av lysdioderna byte som skrivs på följande sätt:

B11011011

B kan Arduino vet att det bör förvänta sig ett binärt tal, då nästa 8 siffrorna är de 8 siffrorna i binär du vill visa. Detta gör det lite lättare att utforma en 2D mönster på ledde matrisen. Prova att använda denna matris:

byte ledStates [8] = {B0111100, B01000010, B10110101, B10000101, B10000101, B10110101, B01000010, B0111100};

Se Steg
Relaterade Ämnen

Hur man styr en bearbetning skiss med två Arduino ingångar

Denna tutorial ska show dig hur man bygger en grundläggande Arduino krets som kan styra en rolig färgade bollen skiss bearbetning.Du behöver:1 x Arduino ombord (jag använder en Uno)1 x skärbräda1 x foto-motstånd1 x 10 k Ohm motstånd (brun-svart-Orang...

Extra ingångar för Arduino med ett tangentbord

Arduino är kanske häftigaste på jorden. Det finns många typer, Uno, Mega, Pro, Pro Mini, etc. etc.Men en sak som ofta kan vara ett problem är att du bara har ett begränsat antal in- och utgångar. Det finns många lösningar för det, allt från multiplex...

Att komma igång med Xilinx Vivado w / Digilent Nexys 4 FPGA 1 - bygga flera ingångar och logik utfärda utegångsförbud

Jag gör detta instructable eftersom det ser ut som det inte är enkelt att komma igång handledning för att lära människor att använda den senaste Xilinx Vivado CAD-verktyget. Så, jag vill använda den enkla flera ingångar gate design att gå igenom Xili...

Verkligen enkel audio switch (2 ingångar, 1 utgång)

detta är ett projekt som utvecklats under våra "Taller de Inventos" (AKA augusti bygga natt), sponsras av Instructables och Jameco, som några av komponenterna för detta instructable.Det är ett fall där en audio ingång och två utgångar, så att du...

Med hjälp av The PCF8575 i2c i/o Expander till Läs ingångar med Arduino

detta Instructable visar dig hur enkelt det är att lägga till extra ingångar till din Arduino. Du kan använda denna teknik för att lägga till hundratals extra ingångar till din Arduino med bara två kablar med hjälp av en fancy kommunikationsprotokoll...

DIY I2C LCD-Display med ingångar

Den typiska parallella LCD används med en Arduino (16 x 2 eller 20 x 4) har 16 stift. Endast 6 I/O pins krävs på Arduino, men tänk om du kunde få det ner till två I/O stift, och har fortfarande de stift som är tillgänglig för andra enheter?I2C gränss...

Dubbla över MakeyMakey - ännu fler ingångar!

Ibland, bara en MakeyMakey är inte nog för ditt projekt!Här är hur du använder två på samma gång.EDIT:(Ignorera detta Instructable om du har problem med drivrutiner, & huvud tillwww.makeymakey.com/REMAPAnvända Chrome, kan du mappa om tangenttryckning...

Joystick Modding för snabbare ingångar Fightsticks/Arcadesticks

Få snabbare ingångar genom att installera en spänning våren och överdimensionerade manöverdonet till din styrspak.De flesta Fightsticks komma med Sanwa Joysticks. I denna tutorial jag lära dig hur man installerar ett överdimensionerade ställdon, och...

Enklaste sättet att få stereoljud från Mono mikrofoner / ingångar (utan programvara)

köpa den: http://amzn.to/ncofO1Episod 1 - www.thoughtgrenades.comEtt snabbt och praktiskt sätt att få stereoljud från Mono mikrofoner / ingångar.Redigeringsprogram används: After Effects & Sony VegasBakgrundsmusik sammanställt av: youtube.com/user/Mr...

Minecraft hemliga ingångar: Hemliga Outrance

MINECRAFT! Lemme sätta min blick tillbaka i--jag slags förlorade efter timmars spel: POm ni minns mitt senaste projekt, Minecart upptäckt ingången, är detta ett bra sätt att få ut. Jag föreslår att göra detta i din hus/dungeon/slott/jätte bok / vad d...

DIY Arduino fjärrkontroll och Lego RC bil!

Uppdatera (8/29/13): tacka er läsare för din entusiasm och typ kommentarer angående detta projekt! Det har varit en enorm resa sedan jag började detta projekt redan i mars, men jag är mycket glad med den resulterande produkten och spänningen som det...

Hur komma åt 5 knappar genom 1 Arduino ingång

med den här metoden jag ska visa dig hur du kan använda 5 (eller ännu mer) ingångar via 1 Arduino stift. Dessa knappar kommer endast läsas korrekt om bara en skjuts när som helst ändå.När vi går igenom det jag ska förklara vad bakgrunden info du behö...

Arduino nybörjare och grundläggande elektronik Kit Primer

lärde jag mig att en av mina systerdöttrar hade ett intresse för programmering. Hon arbetade med robotics på gymnasiet och har en sommar praktikplats där de hade Arduinos. Jag tror att hon kunde låna en Arduino för att experimentera med hemma men var...

Online grafer med ingenting men en Arduino, Ethernet Shield och Sensor

Slutligen har jag beslutat att lägga några av mina befintliga projekt på instructables. Här är anpassade från mitt Super Graphing Data Logger projekt.Vad är Super Graphing Data Logger (SGDL)? Det är en Arduino projekt som integrerar dataloggning och...

Automatiska bevattningssystem med kapacitiv sond och Arduino på billiga (och jag menar det)

Varning: Jag är inte en elektronikingenjör, så jag inte kan ge någon garanti för design (mycket mindre en implementering). Jag vet bara presenteras lösningen fungerade för mig minst 5-6 månader (så jag inte kan ens garantera dess tillförlitlighet öve...

Arduino få upp och flytta

som vi alla tillbringa en ökande mängd tid sitta vid vårt bord är det lätt att bli uppslukad av det vi gör och lös reda på tid.Det sägs att vi ska få upp och flytta från vår plats minst en gång varje timme, men vem vill titta på klockan?Med en mycket...

Arduino OLED termometer och Hygrometer med DHT11 för nybörjare

Hej! Jag ska visa dig hur man gör en Arduino OLED termometer och hygrometer * med DHT11.OLED vi använder idag är 1.3″ tum i storlek, funktioner 128 × 64 pixlar och använder SPI bussen. På nästa steg hittar du mer nyttig information om OLED tech och d...

ARDUINO gränssnitt och konverterare för INPUT/OUTPUT digital/analog

CE schéma réunit toutes les gränssnitt ou convertisseurs que j'utilise avec mes microcontrôleurs Häll piloter mes systèmes (gaine de ventilation chauffante régulation de température, portail automatisé, fyra thermique, monte avgift, station de pompag...

Arduino cykel larm och ljus

detta larm är ett bra sätt att varna dig om någon bråkar med din cykel. Jag hade en cykel stulen ett tag tillbaka och beslutade att det måste finnas ett bättre sätt att hålla min cykel säkert. När jag sökte för cykel larm, var allt jag kunde hitta la...