Pins en un Arduino

7

Si me estoy quedando sin pines en un Arduino, a falta de comprar un segundo o de obtener una tarjeta Mega, ¿hay alguna manera de estar más conectado a la tarjeta? ¿Debo preocuparme por sobrecargarla?

    
pregunta mad_z

8 respuestas

12

¿También has usado todos tus pines analógicos? También se pueden utilizar como entrada / salida digital simplemente refiriéndose a ellos como pines digitales 14 a 19.

Después de usarlos todos también, puede considerar usar un IC de registro de desplazamiento. Estos chips convertirán los datos en serie en datos paralelos. Las versiones de 8 bits tomarán datos en serie en tres pines y emitirán datos en paralelo en 8 pines, lo que le otorga 5 pines adicionales. Una muy buena explicación la realiza Dave Clausen en la Resistencia de la Ciudad de Nueva York .

En realidad, existe la posibilidad de sobrecargar tu arduino. No utilizando demasiados pines, sino extrayendo demasiada corriente de los pines, conectando demasiadas cosas a sus pines. La hoja de datos de Atmega168 dice que los pines tienen una corriente máxima absoluta de 40 mA. Esto sería equivalente a dos LEDs en paralelo. Cualquier cosa más que un LED (20mA) debe cambiarse a través de un transistor o matriz de transistores. Esto también se explica en el video mencionado anteriormente y en Tom Igoe .

    
respondido por el bpijls
5

Sparkfun vende un multiplexor digital / analógico que permite que 16 pines estén Controlado por cinco en el Arduino. Es bidireccional, por lo que también puede usarlo para la entrada.

    
respondido por el zklapow
3

He estado jugando con el uso de este ... enlace Arduino I / O Expansión utilizando I2C. Parece realmente prometedor, no he llegado a ordenar las fichas todavía. También es un muy buen tutorial sobre el uso de I2C.

    
respondido por el ka1kjz
3

Si terminas por otro microcontrolador, me gusta el sanguino por al menos cuatro razones:

  1. tiene un montón más de E / S que la Atmega 168/368 (32 propósito general pasadores, hasta de 14). Como el Arduino, 8 pines pueden hacer ADC, 6 pueden hacer PWM, pero hay un adicional puerto serie de hardware.
  2. es $ 5 más barato *,
  3. con 64K de flash, ni siquiera vengo     cerca de quedarse sin memoria, y
  4. puedes hacerlo tú mismo     de un kit.

El Arduino Mega tiene más pines PWM - 14, pero no creo que los multiplexes.

-

* Sanguino parece ir por $ 25, Arduino por $ 30, aunque necesitará un cable USB a TTL de $ 20 si necesita usar un puerto USB para programarlo, donde Arduino tiene USB incorporado.

    
respondido por el Some Guy on the Internet
3

Escribí una biblioteca para controlar los conmutadores 1wire DS2406.

Con uno de estos, puedes usar un solo pin para cambiar un número mucho mayor de dispositivos. Por supuesto, será más lento que voltear el pin IO directamente, y usará más memoria, ya que tiene que dirigir los dispositivos a través de ese puerto (esto puede cambiarse por más velocidad si lo desea).

    
respondido por el Dustin
3

Hay muchas opciones para ampliar la cantidad de entradas y salidas que tiene disponibles. Para una entrada analógica es común usar multiplexores analógicos (como el 4051 , disponible como 74HC4051 y CD4051) que permiten cambiar entre 8 fuentes analógicas utilizando 3 líneas digitales y 1 entrada analógica.

Una opción comúnmente utilizada para IO digital es agregar registros de desplazamiento TTL (o CMOS). Los registros de turnos vienen en dos variedades principales, el "serial in, paralelo out" (como el 74HC595 ) que son útiles para ampliar el número de salidas digitales que tiene su proyecto y "entrada paralela, salida en serie" (como 74HC165 ) que le permite agregar más entradas digitales.

Tom Igeo tiene un buen resumen en Control de muchas salidas de un microcontrolador

Puedes sobrecargar la salida de Arduino intentando 'fanout' demasiado lejos. Cada IC que se conecta a una salida extrae la corriente de esa salida. Si carga muchos circuitos integrados en la misma salida (o conjunto de salidas), podrían intentar dibujar más de lo que pueden manejar las salidas de Arduino. Para solucionar este problema, puede colocar chips de búfer sin inversión (como el 74LS07) entre algunos de los circuitos integrados.

    
respondido por el Adam
2

Si está conduciendo LEDS, puede que tenga que ver con charlieplexing.

    
respondido por el Eric
1

Este producto es una forma sencilla y económica de agregar pins a su Arduino. Hay una biblioteca de código abierto fácil de usar para acceder a los nuevos pines:

enlace

    
respondido por el Michael

Lea otras preguntas en las etiquetas