Come posso collegare un convertitore da analogico a digitale (ADC)?


22

Sto esaminando le opzioni per ADC sul Rasbperry Pi. Mi chiedo cosa sia possibile finora. Naturalmente facile ed economico è buono.


A cosa ti serve?
Jivings,

@Jivings, sto pensando a un paio di progetti che possono accontentarsi di frequenze di campionamento relativamente basse.
John La Rooy,

Risposte:


15

Adafruit ha un bel tutorial sull'uso dell'MCP3008 ($ 3,75) - ADC a 10 canali a 10 canali con interfaccia SPI per controllare il volume di un file mp3, ma dovrebbe darti un buon punto di partenza per qualsiasi progetto da analogico a digitale.


1
Sia Arduino che PICAXE sono le soluzioni sbagliate qui.
Alex Chamberlain,

Non sono d'accordo sul fatto che Arduino sia la soluzione sbagliata qui. Arduino utilizza USB mentre MCP3008 utilizza SPI. Arduino è già pronto e pronto all'uso, mentre l'MCP3008 avrà bisogno di alcuni accessori e di lavoro per iniziare. L'MCP3008 è più economico, ma quando aggiungi tutte le cose di cui hai bisogno (scoppio GPIO, montaggio breadboard ...) il divario dei costi non è grande come sembra. Tutto sommato, se si desidera sperimentare e girare rapidamente su Arduino è l'opzione migliore, ma se si sta cercando un'installazione permanente, sarei d'accordo sul fatto che MCP3008 funziona meglio.
Dan B,

8

ADS1115

ADS1113, ADS1114 e ADS1115 sono convertitori analogico-digitali di precisione (ADC) con 16 bit di risoluzione offerti in un pacchetto QFN-10 ultra piccolo e senza piombo o in un pacchetto MSOP-10. ADS1113 / 4/5 sono progettati pensando a precisione, potenza e facilità di implementazione. ADS1113 / 4/5 presentano un riferimento e un oscillatore integrati. I dati vengono trasferiti tramite un'interfaccia seriale compatibile I²C; è possibile selezionare quattro indirizzi slave I²C. ADS1113 / 4/5 funzionano con un singolo alimentatore che va da 2,0 V a 5,5 V.

Innanzitutto è necessario assicurarsi che i moduli I²C siano caricati . Quindi collegare ADS1115 come mostrato di seguito. Sono disponibili 4 indirizzi diversi a seconda dell'ADDR a cui è collegato. Ciò significa che è possibile collegare un totale di 16 canali a un singolo bus I²C.

GND = 0x48, VDD = 0x49, SDA = 0x4A, SCL = 0X4B

inserisci qui la descrizione dell'immagine

Puoi vedere il risultato dell'ultima conversione in questo modo

# i2cget -y 0 0x49 0 w
0x0000

Il valore predefinito di 0x0000 viene restituito qui poiché non sono state ancora eseguite conversioni. Ora diamo un'occhiata al registro di configurazione

# i2cget -y 0 0x49 1 w
0x8385

L'LSB è il primo, quindi questo equivale a 0b1000010110000011

Vorrei fare una conversione single-ended su AIN0, quindi ho bisogno di scrivere bit [14:12] come 0b100. vale a dire0b1100010110000011

# i2cset -y 0 0x49 1 0xC385 w
# i2cget -y 0 0x49 0 w
0xa30b

L'LSB è il primo, quindi è uguale a 2979 decimale


1
questi tipi di pacchetti non sono un po 'più difficili da lavorare a causa delle dimensioni / spaziatura dei pin? Soprattutto per quelli come me con l'artrite (che limita la mia destrezza manuale.
Steve Robillard,

@SteveRobillard, sì, sono più difficili da lavorare, ma sicuramente più facili di quanto sembri. Per MSOP aiuta ad avere ingrandimento, flusso, stoppino di saldatura e una buona stazione di saldatura. Puoi fare parecchi tentativi per affrontare un angolo di MSOP con un po 'di saldatura fino a quando non sei soddisfatto del posizionamento. Le dimensioni ridotte aiutano a ridurre il rumore nel circuito, quindi vale la pena provare, potresti essere sorpreso.
John La Rooy,

1

Anche se l'uso desiderato non richiede bitrate o risoluzione super alti, probabilmente potresti semplicemente usare un Arduino. Gli Arduinos sono simpatici perché hanno un'enorme community di supporto, sono in circolazione da un po 'e comunicano tramite USB no GPIO!

Ecco un link al post sul blog di Simon Monk con le istruzioni su come comunica ad Arduino da un Raspberry Pi con Python.

Anche nel caso in cui non avessi mai sentito parlare di un Arduino prima (forse hai vissuto sotto una roccia) ecco un link alla loro pagina di introduzione e un esempio di ingressi analogici per principianti .


0

Simile all'utilizzo di un Arduino ma che ne dici di un dispositivo PICAXE, collegato a UART RPi? Questo sarebbe più piccolo e molto più economico. Per me, Arduino sembra esagerato a seconda delle tue reali esigenze.


0

Tra un mese o due (a causa della spedizione in Africa) riceverò una scheda I2C PCF8591 che ha il supporto per il cablaggio del sito WiringPi e la scheda utilizza 3.3 v (in genere) Ho ottenuto la versione WaveShare su Amazon Amazon link Da quello che ho ' ho letto, il PCF8591 è piuttosto carino ma fino a quando non ho la scheda davanti a me, non posso dire se è buono o no


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.