Come posso estendere il numero di pin analogici (input) disponibili per me?


26

So già come estendere il numero di pin digitali su un Arduino usando un multiplexer.

Voglio aumentare il numero di canali di ingresso analogico che ho. Una soluzione è aggiungere un altro Arduino come slave.

Come potrei aumentare il numero di canali di ingresso analogici? (Presumo che siano coinvolti alcuni MUXing e ADC). Se è troppo complicato scrivere in una risposta, andrebbe bene anche uno schema generale di circuito / codice.

Sono anche aperto a proteggere i suggerimenti, anche se lo preferirei se ci fosse una soluzione hardware non troppo dura.


Risposte:


32

Se hai già familiarità con i chip multiplexer digitali, buone notizie! Possono essere utilizzati anche per segnali analogici.

http://playground.arduino.cc/Learning/4051

La premessa di base è esattamente come con il multiplexing del segnale digitale. Si utilizza il chip 4051 come "cambia-corsia" e si legge il segnale di qualunque corsia in cui si dice al chip di passare. il 4051 utilizza 3 pin digitali e 1 pin analogico (o digitale) aggiuntivo sull'arduino per creare fino a 8 corsie di input. Alcuni multiplexer sono concatenabili, quindi puoi facilmente aggiungere altri 8 segnali senza dover continuare a portarli via dall'Arduino stesso.

È esattamente come la tecnica che già conosci per i segnali digitali, basta collegare il canale da cui leggi a un pin analogico invece che a uno digitale, quindi scorrere gli stati binari e leggere i valori analogici.

Ho fatto una gif animata per te.

inserisci qui la descrizione dell'immagine


3
Mentre il link risponde alla domanda, potresti elaborare un po '? Scrivi sul circuito in breve? (Link solo le risposte sono scoraggiate sulla rete)
Manishearth

Va bene. Risposta espansa.
Steve Cooley,

3
Un chiarimento, il 4051 che citi è un mux analogico non un mux digitale, chiarirei nella tua risposta perché ci sono sicuramente mux digitali che non possono farlo perché i loro driver di output e input non sono progettati per una risposta lineare. Forse vale la pena aggiungere che il concatenamento di mux analogici può influire sul segnale in base alle caratteristiche del mux
naven87

1
Vale la pena notare che i mux analogici non sono banali da selezionare, il progettista dovrebbe prendere in considerazione l'oscillazione di tensione (la maggior parte opera solo all'interno della gamma di alimentazione, come opamps), larghezza di banda, resistenza ON, diafonia, ecc. Ecc., L'oscillazione di tensione è il potenziale più grande mostra tappo.
Mister Mystère,

Credo che puoi anche usare il pin digitale per alimentare un sensore, quindi basta attivare un pin digitale per rilevare VCC e condividere lo stesso analogo.
Ciasto piekarz,

10

Potrebbe essere importante ricordare che il chip ATmega dell'Arduino stesso utilizza un MUX analogico. I chip basati su Uno (ATmega328) hanno solo un singolo ADC. I 6 ingressi analogici sono in realtà un MUX che si collega a quell'ADC.

Ecco perché puoi leggere solo 1 ingresso analogico alla volta.

Quando si espandono gli ingressi analogici, potrebbe essere necessario considerare quanto tempo ci vuole per eseguire tutto questo MUXing e se sono necessari o meno ADC esterni aggiuntivi nella propria applicazione.


1

Considera questo: aggiungi ATtiny 85 con comunicazione seriale con Arduino, usa 2 pin per Rx, Tx e hai altri 3 pin che possono essere usati come analogici. In questo modo puoi sviluppare il tuo protocollo, ATtiny può elaborare l'algoritmo e inviare le informazioni elaborate ad Arduino, è anche molto economico, l'ho provato da solo, è una bella architettura, penso.

Buona giornata

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.