Autor Tema: Enviar pulsos al pin CLK de un 74LS374  (Leído 6740 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Mecatronico_MG

  • PIC10
  • *
  • Mensajes: 20
Enviar pulsos al pin CLK de un 74LS374
« en: 02 de Octubre de 2009, 22:19:01 »
Buenas, he sido seguidor de este foro desde hace algunos meses y veo que las ideas que proponen aqui son muy buenas, así que decidí registrarme para compartir algunas dudas con ustedes.

Como referencia, paso a II ciclo de Ing. Mecatrónica. El semestre anterior en la U hicimos un robot muy sencillo con 2 grados de libertad usando 2 motores paso a paso -uno para cada motor-  y 2 CI L293D. El caso es que ahora queremos hacer un robot con 4 motores y 3 grados (se usan 2 motores para aguantar el peso del brazo). Consulte a mi profesor y nos dijo que podiamos utilizar 2 integrados L293D adicionales y tambien 2 integrados 74LS374; de tal manera que controlamos los movimientos del robot mediante las pulsaciones del pin CLK del 74LS374.

La pregunta es ¿cómo sería el código en turbo C++ para enviar dichas pulsaciones al pin CLK? Cuando hicimos el robot con 2 motores, en el programa utilizabamos directamente el ouportb(0x378,numero_hexadecimal) para mover los motores; pero ahora no entiendo como es lo de los pines CLK.

Agradecería mucho su ayuda. 
Saludos. :)
Martin.

Desconectado Mecatronico_MG

  • PIC10
  • *
  • Mensajes: 20
Re: Enviar pulsos al pin CLK de un 74LS374
« Respuesta #1 en: 03 de Octubre de 2009, 01:24:07 »
Saludos de nuevo... :o

Pensaran que quiero que me den el programa hecho. No, solamente necesito un ejemplo de cómo enviarle voltaje lógico al pin CLK del 74LS374.
Puede ser algo como: outportb(0x378,XXXX) o algo parecido. Necesito la opinión de alguien por favor.

Muchas gracias.  :)
Martin.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Enviar pulsos al pin CLK de un 74LS374
« Respuesta #2 en: 03 de Octubre de 2009, 01:29:24 »
Hola.

Creo que deberias postear tu duda en otro hilo, podria ser el correspondiente a soft para PC.

http://www.todopic.com.ar/foros/index.php?action=collapse;c=11;sa=expand#11

O no se con que micro estarás trabajando.

Saludos
El papel lo aguanta todo

Desconectado Mecatronico_MG

  • PIC10
  • *
  • Mensajes: 20
Re: Enviar pulsos al pin CLK de un 74LS374
« Respuesta #3 en: 03 de Octubre de 2009, 01:49:40 »
Muchas gracias MLO, tal vez tenga razón. Además olvidé decir que no estoy usando microcontrolador sino puerto paralelo (conector DB25).

Saludos!  ;-)
Martin.

Desconectado tsk

  • PIC18
  • ****
  • Mensajes: 258
Re: Enviar pulsos al pin CLK de un 74LS374
« Respuesta #4 en: 03 de Octubre de 2009, 11:39:51 »
El puerto paralelo tiene 3 registros
Registro de datos 0x378
Registro de estado 0x379
Registro de Control 0x37A

los primeros 4 bits del registro de control tienen salida al exterior, por lo tanto cualquiera de ellos los puedes usar para controlar el clk del 74ls374 que no son más que 8 flipflops tipo D.

Por ejemplo el pin 1 del puerto es el de strobe cuyo registro se encuentra en el bit 0 del registro de control

Desconectado Mecatronico_MG

  • PIC10
  • *
  • Mensajes: 20
Re: Enviar pulsos al pin CLK de un 74LS374
« Respuesta #5 en: 03 de Octubre de 2009, 13:51:57 »
Así es tsk, muchas gracias por confirmar lo que he hecho en mi circuitería. He unido el pin CLK del primer 74LS374 al pin 1 del DB25 que es el STROBE y el pin CLK del segundo 74LS374 al pin 16 del DB25 que me parece es el INIT.

Ahora mi duda viene en dónde consigo un ejemplo de cómo enviar las pulsaciones a los pines CLK en el lenguaje turbo C++.

Saludos y gracias. :D
Martin.

Desconectado tsk

  • PIC18
  • ****
  • Mensajes: 258
Re: Enviar pulsos al pin CLK de un 74LS374
« Respuesta #6 en: 04 de Octubre de 2009, 02:32:51 »
Si ya hicieron el que manda datos al puerto paralelo 0x378, viene siendo exactamente lo mismo solo que esta vez sería para la dirección 0x37A que es el de control.

Sólo hay que tomar en cuenta que los pines de control son bajo activos, es decir cuando el bit 0 del registro de control (0x37A) esta en 0 tendrás en el pin 1 del puerto 5 Volts (1).

el pin clk del 74ls374 responde al flanco de subida, por lo tanto vas a tener que mandar al bit0 del puerto de control un 1 esperar un tiempo(retardo) y mandar un 0, lo mismo se aplica al otro pin que estes usando.

          Carga Primer 74ls374
__       ________
    \__/
               Carga segundo 64ls374
_____       _____
         \__/


Para generar el retardo esta la función Sleep(int) en milisegundos (#include <windows.h>) o sleep(int) en segudos (#include <dos.h>)

Si dices que usaron el outportb, entonces lo podrías ver como,

Código: [Seleccionar]
outportb(0x37A,0x01);
outportb(0x378,DatoM1M2);
Sleep(50);
outportb(0x37A,0x02);
outportb(0x378,DatoM3M4);
Sleep(50);
outportb(0x37A,0x00);

Y este se puede modificar para que sea algo más continuo y que veas en el osciloscopio algo como

__       __      __       __
    \__/    \__/    \__/     \__
_____       __       __       __
         \__/     \__/    \__/

Desconectado Mecatronico_MG

  • PIC10
  • *
  • Mensajes: 20
Re: Enviar pulsos al pin CLK de un 74LS374
« Respuesta #7 en: 04 de Octubre de 2009, 03:32:43 »
Hola!

Muchas gracias por la información amigo tsk  :). Voy a adaptar el código a la estructura física del robot y lo probaré. Espero que funcione correctamente. Ya te contaré cómo me fue.

Saludos.  :P
Martin.

Desconectado Mecatronico_MG

  • PIC10
  • *
  • Mensajes: 20
Re: Enviar pulsos al pin CLK de un 74LS374
« Respuesta #8 en: 06 de Octubre de 2009, 01:59:06 »
Hola!

Muchas gracias por la información. He estado viendo el código para mi robot; tal parece que debe tener estas dos órdenes:

Código: [Seleccionar]
outportb(0x37A,10);
...
outportb(0x37A,15);
...

Me estoy refiriendo únicamente a la orden del puerto 37A. Para activar el pin CLK del primer CI 74LS374 debe enviarsele en binario 1010. Ojo que hay que tomar en cuenta que el orden de los pines del puerto 37A (del  más al menos significativo) es 17,16,14,1 y que los pines 17,14,1 toman valores inversos. O sea que el 1010 seria en realidad 0001. Y para activar el otro CLK  hay que enviarle 15- binario 1111- que equivale a 0100.

Repito que esto está en periodo de prueba, pero de todas maneras lo he publicado por si es de utilidad para alguien o deseen opinar.  :oops:
Espero terminarlo pronto... :-/

Saludos   ;-)
Martin.