2D Array - Arduino

2D Array - Arduino

Arduino -tavler kan programmeres ved hjelp av et C/C ++ -språk. De fleste av konseptene Arduino -programmering arver fra disse to språkene. Som i C/C ++ -arrays brukes også i Arduino -skisser. Arrays kan lagre flere elementer med samme datatype. Arrays i Arduino brukes ofte med for løkker for å kontrollere spenningsnivået ved flere pinner. La oss se hvordan du oppretter 2D -matriser i Arduino.

2D -matriser i Arduino

2D- eller todimensjonale matriser ligner på en dimensjonell bare forskjell er her vi har flere rader og flere kolonner i stedet for en enkelt linje med tegn. Alle elementer av matriser er ordnet inne i et rutenett i tabellform med rader og søyler.

Med enkle ord kalles matriser som krever to forskjellige abonnement for å ringe et bestemt element på et bestemt sted 2D -matriser. Enhver rekke som har to eller flere dimensjoner er kjent som en flerdimensjonal matrise.

Her i bildet over kan vi se en flerdimensjonal 2D-matrise fordi det krever to abonnement for å identifisere et spesifikt element.

  • Først er navnet på matrisen betegnet av "en".
  • For det andre er Row -abonnement [2] Forteller oss elementets plassering med hensyn til radnummeret.
  • Tredje er kolonnenes abonnement [1] betegner kolonne antall spesifikke elementer.

Initialisering av 2D -matrise i Arduino

Nå for å forstå 2D -array -konseptet initialiserer vi en 2D -matrise i Arduino -koden og skriver den ut på en seriemonitor. Følgende er koden for å initialisere en 2 × 3 2D -matrise:

void setup ()
Serie.Begin (115200); /*Seriell kommunikasjon begynner*/
int nrow = 2; /*Antall rader*/
int ncol = 3; /*Antall kolonne*/
int twodimarray [2] [3] = /*Array definert med dimensjon* /

1, 2, 3, /*Array Elements* /
4, 5, 6
;
Serie.println ("todimensjonsarray av [2] x [3]");
int currow = 0;
mens (currow < nRow) /*While loop to print n value of row*/

int curcol = 0;
mens (curcol < nCol) /*While loop to print n value of column*/

Serie.trykk (TwodimArray [Currow] [Curcol]);
Serie.skrive ut(" ");
Curcol ++; /*Skriv ut alle raderelementer*/

Serie.println ();
Currow ++; /*Skriv ut alle kolonneelementer*/


ugyldig sløyfe ()

Her i koden ovenfor startet vi med å initialisere seriell kommunikasjon for å skrive ut resultater på seriemonitoren. Neste totalt antall rader og kolonner initialiseres. For å lagre data inne i matrisen initialiserte vi en todimensjonal array-streng som skriver ut tall fra 1 til 6.

Neste for å lagre de initialiserte dataene i Array Two mens løkker kreves en for antall rader og andre for totalt antall kolonner. Vi kan også gjøre dette manuelt, men i tilfelle av 2D -matriser i stor størrelse må vi skrive en egen linje for hvert element i 2D -matrisen. For å unngå at denne sløyfen er initialisert som vil kjøre for seg selv og øke verdien for å lagre det neste elementet inne i matrisen.

Til slutt trykket vi både radene og kolonnene ved hjelp av serien.print () funksjon.

Produksjon

Utgang viser en 2D -matrise med 2 × 3 størrelse.

Erstatte 2D -matriseelementer med en verdi i Arduino

Siden vi har skrevet ut en 2D -matrise på seriell skjerm nå, vil vi erstatte en spesifikk verdi med et element inne i 2D -matrisen.

void setup ()
Serie.Begin (115200); /*Seriell kommunikasjon begynner*/
int nrow = 2; /*Antall rader*/
int ncol = 3; /*Antall kolonne*/
int twodimarray [2] [3] = /*Array definert med dimensjon* /

1, 2, 3, /*Array Elements* /
4, 5, 6
;
Serie.println ("element på stedet [1] x [1] erstattes med 0:");
int currow = 0;
mens (currow < nRow)

int curcol = 0;
mens (curcol < nCol)

TwodimArray [1] [1] = 0; /*Array -element ved [1] x [1] erstattes med 0*/
Serie.trykk (TwodimArray [Currow] [Curcol]);
Serie.skrive ut(" ");
Curcol ++; /*Skriv ut alle raderelementer*/

Serie.println ();
Currow ++; /*Skriv ut alle kolonneelementer*/


ugyldig sløyfe ()




Over koden er lik i å fungere som koden forklart tidligere. Den eneste forskjellen her er tillegg av to linjer ved å bruke følgende funksjon: vi kan erstatte ethvert array -element med en gitt verdi.
[CCE_Bash bredde = "100%" høyde = "100%" rømte = "true" tema = "blackboard" nowrap = "0"]
TwodimArray [1] [1] = 0;

Her vil [1] x [1] elementet som er lik 5 erstattes med et tall 0. Ved å definere matriselementets plassering kan et hvilket som helst tall erstattes med et nytt.

Produksjon

I seriemonitoren kan vi se at elementet på stedet [1] x [1] erstattes med nummer 0:

Få en verdi fra en spesifikk posisjon i 2D -matrisen i Arduino

Nå vil vi hente en spesifikk verdi av et element fra hvilken som helst stilling inne i 2D -arrayen:

void setup ()
Serie.Begin (115200); /*Seriell kommunikasjon begynner*/
int nrow = 2; /*Antall rader*/
int ncol = 3; /*Antall kolonne*/
int twodimarray [2] [3] = /*Array definert med dimensjon* /

1, 2, 3, /*Array Elements* /
4, 5, 6
;
int currow = 0;
mens (currow < nRow)

int curcol = 0;
mens (curcol < nCol)

Serie.trykk (TwodimArray [Currow] [Curcol]);
Serie.skrive ut(" ");
Curcol ++; /*Skriv ut alle raderelementer*/

Serie.println ();
Currow ++; /*Skriv ut alle kolonneelementer*/

int myValue = twodimArray [1] [1]; /*Print Element Al [1] x [1]*/
Serie.print ("verdien av elementet på [1] x [1] er:");
Serie.print (myValue);

void loop ()

Her på slutten av koden definerte vi en ny variabel MyValue av int -type. Denne variabelen vil ta verdien av det definerte elementet ved å bruke plasseringen og skrive det ut på seriemonitoren.

Her har vi initialisert det for å skrive ut elementer på stedet [1] x [1].

Produksjon

Utgangsterminalen representerer verdien på stedet [1] x [1] som er lik 5:

Konklusjon

To-dimensjonale matriser (2D-matrise) Fjern bryet med å håndtere forskjellige variabler. Ved å bruke 2D -matriser kan vi stille inn forskjellige pinneverdier høye eller lave. Denne artikkelen gir en introduksjon av 2D -matriser i Arduino og guider om hvordan du får eller erstatter spesifikke elementverdier inne i 2D -matrisen.