Come utilizzare la funzione della mappa in Arduino
La funzione MAP modifica l'intervallo del valore dato in un altro intervallo specificato indicato dall'utente. In altre parole, mappa il valore proporzionale dell'intervallo dato e possiamo chiamare questo processo la scalazzazione del valore. Per utilizzare questa funzione nell'Arduino devi seguire la seguente sintassi:
mappa (valore, da blow, fromhigh, tolow, tohigh);
La funzione della mappa ha 5 argomenti che sono:
Valore: I dati del tipo intero che devono essere scarsalizzati
Dal basso: Il numero minimo dell'attuale intervallo del valore
Dall'alto: Il numero massimo dell'attuale intervallo del valore
A basso: Il numero minimo dell'intervallo desiderato a cui è mappato il valore
In alto: Il numero massimo dell'intervallo desiderato a cui è mappato il valore
Esempio di codice Arduino per l'utilizzo della funzione mappa
Per illustrare il funzionamento della funzione MAP abbiamo controllato la luminosità del LED usando il potenziometro. Lo scopo di utilizzare la funzione MAP in questa applicazione è che il potenziometro è un valore analogico e non possiamo determinare la luminosità del LED osservando i valori del potenziometro poiché il suo valore varia da 0 a 1023. Quindi, per scalare il valore nell'intervallo da 0 a 100 abbiamo usato la funzione della mappa e abbiamo visualizzato i valori sul monitor seriale:
Ecco il codice Arduino di esempio per l'utilizzo della funzione MAP:
int pot = a0;/* perno analogico per potenziometro per controllo della luminosità a LED*/
INT LED = 6;/ * Definizione del pin LED per Arduino */
int valore = 0;/* Dichiarazione variabile per la memorizzazione del valore potenziometro*/
int ledValue = 0; /* variabile che memorizzerà il valore scarsamente del vaso*/
void setup ()
Seriale.Inizia (9600);
pinMode (LED, output); /* Definizione della modalità di output per LED*/
void loop ()
Value = analogread (pentola);/* ottenendo il valore del potenziometro*/
LedValue = map (valore, 0, 1023, 0, 100); /* scattando i valori analogici nell'intervallo da 0 a 100*/
AnalogWrite (LED, LEDValue); / * Assegnazione dei valori scarsalizzati al LED */
Seriale.print ("valore non mappato:");
Seriale.stampare (valore); // stampare i valori del vaso nel monitor seriale
Seriale.println (""); // Aggiunta di spazio per organizzare i dati
Seriale.print ("valore mappato:");
Seriale.Stampa (LedValue);/ * Visualizzazione del valore scarsamente assegnato al LED */
Seriale.print ("%");/ * Visualizza il segno parentale */
Seriale.println (""); // Aggiunta di spazio per organizzare i dati
Nel codice puoi vedere che abbiamo dato il valore attuale del potenziometro e l'intervallo attuale al potenziometro che è da 0 a 1023 (analogico) e anche, abbiamo dato l'intervallo che da 0 a 100 in cui i valori devono essere mappato.
È possibile mappare i valori in qualsiasi intervallo in quanto non vi sono limiti o condizioni per scalare il valore. Abbiamo scarsalizzato il valore da 0 a 100 per farci sapere il valore della luminosità in percentuale. Ecco l'output del nostro codice nel monitor seriale dell'IDE Arduino:
Come puoi vedere nell'immagine sopra quando il valore analogico è 1023, il valore mappato sarà 100 e poiché il valore analogico viene ridotto, anche il valore mappato diminuisce.
Conclusione
La funzione primaria della mappa () è quella di scalare o mappare i valori da un intervallo a un altro intervallo desiderato. Ai fini di illustrare il funzionamento della funzione MAP abbiamo dato il codice di esempio di Arduino che converte i valori analogici del potenziometro utilizzato per controllare la luminosità del LED nell'intervallo da 0 a 1023 a 0 a 100.