commander la position d'un moteur à courant continu
Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

commander la position d'un moteur à courant continu



  1. #1
    invite4b36df62

    Exclamation commander la position d'un moteur à courant continu


    ------

    Bonjour à tous,
    je veux envoyer l'angle et donc la position dont je veux mon moteur atteindre en utilisant PIC C compiler et 16F877, mais le code que j'ai écris n'as aucune influence sur mon moteur il reste stable à sa place sans bouger. voici mon code si quelqu'un peut voir ma faute s'il vous plait
    Code:
    #include<16F877.h>
    #fuses HS,XT,NOWDT,NOPROTECT
    #use delay(clock=4000000)
    #include <stdlib.h>
    #include <string.h>
    #include <math.h>
    #include <stdio.h>
    #use RS232 (baud=9600, Xmit=PIN_C6, Rcv=PIN_C7) //includes the rs232 libraries
    #define BUFFER_SIZE 32
    
    BYTE buffer[BUFFER_SIZE];
    BYTE next_in = 0;
    long teta;
    float angle;
    long teta1=30;
    int diff;
    int value=0;
    
    void rotation (long teta)
    {
    
    input(PIN_A4);
    
    setup_counters(RTCC_EXT_L_TO_H,WDT_18MS); //utiliser timer0 en mode compteur
    set_timer0(0);
    
    
    diff=teta - teta1;  // comparer la position actuelle à celle désirée
    
    if (diff>0)
       output_high(PIN_B1);  //rotation dans le 1er sens
    if (diff<0)
       output_low(PIN_B1);   //rotation dans le 2ème sens
    
    if (diff=0)
       Set_pwm1_DUTY(0);   //arrêt donc maintenir la positionn actuelle
    do{
    set_pwm1_duty(255);  // moteur en marche
    value=get_timer0(); //nombre d'impulsions
    angle=value*3.6;   // position atteinte
    teta1 = ceil (angle);
    }while(teta1<=diff);
    write_eeprom(1,teta);   //teta1=teta; //mémorisation de la position
    }
    
    #INT_RDA
    void serial_interrupt ( )
    {
    int check;
       do
       {
       buffer[next_in]=getc();
       check = buffer[next_in];
       next_in=(next_in+1) % BUFFER_SIZE;
       }
       while(check!=13 & check!=0);//13 = end of transmission
       							   //00 = timeout
    teta = atol(buffer);//convertir la chaine de caractère en un entier de 16 bits
    rotation(teta);
    next_in = 0;
    }
    
    
    main(){
    
    //int duty= 220;
    
    
    teta1= read_EEPROM (1);
    enable_interrupts(GLOBAL);  //activation de sinterruption
    enable_interrupts(INT_RDA);  //interrupt fires when the receive data is available, RS232 ON
    
    
    
    setup_timer_2(T2_DIV_BY_1,255,1); //génération du PWM
    setup_ccp1(CCP_PWM);
    Set_pwm1_DUTY(0);
    
    
    
    }//fin du programme
    s'il vous plait aidez moi c'est très urgent

    -----

  2. #2
    invitebf1fc6cf

    Re : commander la position d'un moteur à courant continu

    Salut,
    Précise le type de moteur utilisé.
    Merci

  3. #3
    gienas
    Modérateur

    Re : commander la position d'un moteur à courant continu

    Bonsoir Tryler et tout le groupe

    Citation Envoyé par Tryler Voir le message
    ... Précise le type de moteur utilisé ...
    Hum! J'ai bien peur que le type du moteur importe peu, si l'on nous dit pas surtout, comment le programme est supposé commander le dit moteur.

    En outre, cette question, posée à l'origine, était super urgente. C'était, il y a cinq mois, et aucune relance n'a été faite. J'ai donc bien peur que toute aide soit à présent totalement inutile.

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/04/2008, 07h14
  2. Réponses: 1
    Dernier message: 25/04/2008, 07h14
  3. Commander un moteur à courant continu.
    Par kioub dans le forum Électronique
    Réponses: 24
    Dernier message: 19/12/2007, 14h01
  4. Choix d'un moteur à courant continu.
    Par invite7631eac3 dans le forum Électronique
    Réponses: 1
    Dernier message: 28/12/2006, 06h36
  5. commander un moteur courant continu
    Par invitee29241ee dans le forum Électronique
    Réponses: 0
    Dernier message: 23/11/2006, 12h46
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...