Hvordan du gir matrise til en arduino -funksjon

Hvordan du gir matrise til en arduino -funksjon
Arduino -programmering bruker matriser for å lagre flere dataverdier av samme datatype, matriser er som variabler. Både matriser og variabler er en slags container, men matriser har delere inne i containerne for å lagre flere data. Det eneste å merke seg er at matriser bare kan lagre data med samme datatype. La oss se hvordan du kan gi en matrise til funksjoner.

Passerende matrise for å fungere i Arduino

Arduino -programmering tillater ikke direkte å bestå en hel rekke som funksjonsargument. Imidlertid kan en peker sendes til en matrise ved å spesifisere navnet.

For å passere en dimensjonsarrays som et funksjonsargument må vi vurdere å følge tre gitt syntaks. Alle tre vil sende ut det samme resultatet og fortelle IDE at en peker kommer.

Syntaks 1: En peker med formelle parametere.

ReturnType FunctionName (DataType *Param)

Syntaks 2: En peker med en størrelse matrise.

ReturnType FunctionName (DataType Param [10])

Syntaks 3: En peker med en ubestemmelig matrise.

ReturnType FunctionName (DataType Param [])

Vi kan gi matrise til Arduino -funksjon ved å bruke to forskjellige metoder:

  • PASS -matrise med array -type
  • Pass -matrise etter pekertype

PASS -matrise med array -type

Nå i denne metoden vil vi gi en rekke til en funksjon som et argument for den funksjonen. La oss ta et eksempel for å forstå hvordan du kan gi en rekke til en funksjon.

Eksempelkode

void display (int num [5]) /*funksjonsdisplay initialiseres* /
Serie.Println ("Printing Array Elements:");
for (int i = 0; i < 5; ++i) /*For loop to print array elements*/
Serie.print ("element");
Serie.trykk (i+1); /*Tilstand for å øke elementnummeret hver gang kode kjører*/
Serie.skrive ut(": ");
Serie.println (num [i]); /*Elementnummer skrives ut*/


void setup ()
Serie.Begynn (9600); /*Seriell kommunikasjon begynner*/
int num [5] = 10, 20, 30, 40, 50; /*Matriseelementer med størrelse initialisert*/
display (num); /*Array -elementer som vises*/
retur 0;

void loop ()

I ovenfor kode først en ny funksjon med tomromstype blir initialisert med en matrisestørrelse på 5. For Loop skrives ut for å returnere tall fra 1 til 5 hver tidskode kjører. Legg merke til parametrene for Void Display () -funksjonen Her brukte vi full erklæring inkludert matrisestørrelse og funksjonsparametere sammen med firkantede seler [].

I sløyfedelen ved hjelp av visning (num) Vi kaller den opprinnelige funksjonen ved å gi en matrise som et argument. Her Num representerer den første elementminneadressen.

Produksjon

Utgangsvinduet viser elementene i matrisen en etter en. Bruke en for loop alle de 5 elementene i matrisen sendes til å fungere.

Konklusjon

Arduino -programmering som C ++ tillater ikke å sende en hel matrise til en funksjon, men ved å bruke en peker til en matrise ved å spesifisere navnet på den gitte matrisen kan vi enkelt sende alle matriseelementer til en funksjon fullstendig. Tre forskjellige syntaks følges for å passere en matrise for å fungere. Denne oppskrivningen vil hjelpe deg med å passere enhver rekke for å fungere inne i Arduino -skissen.