Domanda:
Pin su un Arduino
mad_z
2009-11-03 03:37:45 UTC
view on stackexchange narkive permalink

Se sto esaurendo i pin su un Arduino, a corto di acquistare un secondo o ottenere una scheda Mega, c'è un modo per connettersi di più a una scheda? Devo preoccuparmi di sovraccaricarlo?

Otto risposte:
bpijls
2009-11-03 04:19:47 UTC
view on stackexchange narkive permalink

Hai esaurito anche tutti i tuoi pin analogici? Possono anche essere usati come input / output digitali semplicemente riferendoli ad essi come pin digitali da 14 a 19.

Dopo averli usati anche tutti potresti considerare di usare un IC del registro a scorrimento. Questi chip convertiranno i dati seriali in dati paralleli. Le versioni a 8 bit prenderanno dati seriali su tre pin e trasmetteranno dati paralleli su 8 pin, offrendoti 5 pin extra. Una spiegazione molto carina è fornita da Dave Clausen di NYC Resistor.

Esiste effettivamente la possibilità di sovraccaricare il tuo arduino. Non usando troppi pin, ma attingendo troppa corrente dai pin, collegando troppa roba ai tuoi pin. Il datasheet di Atmega168 dice che i pin hanno una corrente massima assoluta di 40mA. Questo sarebbe equivalente a due LED in parallelo. Qualunque cosa più di un LED (20mA) dovrebbe essere commutato attraverso un transistor o un array di transistor. Questo è spiegato anche nel video menzionato sopra e da Tom Igoe.

Inoltre, l'ATMega168 ha una corrente massima di 200mA attraverso i pin Vcc e Gnd (ciascuno), quindi anche pilotare o affondare più di dieci LED attraverso un Arduino è probabilmente una cattiva idea (data la corrente comune di 20mA usata per accendere i LED).
zklapow
2009-11-28 15:01:13 UTC
view on stackexchange narkive permalink

Sparkfun vende un multiplexer digitale / analogico che consente di controllare 16 pin da cinque su Arduino. È bidirezionale quindi puoi anche usarlo per l'input.

Adam
2009-11-03 05:07:50 UTC
view on stackexchange narkive permalink

Ci sono molte opzioni per espandere il numero di input e output disponibili. Per un ingresso analogico è comune utilizzare multiplexer analogici (come 4051, disponibile come 74HC4051 e CD4051) che consentono di commutare tra 8 sorgenti analogiche utilizzando 3 linee digitali e 1 ingresso analogico.

Un'opzione comunemente utilizzata per l'IO digitale è l'aggiunta di registri a scorrimento TTL (o CMOS). I registri a scorrimento sono disponibili in due varietà principali, "serial in, parallel out" (come 74HC595) che sono utili per estendere il numero di uscite digitali del progetto e "parallel in, serial out" ( come 74HC165) che ti consente di aggiungere più ingressi digitali.

Tom Igeo ha una bella recensione su Controllo di molti output da un microcontoller

Puoi sovraccaricare l'output di Arduino provando a 'fanout' troppo lontano. Ciascun circuito integrato collegato a un'uscita assorbe corrente da quell'uscita. Se carichi molti circuiti integrati sulla stessa uscita (o set di uscite) potrebbero provare a disegnare più di quanto gli output di Arduino possono gestire. Per ovviare a questo problema puoi posizionare chip buffer non invertenti (come il 74LS07) tra alcuni circuiti integrati.

ka1kjz
2009-11-03 10:30:21 UTC
view on stackexchange narkive permalink

Sto giocando con questo ... http://www.neufeld.newton.ks.us/electronics/?p=241 Espansione I / O di Arduino usando I2C. Sembra davvero promettente, non sono ancora riuscito a ordinare le patatine. È anche un ottimo tutorial sull'uso di I2C.

Some Guy on the Internet
2009-11-03 15:47:50 UTC
view on stackexchange narkive permalink

Se si finisce per ottenere un altro microcontrollore, mi piace sanguino per almeno quattro motivi:

  1. ha un sacco di I / O in più rispetto all'Atmega 168 / 368 (32 scopi generali, da 14). Come l'Arduino, 8 pin possono fare ADC, 6 possono farePWM, ma c'è un'ulteriore porta seriale hardware.
  2. costa $ 5 in meno *,
  3. con 64K di flash, non mi avvicino mai di esaurire la memoria e
  4. puoi metterlo insieme da solo da un kit.

Arduino Mega ha più PWM pin - 14, ma non credo che li multiplexeresti.

-

* Sanguino sembra andare per $ 25, Arduino per $ 30, anche se ti servirà un cavo da $ 20 da USB a TTL se è necessario utilizzare una porta USB per programmarlo, dove Arduino ha USB integrato.

Dustin
2009-11-28 11:09:49 UTC
view on stackexchange narkive permalink

Ho scritto una libreria per controllare gli interruttori a 1 filo DS2406.

Con uno di questi, puoi usare un singolo pin per cambiare un numero molto maggiore di dispositivi. Ovviamente sarà più lento che capovolgere direttamente il pin IO e utilizzerà più memoria poiché devi indirizzare i dispositivi su quella porta (questo può essere scambiato per una maggiore velocità se lo desideri).

Eric
2009-11-03 04:22:44 UTC
view on stackexchange narkive permalink

Se stai guidando LED, potresti considerare il charlieplexing.

Michael
2010-03-07 01:56:15 UTC
view on stackexchange narkive permalink

Questo prodotto è un modo semplice ed economico per aggiungere pin al tuo Arduino. Esiste una libreria open source di facile utilizzo per l'accesso ai nuovi pin:

http://nootropicdesign.com/ez-expander/



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 2.0 con cui è distribuito.
Loading...