La placa Arduino MKR WIFI 1010 té una sortida analògica real a la pota A0. Això vol dir que la tensió que ens proporciona aquesta placa pot variar entre 0 i 3,3 V. El conversor de digital a analògic té una resolució de 10 bits, això vol dir que tindrem 1024 salts entre 0 i 3,3 V; és a dir, la tensió anirà variant en increments de 3,2 mV aproximadament.
La programació per fer servir la sortida analògica real és idèntica a la de les sortides analògiques PWM. Atès que les sortides PWM tenen una resolució de 8 bits, la sortida analògica real té la mateixa resolució per defecte i així s'assegura la compatibilitat. Si volem fer servir tota la resolució, l'haurem d'indicar amb la funció analogWriteResolution.
En el següent programa donem una tensió d'1,65 V (la meitat de 3,3 V) a la sortida A0 (511 és la meitat de 1023).
void loop() {
analogWriteResolution(10);
analogWrite(9, 511);
...
}
Si posem altres valors a la funció analogWriteResolution obtindrem un comportament que aparentment correspon a la resolució escollida però que realment no fa servir aquesta resolució. Per exemple, si posem 8 (valor per defecte) s'agafaran els valors que posem (entre 0 i 255) i es multiplicaran per 4 (valors entre 0 i 1020) per enviar-ho a la sortida.
En aquest web, les fotografies marcades amb [AF] són del web d'Adafruit, les marcades amb [SF] del web d'Sparkfun i les marcades amb [AU] del web d'Arduino.

Aquesta obra d'Oriol Boix està llicenciada sota una llicència no importada Reconeixement-NoComercial-SenseObraDerivada 3.0.