Come passare l'array a una funzione Arduino

Come passare l'array a una funzione Arduino
La programmazione Arduino utilizza array per archiviare più valori di dati dello stesso tipo di dati, le matrici sono come variabili. Sia array che variabili sono una specie di contenitore, ma gli array hanno divisori all'interno dei contenitori per archiviare più dati. L'unica cosa da notare è che gli array possono archiviare solo dati con lo stesso tipo di dati. Vediamo come passare un array alle funzioni.

Array di passaggio per funzionare in Arduino

La programmazione Arduino non consente di passare direttamente un intero array come argomento di funzione. Tuttavia, un puntatore può essere passato a un array specificando il suo nome.

Per passare gli array a dimensioni singole come argomento di funzione dobbiamo considerare seguendo tre dati date sintassi. Tutti e tre subiranno lo stesso risultato e diranno all'IDE che sta arrivando un puntatore.

Sintassi 1: Un puntatore con parametri formali.

returnType functionName (DataType *param)

Sintassi 2: Un puntatore con un array di dimensioni.

returnType functionName (DataType Param [10])

Sintassi 3: Un puntatore con un array non ritenuto.

returnType functionName (DataType param [])

Possiamo passare l'array alla funzione Arduino usando due metodi diversi:

  • Passa Array per tipo di array
  • Pass Array per tipo di punta

Passa Array per tipo di array

Ora in questo metodo passeremo un array a una funzione come argomento di quella funzione. Facciamo un esempio per capire come passare un array a una funzione.

Codice di esempio

void display (int num [5]) /*Il display della funzione è inizializzato* /
Seriale.println ("Elementi di array di stampa:");
per (int i = 0; i < 5; ++i) /*For loop to print array elements*/
Seriale.print ("elemento");
Seriale.stampa (i+1); /*Condizione per aumentare il numero dell'elemento ogni codice temporale eseguito*/
Seriale.stampa(": ");
Seriale.println (num [i]); /*Il numero dell'elemento è stampato*/


void setup ()
Seriale.Inizia (9600); /*Inizia la comunicazione seriale*/
int num [5] = 10, 20, 30, 40, 50; /*Elementi array con dimensioni inizializzate*/
display (num); /*Elementi array visualizzati*/
restituzione 0;

void loop ()

Nel codice sopra prima una nuova funzione con il tipo di ritorno void è inizializzata con una dimensione dell'array di 5. Per loop è stampato per restituire i numeri da 1 a 5 ogni codice temporale. Si noti che i parametri della funzione Display void () Qui abbiamo utilizzato la dichiarazione completa, inclusi i parametri della dimensione e della funzione dell'array insieme alle parentesi graffe [].

Nella parte del loop usando display (num) Chiamiamo la funzione originale passando un array come argomento. Qui Num rappresenta l'indirizzo di memoria del primo elemento.

Produzione

La finestra di output mostra gli elementi dell'array uno per uno. Utilizzando un ciclo per loop tutti i 5 elementi di array vengono passati per funzionare.

Conclusione

La programmazione Arduino come C ++ non consente di passare un intero array a una funzione, tuttavia usando un puntatore a un array specificando il nome dell'array dato possiamo facilmente passare qualsiasi elemento di array a una funzione completamente. Vengono seguite tre diverse sintassi per passare un array per funzionare. Questo articolo ti aiuterà a passare qualsiasi array per funzionare all'interno dello schizzo Arduino.