Pages: [1] 2   Go Down
Author Topic: Multiples entradas con arduino...  (Read 3899 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 10
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

He visto el tutorial http://www.arduino.cc/es/Tutoriales/74HC4051 para tener multiples entradas usando unos pocos pines del arduino, mi pregunta es si ¿hay alguna otra opcion aparte del 74HC4051?, necesitaria 8 entradas...
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 43
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Para entradas digitales puedes emplear registros de desplazamiento (puedes unir varios para conseguir casi cualquier numero de entradas digitales). Para entradas analógicas puedes emplear multiplexores (como el que mencionas).

¿Cuantos pines puedes gastar? ¿entradas analógicas o digitales?

Miguel
« Last Edit: May 09, 2008, 05:31:38 pm by hj43us » Logged

Madrid
Offline Offline
Full Member
***
Karma: 0
Posts: 217
¡¡ Siempre aprendiendo !!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola,

El 74HC4051 lo puedes utilizar para multiplexar 8 entradas o salidas / analógicas o digitales. Todo depende de como lo conectes.

Si lo que necesitas es multiplexar más de 8 puedes encadenar varios 74HC4051 o emplear un multiplexor mayor de 16, 32 o 64 E/S. Por ejemplo el MC14067 es de 16.

Pregunta ... ¿las entradas son analógicas o digitales?. Como te ha comentado Miguel ... si son digitales ... la opción del registro de desplazamiento no es mala.

Echale un vistazo a: http://www.arduino.cc/es/Tutoriales/74HC595

En este caso se multiplexan salidas ... pero se puede un chip equivalente para entradas.

Salu2,

Igor
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 10
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Gracias por contestar tan rapido, se me olvido decir que necesito entradas digitales, seria para usar unos 8 pulsadores...
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 43
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Puedes usar este chip para tener 8 pulsadores con tres entradas (pero 16 o 24 entradas consumirían el mismo número de pines de entrada!).

http://www.aeromech.usyd.edu.au/MTRXLAB/ref/components/TTL/MM74HC165.pdf
Logged

Madrid
Offline Offline
Full Member
***
Karma: 0
Posts: 217
¡¡ Siempre aprendiendo !!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola,

Si lo que pasa es que no encuentrar el 74HC4051 ... otro chip que te vale es el multiplexor 74HTC251.

Los regsitros de desplazamiento ahorran muchos pines ... pero son algo más complicados de programar. ¿Cuantos pines necesitas utilizar en tu aplicación y cuantos te sobran?

Salu2,

Igor
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 10
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola Igor... pues necesitaria al menos 8 pines (pulsadores) no sabria decirte cuantos pines me sobran ya que el proyecto final no esta terminado y aun estoy haciendo prototipos.
Logged

Madrid
Offline Offline
Full Member
***
Karma: 0
Posts: 217
¡¡ Siempre aprendiendo !!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola,

Si necesitas 8 pines no tiene porqué hacer falta un multiplexor ... en arduino hay 14 pines digitales ... algunos no puedes usarlos normalmente:

0 y 1: Rx y TX --> Si usas el puerto serie no los debes usar
13: Tiene una resistencia de 1K y un LED incorporados por lo que a veces no se puede usar

Con lo que te quedas con 11 ... siempre y cuando no uses salidas analógicas (pines PWM ... 3, 5, 6, 9, 10 y 11).

Si tampoco vas a usar las entradas analógicas ... hay otra forma de ganar pines digitales que es utilizar las 6 entradas analógicas (analog in) como pines digitales. Lo puedes hacer dos formas:

1.- Las entradas analógicas las puedes usar utilizandolas directamante como si fuesen las continuación de los pines digitales:

analog inpin digital equivalente
014
115
216
317
418
519

Code:
int pin=18;

void setup() {
  pinMode(pin,INPUT);
}
void loop() {
  ...
  ...
}

2.- Usándolas como analógicas y definiendo un umbral para tratarlas como digitales:

Code:
int val=0;
int pin=5;

void setup (){
}

void loop (){
  val=analogRead(5);
  if (val > 512) {
    val=HIGH;
  } else {
    val=LOW;
  }
}



En caso de que nada de esto te sirva ... pues a por los multiplexores. Pero ten en cuenta que si usas un multiplexor, por ejemplo de 8 entradas, necesitas:

3 pines digitales para direccionar las 8 posiciones del multiplexor.
1 para la entrada

Con el registro desplazamiento ...

2 para controlar el registro
1 para los datos

Espero que te sea de utilidad esta clase de economía de pines ...  ;D

Salu2,

Igor
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 43
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bueno, para 8 pulsadores y suponiendo que no se van a pulsar a la vez puedes usar 9 resistencias y una entrada analógica

+5v-+-R-+-R-+-R-+-R-+-R-+-R-+-R-+-R-+-R---GND
    |   |                           |
    P1 P2  ....                    P8
    |   |                           |
    +---+-- ....                  --+------------> a un pin de entrada analógico


Las resistencias pueden ser de entre 1K y 10K.



Ningún pulsador entrada a 0v.

P8 pulsado tensión aprox 5*1/9V.

V(x) = 5*x/9;

P1 pulsado tensión 5v.

etc.
« Last Edit: May 11, 2008, 03:51:58 pm by hj43us » Logged

Madrid
Offline Offline
Full Member
***
Karma: 0
Posts: 217
¡¡ Siempre aprendiendo !!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Muy buena solución siempre que sólo se pulse uno cada vez. Me la apunto para probarla.  smiley

Salu2,

Igor
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 10
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hola aqui estoy despues de un largo tiempo y retomando el mismo proyecto... al final consegui el 74HC595 y he visto en la web los ejemplos, pero quiero usarlo para tener 8 entradas y no salidas, alguien tiene un ejemplo o puede ayudarme para indicarme como usar el 74HC595 para añadir entradas y no salidas???
Logged

Madrid
Offline Offline
Full Member
***
Karma: 0
Posts: 217
¡¡ Siempre aprendiendo !!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

No lo he probado nunca de esa forma, pero echale un vistazo a esto por si te da ideas ...

Página 12: 4.-Entrada/Salida serie síncrona --> http://eupt2.unizar.es/asignaturas/ittse/sistemas_electronicos_digitales/Cuatrimestre2/08tema/08teoria.pdf

Otra alternativa:

http://www.arduino.cc/en/Tutorial/ShiftIn


Salu2,

Igor
Logged

Madrid
Offline Offline
Full Member
***
Karma: 0
Posts: 217
¡¡ Siempre aprendiendo !!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


Y de nuevo ... te recomiendo que lo hagas con el 74HC4051 ..

http://post.monome.org/comments.php?DiscussionID=1623&page=1#Item_0

y más ejemplos con otros chips:

http://raynormonome.blogspot.com/

Salu2,

Igor
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 10
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Lo intentaré con el 595 (no es que sea un cabezón)  ;D la verdad me gustaría intentarlo para aprender algo mas, también tengo un 4051, en un principio pensaba que el 595 seria mucho mejor ya que solo lo usare para ampliar entradas digitales y no analógicas, pero aunque no se mucho ingles leyendo en el foro de monome se supone que el 4051 es mas rapido, ¿me equivoco?... ahora mi pregunta es... ¿por que usar el 4051 en vez del 595?, ¿es más rápido y por lo que vi mas facil de programar?...
Logged

Madrid
Offline Offline
Full Member
***
Karma: 0
Posts: 217
¡¡ Siempre aprendiendo !!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola,

En mi opinión, en tu caso, es más fácil de utilizar y más rápido el 4051. Otra cosa es que se quiera utilizar para otros temas.

El 4051 multiplexa las entradas/salidas. Para ello necesitas un bucle con 8 repeticiones en el que se direccionan una a una de todas posiciones. Es así de sencillo ... 3 bit-s para direccionar las 8 posiciones y leer los 8 valores.

El 595 es un registro de desplazamiento y su funcionamiento es más complejo porque necesita más pines para hacerlo funcionar. La idea es ... el registro lee las 8 entradas en paralelo, pero necesitas 8 pulsos para sacar bit a bit en serie por un único pin.

Es una explicación muy sencilla y un poco bruta, pero creo que se entiende.

Salu2,

Igor
Logged

Pages: [1] 2   Go Up
Jump to: