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.
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.