Nota
Ciao, benvenuto nella Community di SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts su Facebook! Approfondisci le tue conoscenze su Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.
Perché Unirsi?
Supporto da Esperti: Risolvi problemi post-vendita e sfide tecniche con l’aiuto della nostra community e del nostro team.
Impara e Condividi: Scambia consigli e tutorial per migliorare le tue competenze.
Anteprime Esclusive: Ottieni accesso anticipato a nuovi annunci di prodotti e anteprime esclusive.
Sconti Speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
Promozioni Festive e Giveaway: Partecipa a giveaway e promozioni festive.
👉 Pronto a esplorare e creare con noi? Clicca [Qui] e unisciti oggi stesso!
2.11 Ruota la Manopola
Nei progetti precedenti, abbiamo utilizzato l’ingresso digitale su Pico W. Ad esempio, un pulsante può cambiare il pin da livello basso (spento) a livello alto (acceso). Questo è uno stato di funzionamento binario.
Tuttavia, Pico W può ricevere un altro tipo di segnale di ingresso: l’ingresso analogico. Può essere in qualsiasi stato, da completamente chiuso a completamente aperto, e ha una gamma di valori possibili. L’ingresso analogico consente al microcontrollore di percepire l’intensità della luce, l’intensità del suono, la temperatura, l’umidità, ecc. del mondo fisico.
Di solito, un microcontrollore necessita di un hardware aggiuntivo per implementare l’ingresso analogico: il convertitore analogico-digitale (ADC). Ma Pico W ha un ADC integrato che possiamo usare direttamente.

Pico W ha tre pin GPIO che possono utilizzare l’ingresso analogico: GP26, GP27, GP28. Questi corrispondono ai canali analogici 0, 1 e 2. Inoltre, c’è un quarto canale analogico, che è collegato al sensore di temperatura integrato, che non sarà trattato qui.
In questo progetto, proviamo a leggere il valore analogico del potenziometro.
Componenti Necessari
In questo progetto, abbiamo bisogno dei seguenti componenti.
È sicuramente conveniente acquistare un kit completo, ecco il link:
Nome |
ELEMENTI IN QUESTO KIT |
LINK |
|---|---|---|
Kepler Kit |
450+ |
Puoi anche acquistarli separatamente dai link sottostanti.
SN |
COMPONENTE |
QUANTITÀ |
LINK |
|---|---|---|---|
1 |
1 |
||
2 |
Cavo Micro USB |
1 |
|
3 |
1 |
||
4 |
Several |
||
5 |
1(220Ω) |
||
6 |
1 |
||
7 |
1 |
Schema Elettrico

Il potenziometro è un dispositivo analogico e funziona ruotandolo in due direzioni diverse.
Collega il pin centrale del potenziometro al pin analogico GP28. Il Raspberry Pi Pico W contiene un convertitore analogico-digitale multicanale a 16 bit. Ciò significa che mappa la tensione di ingresso tra 0 e la tensione di esercizio (3.3V) su un valore intero tra 0 e 65535, quindi il valore di GP28 varia da 0 a 65535.
La formula di calcolo è mostrata di seguito.
(Vp/3.3V) x 65535 = Ap
Successivamente, programma il valore di GP28 (potenziometro) come valore PWM di GP15 (LED). In questo modo noterai che ruotando il potenziometro, la luminosità del LED cambierà contemporaneamente.
Collegamenti

Codice
Nota
Apri il file
2.11_turn_the_knob.pynel percorsokepler-kit-main/micropythono copia questo codice in Thonny, poi clicca su «Esegui Script Corrente» o semplicemente premi F5 per eseguirlo.Non dimenticare di selezionare l’interprete «MicroPython (Raspberry Pi Pico)» nell’angolo in basso a destra.
Per tutorial dettagliati, fai riferimento a Aprire ed Eseguire Codice Direttamente.
import machine
import utime
potentiometer = machine.ADC(28)
led = machine.PWM(machine.Pin(15))
led.freq(1000)
while True:
value=potentiometer.read_u16()
print(value)
led.duty_u16(value)
utime.sleep_ms(200)
Quando il programma è in esecuzione, possiamo vedere nella shell il valore analogico attualmente letto dal pin GP28. Ruota la manopola e il valore cambierà da 0 a 65535. Allo stesso tempo, la luminosità del LED aumenterà man mano che il valore analogico aumenta.
Come funziona?
potentiometer = machine.ADC(28)
Accedi all’ADC associato a una sorgente identificata dall’ID. In questo esempio è GP28.
potentiometer.read_u16()
Effettua una lettura analogica e restituisce un intero nell’intervallo 0-65535. Il valore restituito rappresenta la lettura grezza presa dall’ADC, scalata in modo che il valore minimo sia 0 e il massimo 65535.