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

Programmation potentiometre pic



  1. #1
    invited42dacad

    Programmation potentiometre pic


    ------

    Bonjour , je suis etudiant en BTS 2eme année

    je vous presente la situation :

    il s'agit d'agir sur un potentiometre en faisant varier une tension de 0 a 5V relier a un PIC18F4431 (sur le port E ) afin de faire varier la vitesse de defilemnt de guiralnde.

    Je suis sur une entree analogique car il faut realiser une convertion analogique numerique.

    J'ai commencé un bout de prog:
    void main (void)
    {
    Init_Port();
    Init_ADC();
    }

    j'aimerais savoir la suite car je n'en qu'a la phase d'initialisation

    Un tres gros merci d'avance

    -----

  2. #2
    invite7a49d0d5

    Cool Re : Programmation potentiometre pic

    Bonjour torero30,

    la suite pourrait ressembler à un truc de ce style :
    Code:
    while true
    {
        vitesse = adc_convert();
        animer_guirlande(vitesse);
    }
    vede
    ;O]
    _______________________
    no pub...

  3. #3
    invited42dacad

    Re : Programmation potentiometre pic

    Merci de votre Vede , mais pour mieux comprendre ma situation je vous montre la tete de mon programme pour l'instant:

    include <p18f4431.h>


    #pragma config OSC = HS
    #pragma config LVP = OFF
    #pragma config DEBUG = ON

    #define GO ADCON0bits.GO

    void SetChanADC (void);
    void BusyADC (void);
    void ConvertADC (void);
    void ReadADC (void);
    void InitPort (void);
    void InitADC (void);

    unsigned int res;

    void main (void) // Programme principale
    {
    SetChanADC();
    BusyADC();
    ConvertADC();
    ReadADC();
    InitPort();
    InitADC();
    }

    //****************************** **************************
    // Initialisation du PIC18F4431
    //****************************** **************************

    void InitPort(void)
    {
    TRISA=0xFF; // Port A en entrée
    TRISB=0x00; // Port B en sortie
    TRISD=0x00; // Port D en sortie
    TRISE=0xFF; // Port E en entrée
    }

    //****************************** **************************
    // Initialisation du convertisseur analogique numerique
    //****************************** **************************

    void InitADC (void)
    {
    ADCON0bits.ADON=1; // Validation du convertisseur

    ADCON1bits.VCFG1=0; // VREF+=AVDD Choix des tensions de references
    ADCON1bits.VCFG1=0; // VREF-=AVSS

    ANSEL0bits.ANS7=1; // Mode analogique pour la broche d'entrée

    ADCON2bits.ACQT3=1; // Temps d'acqusition : 20 Tad
    ADCON2bits.ACQT2=0; // Temps d'etablissement de l'echantilloneur
    ADCON2bits.ACQT1=0;
    ADCON2bits.ACQT0=0;

    ADCON2bits.ADCS2=1; // Horloge pour la conversion Fosc/64 ( quartz 20 Mhz)
    ADCON2bits.ADCS1=0; // On obtient un Tad:3,2 us
    ADCON2bits.ADSC0=0; // Temps de conversion egale a 64 us
    ADCON2bits.ADFM=0; // Justification a gauche du resultat ( Grande precision deans les volts )


    IPR1bits.ADIP=0; // Interruption non prioritaire
    PIR1bits.ADIF=0; // Initialisation pour conversion
    PIE1bits.ADIE=0; // Interdiction interruption

    }

    //****************************** *
    //Selection de la voie a convertir
    //****************************** *

    void SetChanADC (void)
    {
    ADCHSbits.GDSEL1=0x80; // Selection de la broche AN7
    }

    //****************************** **
    // Lancement de la conversion
    //****************************** **

    void ConvertADC (void)
    {
    ADCON0bits.GO=1 // Mettre ce bit a 1 pour demarrer la conversion
    }

    // *****************************
    // Attente fin de onversion
    //******************************

    void BusyADC (void)
    {
    for(;
    {
    GO=1; //
    while(GO==1);
    res=ADRESH;

    }
    }


    // *****************************
    // Lecture des données
    //******************************

    void ReadADC (void)
    {
    res=ADRESH; // Recupere le poids fort du resultat

    }

Discussions similaires

  1. Besoin d'aide pour de la programmation d'un PIC en PIC BASIC
    Par invitee5982f08 dans le forum Électronique
    Réponses: 24
    Dernier message: 26/01/2010, 10h18
  2. Cablage Potentiometre Pic
    Par invitecf68cbc6 dans le forum Électronique
    Réponses: 5
    Dernier message: 20/03/2009, 22h38
  3. erreur 0X00 programmation PIC plus questions sur les PIC
    Par invite4a8ccabd dans le forum Électronique
    Réponses: 4
    Dernier message: 22/07/2007, 14h36
  4. Programmation MC 68HC11 PortA Potentiometre
    Par invite4890b244 dans le forum Électronique
    Réponses: 3
    Dernier message: 14/02/2007, 18h34
  5. Potentiomètre a PIC
    Par invite96a93ba8 dans le forum Électronique
    Réponses: 24
    Dernier message: 19/03/2006, 21h15
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...