Fondamenti · Lezione 7 di 11 · circa 10 min
ADC: leggere il mondo analogico
Da una tensione a un numero
Temperatura, luce e pressione cambiano in modo continuo, ma la CPU capisce solo i numeri. Il convertitore analogico-digitale (ADC) scatta istantanee di una tensione e arrotonda ognuna al gradino più vicino.
- La risoluzione indica quanto sono fini i gradini. Un ADC a 12 bit ha 4096 gradini: circa 0,8 mV ciascuno a 3,3 V.
- La frequenza di campionamento indica quanto spesso scatta un’istantanea. Troppo lenta, e i cambiamenti rapidi vanno persi.
uint16_t raw = HAL_ADC_GetValue(&hadc1); // 0 .. 4095
float volts = raw * 3.3f / 4095; // 2048 -> 1.65 V
// volts -> temperature, light, pressure: the formula is in the sensor's datasheet
Domande da colloquio
- Che cosa limita la precisione di una lettura ADC?
- Che cosa succede se campioni un segnale troppo lentamente?
- Come si converte una lettura grezza a 12 bit in volt?
Qui non ci sono le risposte, apposta: prova prima a rispondere ad alta voce. Nell’app BoardPilot l’allenatore per i colloqui legge la tua risposta e ti dice cosa era giusto, cosa manca e cosa chiederebbe dopo un intervistatore senior (usa il fornitore di IA che scegli nell’app). Domande da colloquio sui sistemi embedded →
Parole chiave
ADC (convertitore analogico-digitale) Risoluzione dell’ADC Frequenza di campionamento DAC (convertitore digitale-analogico) Datasheet HAL (hardware abstraction layer)
Nell’app le lezioni prendono vita
Nell’app le lezioni hanno demo interattive ed esercitazioni pratiche verificate sulla tua scheda. Queste pagine sono la versione da leggere: le demo sono descritte a parole e le esercitazioni richiedono l’app.