Nota
Ciao, benvenuto nella Community SunFounder Raspberry Pi & Arduino & ESP32 su Facebook! Approfondisci le tue conoscenze su Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.
Perché unirti?
Supporto Esperto: Risolvi problemi post-vendita e sfide tecniche con l’aiuto della nostra community e del nostro team.
Impara & Condividi: Scambia suggerimenti e tutorial per migliorare le tue abilità.
Anteprime Esclusive: Ottieni accesso anticipato ai nuovi annunci di prodotti e anteprime.
Sconti Speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
Promozioni Festive e Omaggi: Partecipa a promozioni e omaggi durante le festività.
👉 Pronto a esplorare e creare con noi? Clicca su [Qui] e unisciti oggi!
5.6 Map¶
Se osservi attentamente, noterai che molti valori hanno intervalli diversi in programmazione. Ad esempio, l’intervallo di valori per gli ingressi analogici è (0~1023). L’intervallo di valori per l’uscita analogica è (0~255). L’angolo di uscita del servo è (0~180).
Questo significa che, se vogliamo utilizzare il potenziometro per controllare la luminosità del LED o l’angolo del servo, dobbiamo eseguire un’operazione di mappatura.
Ora vediamo come farlo.
Componenti Necessari
In questo progetto, abbiamo bisogno dei seguenti componenti.
È sicuramente conveniente acquistare un intero kit, ecco il link:
Nome |
ELEMENTI IN QUESTO KIT |
LINK |
|---|---|---|
3 in 1 Starter Kit |
380+ |
Puoi anche acquistarli separatamente dai link qui sotto.
INTRODUZIONE AI COMPONENTI |
LINK PER L’ACQUISTO |
|---|---|
Schema Elettrico
Collegamenti
Codice
Nota
Apri il file
5.6.map.inonel percorso3in1-kit\basic_project\5.6.map.Oppure copia questo codice nell”Arduino IDE.
Oppure carica il codice tramite il Arduino Web Editor.
Dopo aver caricato correttamente il codice, puoi ruotare avanti e indietro il potenziometro, e l’albero di uscita del servo ruoterà avanti e indietro.
Come funziona?
map(value, fromLow, fromHigh, toLow, toHigh): Mappa un numero da un intervallo a un altro.
Ovvero, un valore da fromLow viene mappato a toLow, e un valore da fromHigh viene mappato a toHigh.
- Sintassi
map(value, fromLow, fromHigh, toLow, toHigh)
- Parametri
value: il numero da mappare.
fromLow: il limite inferiore dell’intervallo corrente.
fromHigh: il limite superiore dell’intervallo corrente.
toLow: il limite inferiore dell’intervallo di destinazione.
toHigh: il limite superiore dell’intervallo di destinazione.
Se il potenziometro controlla il LED, puoi anche usare la mappatura per completare il compito.
int x = analogRead(knob);
int y = map(x,0,1023,0,255);
analogWrite(led,y);
Note e Avvertenze
Il «limite inferiore» di entrambi gli intervalli può essere maggiore o minore del «limite superiore», il che significa che la funzione
map()può essere utilizzata per invertire un intervallo di numeri.y = map(x,0,180,180,0);
La mappatura funziona anche bene per i numeri negativi.
y = map(x,0,1023,-90,90);
La mappatura utilizza numeri interi e le cifre decimali dei numeri a virgola mobile vengono scartate.