Sto esaminando le opzioni per ADC sul Rasbperry Pi. Mi chiedo cosa sia possibile finora. Naturalmente facile ed economico è buono.
Sto esaminando le opzioni per ADC sul Rasbperry Pi. Mi chiedo cosa sia possibile finora. Naturalmente facile ed economico è buono.
Risposte:
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.
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
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
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 .
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
Una soluzione interessante qui: http://www.theremino.com/en/blog/standalone-applications/#raspberry
Non solo ADC ma qualsiasi tipo di output di input configurabile per Raspberry Pi.