[ Foro de C++ ]

Programa Motor PaP

07-Jun-2014 22:51
Invitado (Jose94)
3 Respuestas

Buenas, tengo un gran problema es que me he encontrado en la situacion de que casi he terminado un grado superior de electronica en el cual solo me falta proyecto integrado, el profesor me mando mover un motor paso a paso bipolar en ambos sentidos con el driver L298N todo esto tiene que ser en C++ y a traves del puerto paralelo con una placa de adquisicion de datos conectada a otra placa con este driver y por ultimo este motor.

Necesito la programacion en C++ para poder mover este tipo de motor a traves de dicho puerto.

Saludos y espero respuestas, gracias de antelacion.


08-Jun-2014 11:41
Nacho Cabanes (+31)

Tendrás que contactar primero con tu profesor, porque el acceso a puertos no es una característica estándar, que se realice igual con todos los compiladores. Que te diga qué compilador debes usar, para qué sistema operativo, y, si es posible, que te pase un esqueleto básico que tú puedas ampliar.

Por ejemplo, en Windows el acceso directo al puerto paralelo suele estar bloqueado, oculto tras una "capa de abstracción" (HAL); en Linux podría bastar con escribir al fichero lógico asociado a ese puerto (por ejemplo /dev/lpt0) y en MsDos bastaba con usar la orden "outp" para enviar un dato directamente a un puerto (habitualmente el 378h). Por ejemplo, podrías activar el bit 0 de datos (2º pin) con

 
_outp(0x378, 0x01);
 


El dato es una máscara de bits, de modo que activarías el bit 7 enviando un 128, o el bit 6 enviando un 64, o ambos a la vez enviando un 192.

Para Windows, el problema no es sólo conocer qué orden usar y el formato de los datos, sino qué DLLs incluir con el proyecto y cómo ganar los permisos de acceso al puerto. Tienes alguna biblioteca portable, como ésta:
https://code.google.com/p/parallel-port/

Pero insisto, recurre primero a tu profesor, porque es habitual que ellos pretendan que uses un compilador concreto, para un sistema operativo concreto, y que te puedan proporcionar un esqueleto de programa de conexión que sirva de base para el tuyo. Al fin y al cabo, seguro que se trata de un tipo de ejercicio frecuente, que pidan habitualmente al final del ciclo superior, ¿no?  ;-)


08-Jun-2014 12:29
Invitado (Jose94)

Si, en clase usamos windows y de compilador no se, el programa que usamos es el Dev C++, no se con que compilador funcionara, pero el problema no esta en conectarme por puerto paralelo sino en la programacion que necesitare mas o menos para mover un motor bipolar, el toda la programacion de conectarme por puerto paralelo a la placa de adquisicion de datos mas o menos lo manejo sino podria solucionarlo facilmente pero el problema esque no tengo ninguna base sobre actuadores del tipo de motor PaP bipolares y no tengo ni la menor idea de que tipo de algoritmos o instrucciones tengo que emplear para mover dicho motor a traves del L298n.


08-Jun-2014 21:03
Nacho Cabanes (+31)

Dev-C++ usa internamente (o suele hacerlo) el compilador MinGW (la adaptacion de GCC para Windows).

Pero con detalles tan concretos no podré ayudarte, lo siento. Es algo que no he necesitado hacer nunca. Lo que he leído alguna vez es que se podía incluso conectar el motor paso a paso directamente al puerto paralelo, que saca 5V, y que la forma de hacerlo funcionar era activar pines concretos del puerto paralelo (con "outp") durante una cierta cantidad de milisegundos (con "sleep") para luego desactivarlos (con otro "outp" que ponga los pines a cero). Pero si eso ya lo has conseguido, no puedo llevarte más allá.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)