Pin ADC-CH
riguarda gli ADC (Analog-to-Digital Converter), cioè i pin analogici.
1. Cosa significa “ADCx-CH”
Ad esempio:
-
ADC1_CH0 → pin collegato al canale 0 del ADC1
-
ADC1_CH4 → pin collegato al canale 4 del ADC1
-
ADC2_CH1 → pin collegato al canale 1 del ADC2
2. Come si usa
In Arduino, per leggere un pin analogico si fa così:
int val = analogRead(GPIO_PIN); |
-
analogRead() converte il valore della tensione tra 0 e 3.3 V in un numero tra 0 e 4095 (su ESP32-S3, ADC a 12 bit di default, anche se la risoluzione interna può essere fino a 13 bit).
-
Il pin deve essere collegato a un segnale analogico, ad esempio un sensore di temperatura, un potenziometro o un anemometro analogico.
3. ADC1 vs ADC2
-
ADC1 → può essere usato liberamente da qualsiasi codice, incluso Wi-Fi.
-
ADC2 → condiviso con il Wi-Fi; se usi Wi-Fi, leggere ADC2 può dare problemi.
→ Quindi se vuoi leggere valori analogici mentre usi Wi-Fi, meglio usare ADC1.
4. Pin ADC comuni sull’ESP32-S3
Esempio dei canali ADC1 su GPIO dell’ESP32-S3:
GIO1 - ADC1_CH0
GIO2 - ADC1_CH1
GIO3 - ADC1_CH2
GIO4 - ADC1_CH3
GIO5 - ADC1_CH4
GIO6 - ADC1_CH5
GIO7 - ADC1_CH6
GIO8 - ADC1_CH7
GIO9 - ADC1_CH8
GIO10 - ADC1_CH9
GIO11 - ADC2_CH0
GIO12 - ADC2_CH1
GIO13 - ADC2_CH2
GIO14 - ADC2_CH3
GIO15 - ADC2_CH4
GIO16 - ADC2_CH5
GIO17 - ADC2_CH6
GIO18 - ADC2_CH7
GIO19 - ADC2_CH8
GIO20 - ADC2_CH9
In realtà sono 20 10 ADC1 e 10 ADC2
⚠️ Nota pratica importante:
-
ADC1 è completamente libero da conflitti: puoi usarlo sempre, anche se stai usando Wi-Fi.
-
ADC2 invece condivide risorse con il Wi-Fi. Se stai trasmettendo via Wi-Fi o Bluetooth, leggere i pin ADC2 può dare valori inattendibili o instabili.
|