Arduino Uno R3, quanti bit?

Ciao a tutti, ho un Arduino Uno R3 dal quale voglio trasformare un segnale PWM in segnale analogico con un DAC.
Ho trovato i DAC ma sono disponibili da 8bit, da 10bit, da 12bit.

La domanda è: come faccio a scegliere se utilizzare 8 o 10 o 12 bit?

che risoluzione vuoi ottenere?
Con 8 bit hai 256 scelte, 10 bit -> 1024 e con 12 bit -> 4096

Sarebbe ottimo ottenere 1024 (10 bit) ma appunto non so se posso utilizzare un DAC da 10bit sul mio Arduino Uno R3.

non ho ben chiare alcune cose:

  1. se ad esempio Arduino ha una risoluzione da 8bit, io posso ugualmente utilizzare un DAC esterno da 10bit?
  2. la risoluzione di Arduino dipende proprio dalla struttura dell'Atmega328P o dal codice al suo interno?

il DAC è un hardware esterno con un'interfaccia di programmazione come I2C.

ecco un esempio

Non avendo alcuna preparazione in programmazione...il DAC che devo utilizzare deve essere gia bello e pronto, solo da saldare...

Dipende da cosa vuoi farci. A volte può bastare una resistenza e un condensatore.

Ciao,
P.

Ma non sei studente in informatica?

Scegli un DAC di cui sei certo ci sia una libreria per Arduino

Libreria Arduino?
Io veramente ho intenzione di utilizzare un DAC non "I2C", bensì un integrato gia pronto per trasformare una frequenza PWM in uscita analogica 0-5 volt.
Quindi non programmabile.

La risoluzione del segnale PWM in uscita di Arduino non può essere aumentata da una circuito esterno, se è da 8 bit rimane a 8 bit , se è a 10 bit rimane a 10 bit, se vuoi ottenere una risoluzione a 12 bit puoi utilizzare un clone di Arduino UNO cinese che usa un altro processore, il LGT8F328P, tra l'altro costa anche meno ed esiste il compilatore per l'ambiente Arduino, io lo ho usato e non ho trovato grossi problemi

1 Like

voglio trasformare un segnale PWM in segnale analogico con un DAC

ho intenzione di utilizzare un DAC non "I2C", bensì un integrato gia pronto per trasformare una frequenza PWM in uscita analogica 0-5 volt

Un segnale PWM si trasforma in "analogico" con un filtro passa basso (che in sostanza ne fa la media), non con un DAC (https://forum.arduino.cc/t/trasformare-uscita-pwm-di-arduino-in-uscita-analogica/853703/17)

Ho trovato i DAC ma sono disponibili da 8bit, da 10bit, da 12bit.

Quali?

Ti sbagli Claudio...
E' vero che con un filtro RC si puo trasformare un segnale PWM in analogico ma per calcolare i valori di RC occorre avere molta preparazione.
Non diamo false informazioni

Vuoi entrare in un DAC con un segnale PWM... cioè non vuoi partire come si fa normalmente da un valore binario da dare al DAC. E la questione "campioni al secondo" da generare (aka banda passante) ? Mi sembra che il filtro RC sia al momento il minore dei problemi. Per questo sto aspettando la risposta su quale DAC hai trovato con ingresso PWM.

Per quanto riguarda l'RC basta realizzare un filtro di ordine elevato (4 o 5, mettendo in serie più filtri di primo ordine separati da stadi buffer) con frequenza di taglio un decimo di quella del PWM):

Vcc deve essere non minore di 7V.

@Jumpereset è vero che esistono anche degli integrati che prendono in ingresso un segnale PWM e danno in uscita una tensione analogica (ad esempio questo della Analog Devices).

La vera domanda è, che senso ha questo passaggio inutile in più sul circuito di uscita? E' un vincolo e se si perché?

Hai una MCU che con segnali digitali può velocemente (e semplicemente) "dialogare" con DAC I2C o SPI molto più disponibili, economici e performanti!

MCU >> PWM >> DAC >> VOut
vs
MCU >> DAC >> Vout

Non c'è partita....

In tal caso la risoluzione in bit del DAC è l'ultimo dei tuoi problemi, in quanto il segnale di controllo, se parte da Arduino Uno R3, è a 8 bit (il PWM) alla fonte e tale rimane, anche se metti un DAC a 24 bit dopo.