Pages: [1]   Go Down
Author Topic: Añadir I/O a arduino  (Read 3274 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Jr. Member
**
Karma: 0
Posts: 70
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Muy buenas,

Tengo una duda sobre como añadir entradas/salidas a Arduino.
Quiero probar lo siguiente:

- Añadir entradas digitales
- Añadir salidas digitales
- Añadir salidas PWM
- Añadir entradas analógicas

No hace falta hacerlo todo con el mismo chip.

He visto que para hacer estos se usan multiplexores/demultiplexores, pero no entiendo muy bien su funcionamiento:
- Cuando se escribe una salida digital, el valor permanece escrito mientras se realizan otras operaciones??? (Es decir es bi-estable?)
A mi me interesa que sea bi-estable.

Que chip me recomendarias?
Algún tutorial?
Logged

Chile
Offline Offline
Edison Member
*
Karma: 35
Posts: 1251
Arduino rocks?
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Para que necesitas mas I/O? opciones fáciles hay como usar un Arduino Mega o simplemente comprar otro atmega368 (por 2 usd ya tienes duplicadas todas las patas del arduino, sólo lo energizas, conectas rx/tx y usas el oscilador interno de 8 mhz)
Logged

My website: http://ried.cl

Offline Offline
Jr. Member
**
Karma: 0
Posts: 70
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Gracias por responder eried.

Primero lo quería porque nunca había hecho multiplexación, y como quiero aprender lo mejor es practicarlo.
La idea no obstante es montar mi propio arduino partiendo de un chip Atmega 1284p, pues tiene mucha más RAM y flash que el 368.

Lo que me dices de conectar otro Atmega, como se hace? He hecho alguna práctica de comunicación entre dos Mega con los puertos RX/TX, pero era un poco lento y había que configurar el puerto de modo que pasaba a esperar recibir datos.
Yo lo que necesito es conectar un panel de control que tiene 26 botones (26 inputs), 4 outputs a motores paso a paso, y 31 outputs más generales (luces de los botones, etc.). Aparte de 4 entradas analógicas.
Aparte de una pantalla LCD en paralelo para la que necesito 8 outputs digitales.

Por lo tanto lo único que me "cabe" es un mega, pero soldar el chip del mega "a pulso" es muy difícil, no me veo capaz. A parte después de armar toda la placa, es mucho más fácil sustituir el chip del 1284p puesto en zócalo por si algo se estropea.
Logged

Chile
Offline Offline
Edison Member
*
Karma: 35
Posts: 1251
Arduino rocks?
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

¿Para que necesitas tanta memoria? no será mejor optimizar el código?

O quizas migrar a otra plataforma, como algo que corra linux embedded, netduino o algo así?
Logged

My website: http://ried.cl

0
Offline Offline
Edison Member
*
Karma: 8
Posts: 1040
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Estos links te ayudaran.

http://www.arduino.cc/es/Tutorial/ShiftOut
http://www.arduino.cc/playground/Code/I2CPortExpander8574
http://code.google.com/p/i2c-adc-ads7828/
http://www.arduino.cc/playground/learning/TLC5940
Logged

Trabajando en ...

    * Control Domotico (En montaje ...)
    http://casitadomotica.blogspot.com/
 

[url=https://bitbucket.org/fmalpartida

Cordoba
Offline Offline
God Member
*****
Karma: 38
Posts: 648
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

podes usar el pca9555 que te da 16 entras o salidas como las combines, y por bus podes tener hasta 4 de estos y se maneja por i2c.
Podes pedir muestra a Texas Instrument.
Tiene una linea de interrupcion que te avisa de cambios en las entradas para atenerlo antes que otro
Logged

El que pregunta aprende, el que responde aprende a responder.

Offline Offline
Jr. Member
**
Karma: 0
Posts: 70
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset


Gracias, el lunes me pongo a ello.
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 70
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

podes usar el pca9555 que te da 16 entras o salidas como las combines, y por bus podes tener hasta 4 de estos y se maneja por i2c.
Podes pedir muestra a Texas Instrument.
Tiene una linea de interrupcion que te avisa de cambios en las entradas para atenerlo antes que otro

Generalmente compro todo el material a RS, y veo que la ref. que me indicas no está en stock, puedo usar http://es.rs-online.com/web/p/expansores-e-s/6811143/ en sustitución???
Logged

Cordoba
Offline Offline
God Member
*****
Karma: 38
Posts: 648
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

si se puede, hacen los mismo, pero lei aca en el foro que es mas facil de manejar los pca o pcf de texas o nxp.
Tambien podes usar el pcf8575.
Logged

El que pregunta aprende, el que responde aprende a responder.

0
Offline Offline
Edison Member
*
Karma: 8
Posts: 1040
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Puedes usar un MCP23016 sin problemas.
Logged

Trabajando en ...

    * Control Domotico (En montaje ...)
    http://casitadomotica.blogspot.com/
 

[url=https://bitbucket.org/fmalpartida

Offline Offline
Jr. Member
**
Karma: 0
Posts: 65
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Puedes usar   Multiplexores para  multiplicar las  entradas  tanto analógicas como las digitales pero eso sí , se ha de tener en cuenta el implementar un reloj externo que este en sincronismo con el ciclo del Programa, para que sincronice ambos. Es decir, si el ciclo de lectura de una entrada por programa es  de  20 Ms por ejemplo, debemos samplear varias entradas en este ciclo , digamos que el multiplexor nos envía un barrido de 8 entradas hacia un solo `pin de entrada del Atmega, por decirlo de una manera más grafica seria como  enviar  8  bits en serie hacia una sola entrada del  Atmega, y por programa, debemos de  samplear  cada bit en sincronismo con el  reloj externo. Así se leen estas 8 entradas  en una tabla de tiempos
En el caso de multiplexar  las salidas el tema se complica bastante ya que se utilizan  laths que  “memorizan “ durante un tiempo las tensiones de salida, por lo tanto, la sincronización con el reloj externo depende del ciclo de latencia de  cada laths

 Espero  que  te pueda ser  de utilidad.  Un saludo cordial.
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 70
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Estamos experimentano con:

Multiplexores:
Salidas: SN74HC595N y TPIC6B595N, aunque supongo que necesitaremos si o si un IC de transistor darlington para alimentar a 24Vdc las bobinas o reles.
Entradas: Analógicas: CD74HC4067EE4, Digitales: ¿?

Bus I2C:
- Para salida a LCD alfanumerico 40x4: PCF8574AP
- Para entradas/Salidas: MCP23016 (Creo que este IC tiene latch para las salidas y Interrupiones para las entradas, así que nos valdría tanto para Entradas como para salidas, ¿me equivoco?)

Bus SPI:
- Para entradas/Salidas: MCP23018 (Creo que este IC tiene latch para las salidas y Interrupiones para las entradas, así que nos valdría tanto para Entradas como para salidas, ¿me equivoco?)


Con el sistema de buses utilizaremos las interrupciones que generaran la lectura de las entradas. Las salidas las escribiremos según nos convenga o una vez por cada loop, habrá que ver... Quizá exista algún método más óptimo... no he trabajado nunca con buses diferentes al RS485 y CAN.
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 65
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Como  Multiplexor de entradas Analogicas  podrias  utilizar   el modelo   LF11508    ( 8 entradas analogicas controladas por 3 bits de datos )
Como MUltiplexoor de salidas  Digitales  puedes usar  o bien  el 
74150
o bien el  4051   ( CMOS en este caso )  este  ultimo consta de  16 entradas digitales multiplexadas
Tiene una única salida invertida w (pin 10).
Posee cuatro entradas selectoras de datos de A a D (pin 15 al 11).
Tiene una entrada de habilitación denominada STROBE que se considera como un conmutador ON-OFF.

Como Drivers de salida para el control de Potencia podrias utilizar el integrado   ULN2804   Driver  de salia de  500 mA por salida, 8 salidas con  transistor Darlington  integrado en el  chip.
eso  si un consejo, si en el Proyecto se ha de mantener las 8 salidas a nivel alto durante periodos largos,  tenemos que implementar un buen disipador  sobre el  chip ya que el consumo es de  500 mA por  8 salidas  =  4 Amperios en   DC
Pero por lo general  la carga asociada a la salida no suele consumir a lo sumo  50 mA en la exitacion.
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 70
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Gracias manumoli.

He estado mirando las pilas de litio de 5Vdc para la FA en RS, y las que he encontrado son muy caras. Sabes donde puedo encontrar alguna para PCB?
OJO: Tiene que tener potencia suficiente para alimentar a todos los IC de 5Vdc, calculo unos 10 o 15, que supongo no es problema pues no consumen mucho y los transistores van conectados ya a 24Vdc.
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 65
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Puedes  consultar en  DIOTRONIK    hay un modelo mas economico  sale por  6 euros pero es  de solo 4,8 V
  Mira el   catalogo de DIOTRONIK 
4/60DK BATERIA 4.8V 60MAH       de Baterias  de  Ion-Litio en   Diotronik
Por lo que  veo proporciona  60 mAH  es mas que suficiente  dado el consumo de los  CMOS que en reposo es de tan solo  40 microamperios
Logged

Pages: [1]   Go Up
Jump to: