Répondre à la discussion
Affichage des résultats 1 à 21 sur 21

commande d'un moteur pas a pas bipolaire en pic c



  1. #1
    rassiba

    commande d'un moteur pas a pas bipolaire en pic c


    ------

    salut,
    mon projet fin d'etude est :commande d'un moteur pas à pas avec un microcontroleur, j'utilise pic 16F877 avec L297 et L298.
    je fait le programmation qui fait tourner le moteur en sens horaire .
    mon problème:comment fait pour qu'on appui sur un boutton le moteur fait un demi-pas et qu'on appui sur un autre boutton le moteur fait un pas complet.
    Merci d'avance

    -----

  2. Publicité
  3. #2
    f6bes

    Re : commande d'un moteur pas a pas bipolaire en pic c

    Bjr à toi,
    C'est tout simple puisque tu sais programmer:
    Lorsque tu appuies sur un bouton tu fais en sorte d'appeler un sous programme qui va faire faire un demi pas!
    Pour l'autre bouton , tu fais pareil en appelant un sous programme pour un pas complet.
    Y a plus qu'à.
    Bon W E

  4. #3
    Jack
    Modérateur

    Re : commande d'un moteur pas a pas bipolaire en pic c

    On peut utiliser le même sous programme vu la simplicité du passage du mode pas complet au mode demi pas

  5. #4
    rassiba

    Re : circuit de commande d'un electrovanne

    bonjour svp,dans mon projet je besoin d' envoyer un commande a un électrovanne durant un temps réglable suivant l’opérateur (de 0 à 10ms)
    j'ai fait le schéma sur isis et je remplacer l' électrovanne par un diode led mais je trouve un difficulté de programmation ,le simulation ne marche pas ,aidez moi svp
    le compilateur qui je utilise pic c compiler je essayer de faire un code par la structure case mais sa ne fonctionne pas
    Capture.PNG
    Dernière modification par rassiba ; 28/05/2013 à 11h36.

  6. A voir en vidéo sur Futura
  7. Comparatifs

    Gagnez du temps et de l'argent grâce à nos comparatifs de produits. Parmi nos sujets :
  8. #5
    carcan

    Re : circuit de commande d'un electrovanne

    Hello !

    que c'est beau la simulation ...
    Dans la réalité, rien ne se passera vu comment la bobine du relais est câblée ... et heureusement, car si ce câblage avait été correct, tu fais un court circuit franc avec le contact de ton relais

    A+
    Laurent

  9. #6
    carcan

    Re : circuit de commande d'un electrovanne

    ... et j'avais même pas vu les entrées RAx qui n'ont même pas de résistance de tirage, rooohhhhh

  10. Publicité
  11. #7
    rassiba

    Re : commande d'un moteur pas a pas bipolaire en pic c


  12. #8
    carcan

    Re : commande d'un moteur pas a pas bipolaire en pic c

    Re !

    toujours pas de résistance de tirage sur les RA ?

    Pour le branchement du relais ... là tu tues le PIC ! pas mal
    Il manque 3 composants (une résistance, une diode, un transistor). Je n'en dis pas plus, à toi de trouver !

    A+
    Laurent

  13. #9
    rassiba

    Re : commande d'un moteur pas a pas bipolaire en pic c

    bonjour,j'essai est ce que comme ça correcte ou nn?
    et svp aidez moi a faire le code en c
    Capture.PNG
    pour le code ne pas fonctionnelle tu peut me aidez pour trouver un solution correcte et merci

    #include <16f877.h>
    #fuses HS,NOWDT,NOLVP,NOPROTECT
    #use delay(clock=4000000)
    void main()
    {
    set_tris_B(0x00);//initalisation du port B :SORTIES :0X00
    set_tris_A(0xFF);// initalisation du port A :ENTREES :0XFF

    while(1)
    x = input_A() & 0x0F; // masque touche appuyée.
    if(x == 0x01) //si COMMUTATEUR SUR POSITION 1.
    {
    delay_ms(100);
    }
    else if (x == 0x02 ); //si COMMUTATEUR SUR POSITION 2.
    {
    delay_ms(100);
    }
    else if (x == 0X04) //si COMMUTATEUR SUR POSITION 3.
    {
    delay_ms(200);
    }
    else if (x == 0x08) //si COMMUTATEUR SUR POSITION 4.
    {
    delay_ms(300);
    }
    else if (x==0x0F) // si COMMUTATEUR EN POSITION 5.
    {
    delay_ms(400);
    }}

  14. #10
    rassiba

    Re : commande d'un moteur pas a pas bipolaire en pic c

    #include <16f877.h>
    #fuses HS,NOWDT,NOLVP,NOPROTECT
    #use delay(clock=4000000)
    void main()
    {
    int x ;
    set_tris_B(0x00);//initalisation du port B :SORTIES :0X00
    set_tris_A(0xFF);// initalisation du port A :ENTREES :0XFF

    x = input_A() & 0x0F; // masque touche appuyée.
    if(x == 0x01) //si COMMUTATEUR SUR POSITION 1.
    {output_high(pin_B0);
    delay_ms(100);
    }
    else if (x == 0x02 ) //si COMMUTATEUR SUR POSITION 2.
    {output_high(pin_B0);
    delay_ms(100);
    }
    else if (x == 0X04) //si COMMUTATEUR SUR POSITION 3.
    {output_high(pin_B0);
    delay_ms(200);
    }
    else if (x == 0x08) //si COMMUTATEUR SUR POSITION 4.
    {output_high(pin_B0);
    delay_ms(300);
    }
    else if (x==0x0F)
    {output_high(pin_B0);
    delay_ms(400);
    }}

  15. #11
    rassiba

    Re : commande d'un moteur pas a pas bipolaire en pic c

    bsr,j'ai fait un montage sur isis pour fair tourner un moteur pap mais malheureusement de fonctionne pas correctement
    je ne ne sais pas est ce que faute de programme ou foute de câblage ;est ce que quelqu’un peut m'aidez et merci
    Capture.PNG

  16. #12
    f6bes

    Re : commande d'un moteur pas a pas bipolaire en pic c

    Bjr à toi,
    Et les circuits U1 et U2...on devine comment à quoi il servent et leur DESIGNATION ?
    A+

  17. Publicité
  18. #13
    rassiba

    Re : commande d'un moteur pas a pas bipolaire en pic c

    bjr,excuse moi mais je pas compris ce qui tu dit ???
    pour le montage le circuit de commande L297+L298 seul sans pic le moteur tourne mais quand j'ajoute le pic et le programme le moteur cesse de tourne
    je sais pas pour quoi?????

  19. #14
    gabuzo

    Re : commande d'un moteur pas a pas bipolaire en pic c

    EN, RE et CLK devraient être des sorties du PIC pour commander le L297 alors que les broches AN0, AN1 et AN2 sont configurées en entrées, ça ne risque pas de marcher. Me goure-je ?
    Je suis Charlie

  20. #15
    gabuzo

    Re : commande d'un moteur pas a pas bipolaire en pic c

    Et dans le prg la pin RB0 (connectée à rien sur le schéma) reste toujours à l'état haut si on ne met pas un {output_low(pin_B0); après le delay_ms(x).

    En clair entre le schéma et le programme il n'y a rien de cohérent.
    Dernière modification par gabuzo ; 03/06/2013 à 16h47.
    Je suis Charlie

  21. #16
    rassiba

    Re : commande d'un moteur pas a pas bipolaire en pic c

    bjr merci pour votre réponse, mais le code de programme c'est n'est pour cette schéma c'est pour l'autre ,,
    pour le commande de moteur je fait ce code :
    #include <16f877.h>
    #fuses HS,NOWDT,NOLVP,NOPROTECT
    #use delay(clock=4000000)
    void main()
    {

    set_tris_A(0x00);
    output_high(pin_A0);
    output_high(pin_A1);
    output_low(pin_A3);
    }
    mais ca ne fonctionne pas ?????
    si tu trouve le faute svp répond moi et merci

  22. #17
    gabuzo

    Re : commande d'un moteur pas a pas bipolaire en pic c

    Commencer par enlever les pull down sur les entrées venant du µ-contôleur, virer en même temps celles sur les broches reliées à la masse (fallait y penser à celle là). C'est quoi qui envoie le signal d'horloge au L297 ? Parce que sans signal d'horloge ça marche moins bien.
    Je suis Charlie

  23. #18
    rassiba

    Re : commande d'un moteur pas a pas bipolaire en pic c

    bsr,j'enlever les pull down venant de microcontrôleur ,et pour le signale d'orloge c'est même l’horloge interne du µ-contrôleur nn?
    je donne 'o' a CLK dans le code il doit être activé mais je pas trouve ou le faute je tester la simulation par plusieurs code mais aucun resultas
    je suis tres tres bloqué et mon date de soutenance et arrivée et la simulation n'est pas encore réussie aidez moi plz

  24. Publicité
  25. #19
    gabuzo

    Re : commande d'un moteur pas a pas bipolaire en pic c

    Non l'entrée clock du L297 n'a rien à voir avec la fréquence d'horloge du µ-contrôleur. Pour que le moteur tourne correctement il faut envoyer un signal carré sur l'entrée CLK du L297 (fréquence de 100 et 400 Hz environ).

    Autre chose, sur le schéma la sortie CLK est sur RA2 mais dans le programme on ne retrouve RA2 nulle part, par contre on trouve RA3 qui n'est connectée à rien sur le schéma.

    Donc il faut le code qui va avec le schéma, sinon on pisse dans un stradivarius
    Dernière modification par gabuzo ; 06/06/2013 à 18h09.
    Je suis Charlie

  26. #20
    rassiba

    Re : commande d'un moteur pas a pas bipolaire en pic c

    bjr, est ce que on ne peut pas tourner le moteur directement de microcontrôleur il faute que je donne un signale d’horloge carre sur l'entre de CLK de L297?
    et est ce que ce code fonctionnelle ou pas?
    #include <16f877.h>
    #fuses HS,NOWDT,NOLVP,NOPROTECT
    #use delay(clock=4000000)
    void main()
    {

    set_tris_A(0x00);
    output_A(0x03);
    output_high(pin_A0);
    output_high(pin_A1);
    output_low(pin_A2);
    }

  27. #21
    gabuzo

    Re : commande d'un moteur pas a pas bipolaire en pic c

    Citation Envoyé par rassiba Voir le message
    bjr, est ce que on ne peut pas tourner le moteur directement de microcontrôleur il faute que je donne un signale d’horloge carre sur l'entre de CLK de L297?
    Oui il faut un signal d'horloge sur l'entrée CLK (CLK = clock = horloge) du L297 sinon le moteur ne tournera jamais et faut faire gaffe à la fréquence.

    Citation Envoyé par rassiba Voir le message
    et est ce que ce code fonctionnelle ou pas?
    #include <16f877.h>
    #fuses HS,NOWDT,NOLVP,NOPROTECT
    #use delay(clock=4000000)
    void main()
    {

    set_tris_A(0x00);
    output_A(0x03);
    output_high(pin_A0);
    output_high(pin_A1);
    output_low(pin_A2);
    }
    Non ça ne fonctionnera pas car la sortie RA2 (que je suppose être la sortie CLK sur le pic) reste à 0 tout le temps (output_low(pin_A2)
    Il y a deux solutions :

    1 - La méthode bourin

    Un truc du style :

    while jeveuxquelemoteurtourne
    output_low(pin_A2);
    delay_ms(x);
    output_high(pin_A2);
    delay_ms(x);
    wend



    2 - La méthode plus élégante

    Utiliser un timer du pic et inverser l'état de la sortie AN2 à chaque débordement mais ça exige de savoir utiliser le timer et les interruptions.
    Dernière modification par gabuzo ; 07/06/2013 à 13h09.
    Je suis Charlie

Discussions similaires

  1. TPE commande d'un moteur pas à pas bipolaire 4 phases
    Par TPESI22012 dans le forum TPE / TIPE et autres travaux
    Réponses: 2
    Dernier message: 14/12/2012, 07h51
  2. commande d'un moteur pas à pas à base de pic 16f84
    Par Rebix dans le forum Électronique
    Réponses: 3
    Dernier message: 22/04/2010, 03h09
  3. Carte de commande d'un moteur pas-à-pas bipolaire.
    Par Ezzt dans le forum Électronique
    Réponses: 1
    Dernier message: 01/03/2010, 12h23
  4. Commande moteur pas-à-pas avec pic
    Par Mikaeltrigo dans le forum Électronique
    Réponses: 0
    Dernier message: 20/02/2008, 10h51
  5. Commande d'un moteur pas à pas avec L297 et L298
    Par Raton dans le forum Électronique
    Réponses: 1
    Dernier message: 13/06/2003, 23h41
Découvrez nos comparatifs produits sur l'informatique et les technologies.