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

Programmation C



  1. #1
    trip74

    Question Programmation C


    ------

    Bonjour à tous, je suis actuellement sur le projet d'un robot suiveur de ligne et détecteur d'obstacle, nous programmons un PIC 18F2550 avec le logiciel PIC C COMPILER. Le robot comporte 2 moteurs branchés en inverses.

    Mon problème c'est que je n'arrive pas à faire tourné les moteurs, Il faut 4,5V a ses bornes pour qu'ils puissent avancé, cependant j'obtiens 4,8 au + et 0.8 au - je comprend pas pourquoi... Je suis débutant en programmation de C donc je suis preneur de tous conseils.

    Je commande les moteurs sur le port A : A0 jusque A3 en analogique

    Voila mon programme :
    Code:
    void main()
    {
       init();
       output_low (Mgm);
       output_low (Mdp);
       while(1==1)
       {
       moteur();
       //detect();
       }
    }
     
    //*****************************************************************************
    void init()
     
    {  
       setup_adc_ports(AN0_TO_AN3|VSS_VDD);
       setup_adc(ADC_OFF);
     
     
       port_b_pullups (TRUE); // initialisation portB
       output_bit (Almm, 1);
       output_bit (Gndm, 0);
       // initilisation interruption externe
      // ext_int_edge( l_to_h ); //Interruption déclenchée sur un front montant
      // enable_interrupts( INT_EXT1 ); // Autorisation d'interruption par RB1
     //  enable_interrupts( GLOBAL );  //Autorisation d'interruption global
    }
    //*****************************************************************************
    //void detect()
    //{
    //output_high (CmdAlimGP2);
    //}
    //*****************************************************************************
    void moteur()
    {
       if (LM == 1)
       {
          if ((LD == 0)&&(LG == 0))
          output_high((Mdm)&&( Mgp));
           
          if ((LD == 1)&&(LG == 0))
          output_high(Mgp);
          output_low(Mdm);
       
          if ((LD == 0)&&(LG == 1))
          output_high(Mdm);
          output_low(Mgp);
       }
       if (LM == 0)
       {
          if ((LD == 0)&&(LG == 0))
          output_high((Mdm)&&( Mgp));
           
          if ((LD == 1)&&(LG == 0))
          output_high(Mgp);
          output_low(Mdm);
       
          if ((LD == 0)&&(LG == 1))
          output_high(Mdm);
          output_low(Mgp);
       }
    }
    Si vous avez des suggestions sa sera avec plaisir ! Merci d'avance.

    .

    -----
    Dernière modification par gienas ; 28/01/2010 à 08h56. Motif: Remplacé balise spoiler par code

  2. #2
    Gérard

    Re : Programmation C

    Quelle est la consommation des moteurs ,
    Qu'est ce qu'il y a entre les moteurs et le PIC ?
    Quel est le schéma ?

  3. #3
    trip74

    Re : Programmation C

    En fait le problème ne vient pas de mon programme.. C'est juste qu'il faut une carte d'interface que mon prof n'a pas.. donc je ne pourrais jamais tester mon programme..

    Désolé pour mon post..

Discussions similaires

  1. Programmation en C
    Par Mickl1722 dans le forum Logiciel - Software - Open Source
    Réponses: 42
    Dernier message: 14/10/2009, 19h35
  2. Programmation C
    Par Revenn dans le forum Électronique
    Réponses: 21
    Dernier message: 22/03/2008, 00h19
  3. Programmation
    Par stephilc86 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 2
    Dernier message: 13/11/2006, 11h50
  4. programmation
    Par Elek dans le forum Logiciel - Software - Open Source
    Réponses: 8
    Dernier message: 09/04/2006, 14h54
  5. Programmation en C
    Par KHEOPS1982 dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 21/02/2006, 13h23
Découvrez nos comparatifs produits sur l'informatique et les technologies.