Gestion moteur pas a pas...

darkneo68 Messages postés 3 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 3 octobre 2004 - 3 oct. 2004 à 10:49
 cs_dbgt - 31 mars 2007 à 00:02
Bjrs,
je suis lycéen et je ne programme plu depuis pluqieures années... :s
pour la fin de l'année, je doit trouver un moyen de piloter un moteur pas a pas via un pc... fleche de droite moteur tourne a droite <=> flèche de gauche moteur tourne a gauche...
cependant je n'ait plus les connaissances requises pour faire ce petit programme...
qqu'un pourrait il m'aider ??? svp
la... je recontre un vrai probleme... :s
j'aimerai bien que l'on puisse le diriger via un port usb ou, la solution la plus simple, via un port parallele...
est ce que qq'un aurait t'il des informations a ce sujet?
merci d'avance et @++

22 réponses

AnteManoclis Messages postés 154 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 6 septembre 2007
3 oct. 2004 à 11:28
Salut darkneo68,

Pour passer par le port usb, je ne te suis d'aucune utilité, en revanche pour le port parallèle, c'est du tout cuit (expression années 80's...)
Il faut d'abord avoir la dll qui permet l'accés aux registres (http://sitelec.free.fr/download/inpout32.zip).
Ensuite, il faut savoir que les port parallèles sont organisés de la manière suivante:
LPT1:
Adresse 378h -> Données (D7...D0)
Adresse 379h -> Etat du port (Busy\, Ack, PE, Select, Error\,x,x,x)
Adresse 37Ah -> Contrôle (x,x,Bit Ctrl, IRQ Enabled, Select In, Init\, Auto Feed, Strobe\)

LPT2: LPT3:
Adresse 278h -> Données Adresse 3BCh -> Données
Adresse 279h -> Etat du port Adresse 3BDh -> Etat du port
Adresse 27Ah -> Contrôle Adresse 3BEh -> Contrôle

(si tu veux plus de détails: http://www.beyondlogic.org/spp/parallel.htm)

Voilà, donc ensuite, en supposant que tu veuilles utiliser le port LPT1, ton programme ressemblera à quelque chose comme ça:

Public Declare Function Inp Lib "InpOut32.dll" Alias "Inp32" (ByVal PortAddress As Integer) As Integer

Public Declare Sub Out Lib "InpOut32.dll" Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)

Public const LPT1_d as integer = &h378

Dim ValeurAEnvoyer as byte 'Variable contenant le code de rotation droite/gauche

ValeurAEnvoyer=....
call out(LPT1_d,ValeurAEnvoyer)

Voilà j'espère que j'aurais pu t'être utile, tchô ;)
AnteManoclis
0
darkneo68 Messages postés 3 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 3 octobre 2004
3 oct. 2004 à 11:36
Lut,
je suis desolé mais j'ai rien compris ... :s
pourait tu m'expliquer a quoi correspondent les differentes commandes???
merci et @+
0
AnteManoclis Messages postés 154 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 6 septembre 2007
3 oct. 2004 à 11:59
Wép, alors c'est parti...

Public Declare Function Inp Lib "InpOut32.dll" Alias "Inp32" (ByVal PortAddress As Integer) As Integer
-> Déclare la fonction externe de lecture d'un registre (inutilisée dans notre cas)

Public Declare Sub Out Lib "InpOut32.dll" Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)
-> Déclare la fonciton d'écriture dans un registre (dans notre cas, ceux du port parallèle)

Public const LPT1_d as integer = &h378
-> Déclare la variable qui va contenir l'adresse du registre de données du port parallèle

Dim ValeurAEnvoyer as byte
-> Déclare la variable (8bits) à envoyer sur le port parallèle

ValeurAEnvoyer=....
-> Tu mets la valeur que u souhaites dans ta variable

call out(LPT1_d,ValeurAEnvoyer)
-> Envoi ta variable sur le port parallèle.

Un peu plus clair :big) :question)
tchô ;)
AnteManoclis
0
darkneo68 Messages postés 3 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 3 octobre 2004
3 oct. 2004 à 12:02
ok,
la ca me parait un peu plus clair...
je verrai ca avecun pot demain
et je mettrai mes apreciations sur le forum...
encore merci et @+ ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vlemieux Messages postés 9 Date d'inscription jeudi 18 novembre 2004 Statut Membre Dernière intervention 19 novembre 2004
19 nov. 2004 à 00:51
Bonjour,
J'ai conçu une carte 8 relais pilotée par l'USB.
Elle est décrite dans un livre consacré à l'USB : "L'USB pour tous" aux editions Dunod/ETSF.
Le sommaire est sur mes pages perso : http://home.nordnet.fr/~vlemieux/
Il y a aussi une photo de la carte
Cordialement.
V.Le Mieux
0
cs_seb496 Messages postés 19 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 27 août 2008
24 nov. 2004 à 18:51
Bonjour
je cherche à utiliser l'inpout32.dll , mais à chaque fois que je lance le prog , windows 2000 me génère une erreur et ferme mon application ( quelque soit le source utilisé ). Merci de m'indiquer une solution à mon problème.
0
AnteManoclis Messages postés 154 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 6 septembre 2007
29 nov. 2004 à 13:06
Salut seb,

J'ai Windows98, donc, peut-être cela ne va pas t'aider, mais peut-être est-ce dans la déclaration qu'il y'a un problème, au cas où, j'te copie mes déclarations, en espèrant qua ça puisse t'aider.

Public Declare Function Inp Lib "InpOut32.dll" Alias "Inp32" (ByVal PortAddress As Integer) As Integer

Public Declare Sub Out Lib "InpOut32.dll" Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)

Tchô ;)
AnteManoclis
0
cs_lnel Messages postés 13 Date d'inscription mercredi 8 décembre 2004 Statut Membre Dernière intervention 30 décembre 2004
29 déc. 2004 à 13:55
salut

je suis a la rechercher du meme programme ,
as tu trouver ?

merci
0
cs_seb496 Messages postés 19 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 27 août 2008
30 déc. 2004 à 22:52
seb :big) merci à tous.
je viens de trouver les réponses à mes questions (mais également testé ...). L'inpout32.dll n'est valable que sous win 95 et win 98.
Pour winNT ; win2000 et winXP , il faut utiliser une dll différente qui est .................. la DLPortIO.dll (dlportio.dll).

les déclarations sont les suivantes:

Public Declare Function Inp Lib "dlportio.dll" Alias "DlPortReadPortUchar" (ByVal Port As Long) As Byte

Public Declare Sub Out Lib "dlportio.dll" Alias "DlPortWritePortUchar" (ByVal Port As Long, ByVal Value As Byte)

testé sur mes machines avec chenillard et moteur , tout est ok, bon courage à tous. Seb
0
cs_dodalson Messages postés 5 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 6 février 2005
2 févr. 2005 à 14:42
slt les vbnautes,

je suis sur un projet un peu identique et je souhaitai savoir où je pouvais trouver ce DLPortIO.dll

Merci
0
cs_dodalson Messages postés 5 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 6 février 2005
2 févr. 2005 à 14:42
slt les vbnautes,

je suis sur un projet un peu identique et je souhaitai savoir où je pouvais trouver ce DLPortIO.dll

Merci
0
cs_dodalson Messages postés 5 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 6 février 2005
2 févr. 2005 à 14:43
slt les vbnautes,

je suis sur un projet un peu identique et je souhaitai savoir où je pouvais trouver ce DLPortIO.dll

Merci
0
cs_dodalson Messages postés 5 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 6 février 2005
2 févr. 2005 à 14:43
slt les vbnautes,

je suis sur un projet un peu identique et je souhaitai savoir où je pouvais trouver ce DLPortIO.dll

Merci
0
AnteManoclis Messages postés 154 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 6 septembre 2007
4 févr. 2005 à 21:07
0
cs_dodalson Messages postés 5 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 6 février 2005
6 févr. 2005 à 10:14
salut,

Merci bcp AnteManoclis pour le lien

je voulais savoir en meme temps si personne n'avait un programme sous VB6 pour
piloter un port // juste écriture et lecture du port.

Et si possible comment connaitre en héxa l'adresse du port // de mon PC (enfin le PC demon IUT) lol
ainsi je vous remercie de votre aide

cordialement dodalson,
0
AnteManoclis Messages postés 154 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 6 septembre 2007
6 févr. 2005 à 10:37
Salut dodalson,

Les adresses des ports parallèles sont prédéfines, à savoir:
LPT1: 0x378
LPT2: 0x278
LPT3: 0x3BC

Autrement dit, si tu n'as qu'un port parallèle, sont adresse est 0x378

Ces adresses sont les adresses de base, sur lesquelles tu trouveras le registre de données. Le registre d'état est à l'adresse suivante, celui de contrôle encore après.

Pour écrire sur le port parallèle, rien de plus simple que la ligne de code suivante:

out(&H378, Ton_octet_a_ecrire)

Pour la lecture, je pourrais dire qu'une ligne du même genre suffrait, cela dit, je crois avoir lu quelque part qu'il fallait préciser la lecture dans un registre...

En espérant que ça aura pu t'aider

Tchô
AnteManoclis
0
cs_seb496 Messages postés 19 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 27 août 2008
7 févr. 2005 à 06:58
salut,
tu peux également connaitre l'adresse de ton port en allant dans le panneau de configuration , dans systeme , onglet matériel , gestionnaires de périphérique; séléctionnaire ton port concerné ( dans ton cas : lpt1), fait un clique droit puis propriété et enfin séléctionne l'onglet ressource.
bon courage

seb
0
Le mirage Messages postés 4 Date d'inscription samedi 24 juillet 2004 Statut Membre Dernière intervention 20 mai 2005
13 mars 2005 à 13:37
OU je peux télechargé DLPortIO.dll
0
fx4sky Messages postés 6 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 29 avril 2018
23 mars 2007 à 11:10
Bonjour,

J'aimerai réaliser un scanner (effet lumineux pour light jokey)
Avec les fonctions Tilt (axe X), pan (Axe Y), couleurs, gobos
Pour celà j'aimerai pouvoir piloter 4 moteurs de manière simultanée ou indépendante.
Je suis nul en éléctronique et en programation, j'ai quelques notions en visual basic c'est pourquoi je voudrai pouvoir développer une petite appli avec ce logiciel.
Il me manque juste une carte d'interface avec les composants pour piloter ces 4 moteurs soit par le port // soit par le port USB.
J'ai vu les cartes comio et easy step qui correspondent presque à mes besoins mais je ne souhaite pas acheter 5 cartes differentes et depenser 100 ou 200?. Sinon il me suffit d'acheter le scan tout fait.

Est ce que quelqu'un possède le schéma et les composants ainsi qu'un début de programme simple pour piloter 4 moteurs pas à pas ???

j'ai vu tellement de cartes differentes sur le net : usb, parallele, de 30 à90 ? a programmer en delphi, en visual basic ...
http://www.gotronic.fr/catalog/micro/micro-frame.php?page_cible=interface.htm
http://www.ellipse.ch/Produit.aspx?Produit=79114
http://spt06.chez-alice.fr/pas05.gif


Laquelle faut il prendre ? comment faire le programme associé ??
Sinon j'ai même récupéré une vieille carte qui fonctionne sur le port // avec un circuit de type ADC0809CCN  que l'on peu programmer avec Visual basic mais je ne comprend pas du tout le fonctionnement.

Si quelqu'un peut m'aider en programmation et en éléctronique il sera le bienvenu :-)

No Fear !
0
AnteManoclis Messages postés 154 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 6 septembre 2007
23 mars 2007 à 17:51
Salut,

S'il s'agit de piloter 4 moteurs pas à pas, ce n'est en soit pas très compliquer, mais à partir du moment où il y a une partie électronique, il faut tout de suite prendre en considération le fait qu'il va falloir mettre la main au porte feuille. Il y a des modules USB qui ne sont pas très chers chez lextronic.fr, après il faut penser qu'il y aura certainement un microcontrolleur, ou un PAL, ce qui veut dire qu'il te faudra un programmateur pour les programmer au moins une première fois, et pour finir pas mal de temps de câblage et d'essai. La programmation VB ou delphi devrait être la partie la plus simple de ton projet. Lequel choisir ? Celui que tu préféres, VB et Delphi sont sensiblement identiques.

Tchô AnteManoclis
0
Rejoignez-nous