Gérer la vitesse d'un moteur en utilisant la méthode PWM sous Delphi!

Gérer la vitesse d'un moteur en utilisant la méthode PWM sous Delphi! - Programmation

Marsh Posté le 23-03-2001 à 09:31:03    

Question ? J'utilise un IC PWM (Pulse Width Modulation) pour gérer la vitesse de mon moteur. Cette méthode consiste à envoyer très rapidement des impulsions à mon moteur 5v linéair, standard quoi. Ces impulsions sont d'amplitudes égales (0 ou 1) mais de durée variable. En faisant succéder ces impulsions très rapidement, le moteur les moyennent et c'est ce qui fait varier la vitesse de mon moteur.
Comment coder ça sous Delphi  ??
Merci d'avance

Reply

Marsh Posté le 23-03-2001 à 09:31:03   

Reply

Marsh Posté le 23-03-2001 à 09:34:46    

t'es sur de pas avoir besoin d'un systeme un peu plus "temps reel" que delphi pour faire ca ?

Reply

Marsh Posté le 23-03-2001 à 09:45:02    

altac a écrit a écrit :

t'es sur de pas avoir besoin d'un systeme un peu plus "temps reel" que delphi pour faire ca ?




 
Franchement j'en ai aucune idée. On m'a conseillé d'utiliser cette méthode et de le coder sou dephi et j'espère que c'est réalisable.

Reply

Marsh Posté le 23-03-2001 à 09:47:28    

je suis d'accord avec altac...
La seule solution que je vois est de fabriquer une carte d'interface (branchée sur le port // par exemple) et de lui envoyer des signaux (1 ou 2 (ou plus) octets) qui représenteront par exemple le % de temps où les bits sont à 1.
Ensuite un convertisseur digital analogique transforme ce signal en une tension
Ensuite un circuit électronique transforme cette tension en une succession de 0 et de 1 avec le bon %
 
la 1° difficulté est de trouver les bons composants...
la 2° est d'attaquer le port // . Il y a des instructions en assembleur, mais je n'avais rien vu en Delphi. la dernière fois que j'ai attaqué un port // c'était en assembleur sous 6800 en 1978...
 
Si ça peut t'aider...

Reply

Marsh Posté le 23-03-2001 à 09:49:49    

JPA a écrit a écrit :

je suis d'accord avec altac...
la dernière fois que j'ai attaqué un port // c'était en assembleur sous 6800 en 1978...




 
J'étais même pas né :D

Reply

Marsh Posté le 23-03-2001 à 09:54:19    

JPA a écrit a écrit :

je suis d'accord avec altac...
La seule solution que je vois est de fabriquer une carte d'interface (branchée sur le port // par exemple) et de lui envoyer des signaux (1 ou 2 (ou plus) octets) qui représenteront par exemple le % de temps où les bits sont à 1.
Ensuite un convertisseur digital analogique transforme ce signal en une tension
Ensuite un circuit électronique transforme cette tension en une succession de 0 et de 1 avec le bon %
 
la 1° difficulté est de trouver les bons composants...
la 2° est d'attaquer le port // . Il y a des instructions en assembleur, mais je n'avais rien vu en Delphi. la dernière fois que j'ai attaqué un port // c'était en assembleur sous 6800 en 1978...
 
Si ça peut t'aider...




Je suis né en 1978 !!! Enfin j'utilise l'ic A3952SB. On peut trouver le data sheet en pdf chez http://www.allegromicro.com/datafile/3952.pdf. J'ai réaliser le montage de la page 10. Apparament ça marche car sur l'entrée Enabled de l'ic, je connecte ma sortie du port // et sous delphi j'arrive à faire démarrer le moteur et à l'arrêter. Mais le problème c'est que je dois faire varier sa vitesse et ça... sous delphi...

Reply

Marsh Posté le 23-03-2001 à 09:59:13    

en fait tout depend de ton circuit de modulation.
j'avais code un PWM en assembleur sur un petit micro-controleur et il etait facile de commander le micro-controleur depuis un PC par port serie et ainsi commander la vitesse du moteur.
si ton IC de PWM est interface avec quelque chose de plus haut niveau (micro-controleur, controleur serie...etc) c'est pas forcement difficile de faire le lien apres avec un PC.

Reply

Marsh Posté le 23-03-2001 à 10:03:27    

desole, j'avais commence mon message avant ta reponse ;)

Reply

Marsh Posté le 23-03-2001 à 10:33:18    

Je viens de regarder rapidement le pdf que tu cites :
En fait selon la tension que tu envoies sur la broche REF, le circuit va de lui même gérer le découpage.
 
Tu reprends mon 1° post et tu supprimes le dernier circuit que je propose...
NB : après le convertisseur D/A, il te faudra peut-être un ampli Op configuré pour régler la tension de sortie (min et max).
 
Si tu as réussi à démarrer le moteur sous Delphi, je pense que tu arriveras à  envoyer un voire plusieurs octets sur une carte d'interface.

Reply

Marsh Posté le 23-03-2001 à 18:18:25    

JPA a écrit a écrit :

Je viens de regarder rapidement le pdf que tu cites :
En fait selon la tension que tu envoies sur la broche REF, le circuit va de lui même gérer le découpage.
 
Tu reprends mon 1° post et tu supprimes le dernier circuit que je propose...
NB : après le convertisseur D/A, il te faudra peut-être un ampli Op configuré pour régler la tension de sortie (min et max).
 
Si tu as réussi à démarrer le moteur sous Delphi, je pense que tu arriveras à  envoyer un voire plusieurs octets sur une carte d'interface.




Enfin, j'ai trouvé la solution, mon soft sous delphi marche.
Merci à tous.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed