Implementazione di I2C su analogico


8

Come posso implementare (o forse c'è un IC che già lo fa) una scheda il cui ingresso sarebbe I2C e l'uscita sarebbe una tensione analogica (0 V - 5 V)?

Alla fine vorrei collegare un paio di quelli ai pin IO di un arduino creando efficacemente uscite da digitale ad analogico.

Risposte:


11

Considera che il Microchip TC1321 è un convertitore I2C da digitale ad analogico (DAC) con 10 bit di risoluzione (4,88 mV / passo), disponibile in SOIC8 (avrai bisogno di una scheda adattatore facile da saldare [es. Sparkfun o futurlec's ) e funziona da 5 volt. Se stai bene con solo 8 bit (19,5 mV / passo) considera il TC1320 .

Entrambi i chip sono disponibili da Mouser o Microchip Direct per circa $ 2.

Se puoi usare SPI invece di I2C, le tue opzioni sono più facili, MCP4821 e MCP4822 sono chip DAC SPI singoli e doppi forniti in simpatici pacchetti PDIP8. Di nuovo costano circa $ 2 dai soliti posti (mouser, digikey, microchip direct, farnell).


Perché non mettere gli URL reali sotto, il testo principale nello stile delle note a piè di pagina?
Amos,

@Amos, perché il formatter fa un buon lavoro nel riconoscere gli URL in molti formati, e il filtro "nuovo utente" colpisce il conteggio (collegamenti)> 1, indipendentemente dalla loro formattazione. Ho perso una risposta esauriente il primo giorno per lo stesso motivo (l'ho pubblicato e non ho visto il messaggio di errore).
Craig Trader,

Giusto, non me ne ero reso conto.
Amos,

È un convertitore digitale-analogico, non analogico-digitale.
endolito il

E dovresti essere in grado di modificare il tuo post e aggiungere i collegamenti ora che hai una certa reputazione.
endolito il

7

A seconda di ciò che stai guidando, se hai un Arduino hai già da tre a sei uscite analogiche, in quanto puoi utilizzare la funzione AnalogWrite per impostare il duty cycle dei pin PWM. La frequenza è di circa 490 Hz, più che sufficiente per i LED (di nuovo, dipende dalla vostra applicazione). È possibile impostare il valore da 0 a 255, ottenendo una risoluzione di (5v / 256 =) .020V.

È necessario determinare se 490 Hz è una frequenza sufficiente, ma PWM viene utilizzato per simulare la tensione analogica per molte applicazioni e potrebbe adattarsi alla propria senza parti aggiuntive o programmazione.

Puoi anche considerare l'uso di un filtro (rete condensatore-resistore) per appianare l'onda quadra. Ti darà più margine di manovra nelle applicazioni che puoi controllare e i passivi sono economici, ma a seconda della tua applicazione potrebbe non essere nemmeno necessario.

http://www.arduino.cc/en/Reference/AnalogWrite



3

Proprio per questo, un AVR (il chip utilizzato in un Arduino) può già produrre tensioni 'analogiche' usando PWM + un condensatore per rendere uniforme la forma d'onda (il condensatore non è nemmeno necessario in alcuni casi). Non è all'alta risoluzione di un chip DAC dedicato, ma è abbastanza buono per molte esigenze.


1

Ecco una voce di Wikipedia sui potenziometri digitali. Queste pentole digitali possono fungere da uscita analogica sull'arduino. Agirebbe come un normale potenziometro che attraversa tutte le tensioni da 0 a 5 V attraverso comandi seriali (di qualche tipo). Se non dovessi avere I2C, potresti usare questo pot digitale di Parralax o questo chip di Jameco. Gli unici chip I2C che ho visto sono tutti a montaggio superficiale anziché a foro passante, questo li rende più difficili da lavorare con e. Ecco il link a tutti i potenziometri digitali I2C di Jameco. Spero sia stato utile e buona fortuna!


2
Le pentole digitali sono generalmente utilizzate per impostare il guadagno o l'attenuazione di un circuito esterno in pochi passaggi discreti (256). Per ottenere una tensione CC da esso, dovresti collegarlo a una fonte di tensione, ma in realtà non è l'applicazione per cui sono pensati. Un DAC, d'altra parte, emette direttamente una tensione e generalmente avrà molti più passaggi e una maggiore precisione. Un DAC è ciò che questo poster sta cercando.
endolito il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.