Pin ADC-CH

 

riguarda gli ADC (Analog-to-Digital Converter), cioè i pin analogici.


1. Cosa significa “ADCx-CH”

  • ADCx → indica quale dei due ADC interni stai usando:

    • ESP32-S3 ha 2 ADC a 13 bit: ADC1 e ADC2.

  • CH → indica il canale interno dell’ADC associato a un pin specifico.

    • Ogni pin analogico è collegato a un canale dell’ADC.

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.

    • Quindi per sensori analogici stabili in progetti con Wi-Fi, meglio usare solo ADC1.