fabrication d'un télémetre ( probleme au niveau codage )
Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

fabrication d'un télémetre ( probleme au niveau codage )



  1. #1
    invite13dcd32e

    fabrication d'un télémetre ( probleme au niveau codage )


    ------

    bonjour a tous ,


    voila j'ai crée un signal carré de 40khz dans un micrcontroleur ( PIC16F1508) pour que mon émetteur a ultrason émette un signal , mon recepteur le recois, je l'amplifie avec un aop et avec un comparateur je renvoie a mon microcontroleur un signal carré dephasé par raport au temps que met l'onde sonore pour atteindre mon recepteur a ultrason.

    mais probleme mon code ne marche pas , le voici:
    Code:
    #define SORTIE_ULTRASON RA4
    #define ENTREE_ULTRASON RA5
    
    int i=0;
    long int compteur=0,chrono=0; 
    
    void init_pic()
    {
    OSCCON=0b01111010;  //Oscillateur interne à 16MHZ
    T0CS=0;   // comptage quartz: FOSC/4=4MHz
    GIE=1;    // autorisation générale IT
    T0IE=1;   //valide IT en cas de débordement de TMR0
    T0IF=0;   // initialise T0IF a 0, T0IF=1 quand debordement de TMR0
    PSA=1;    // On active PAS les prediviseurs
    TMR0=219;      // TMR0 reglé pour avoir une frequence de 80KHZ
    
    //configuration des PORTS
    
    ANSELA=0;
    TRISA=0b00100110; //RA5 en entré ---> consacré au Recepteur a ultrason
                      //RA2 en entré ---> bouton poussoir qui active l'ultrason
                      //RA1 en entré ---> bouton poussoir qui desactive l'ultrason
    PORTA=0x00;
    
    //PORT consacre a l'afficheur 7 segments
    ANSELB=0;
    TRISB=0x00; // en sorties
    PORTB=0x00;
    
    ANSELC=0;
    TRISC=0x00;
    PORTC=0x00;
      
    void interrupt sous_programm()
    {
    
    if(T0IF==1)//80 khz
        {
            T0IF=0;
    
            if(i==1)//appuie bouton poussoir
            {
            SORTIE_ULTRASON=!SORTIE_ULTRASON;//frequence reglé a  40KHZ
            compteur++; // compteur=80000 --> 1 seconde
            
            }
            chrono++;
            TMR0=219;// pour avoir une frequence d'environ 80khz
        }
    }
    
    init_pic();
    int tab[11]={0xC0,0xCF,0x92,0x86,0x8D,0xA4,0xA0,0xCE,0x80,0x84,0xB0};// pour les digits , ca correspond aux chiffres de 0 a 9 et de E 
    int millimetre=0,centimetre=0,decimetre=0,metre=0;
    int b=0;
    float distance=0,a;
    DIGIT_1 = 1;//RB4 a 1
    
    
    while(1)
        {
        if(RA2==1){ //appuie bouton poussoir
                    compteur=0;
                    while(RA2==1); // on attend le relachement du bouton poussoir
                    while(chrono<400);// contre le rebond : attente de  5 ms
                    chrono=0;
                    i=1;//on active l'oscillation de l'ultrason
                    b=1;
                    
                   }
    
    if( b==1 ) 
        {
           
            if(ENTREE_ULTRASON==1)
            {
            b=0;i=0; //on desactive l'ultrason 
        // calcul de distance
            
        distance = (0.00425363 * (float)compteur ) /2 ;
        }
    else{
      //on active l'afficheur 7 segments
        }
    }
    j'ai testé mon afficheur 7 segments et il fonctionne , le probleme est que pour tester sans tenir compte de l'ultrason je met 5 v a mon entrée ultrason et ca devrait m'afficher 0 sur mes digits car compteur n'a pas le temps de s'incrementer mais la ca m'affiche 14 ou 2 et des fois > 10000 dans mes digits et je ne comprend pas pourquoi la variable compteur arrive a monter jusqu'a 7.
    avez vous une idée?
    merci d'avance car le code est long

    -----

  2. #2
    invite13dcd32e

    Re : fabrication d'un télémetre ( probleme au niveau codage )

    probleme reglé

  3. #3
    gienas
    Modérateur

    Re : fabrication d'un télémetre ( probleme au niveau codage )

    Bonjour Albert-cosmoff et tout le groupe

    Citation Envoyé par Albert-cosmoff Voir le message
    probleme reglé ...
    Ton monologue montre bien l'état d'esprit qui est le tien quand tu viens ici, que l'on peut résumer en quelques mots: aidez-moi mais ne comptez pas sur moi pour vous renvoyer l'ascenseur.

    Ce n'est pas ainsi que "nous" comprenons les forums, qui sont supposés former une base de données pour tous les visiteurs, qui peuvent apprendre des erreurs des autres.

    Puisque tu avais fait cette erreur (et probablement que tu n'avais pas assez réfléchi avant de poster, puisqu'il est toujours plus facile de demander, que tu l'as corrigée, la moindre des corrections eût été de l'expliciter ici même, plutôt que de dire "ne cherchez plus".

    J'attends de toi cette conclusion, même si tu as déjà un autre problème sur le feu.

Discussions similaires

  1. TPE sur le pixels, codage binaire, codage hexadécimal..
    Par invite2dd170e6 dans le forum TPE / TIPE et autres travaux
    Réponses: 0
    Dernier message: 09/11/2012, 17h16
  2. Probleme comprehension schema electronique (telemetre a ultrasons)
    Par inviteee9f4d46 dans le forum Électronique
    Réponses: 18
    Dernier message: 30/05/2012, 10h57
  3. [Biochimie] codage d'un message nerveux au niveau d'un nerf et d'une fibre nerveuse
    Par invite2bbdd9ac dans le forum Biologie
    Réponses: 1
    Dernier message: 29/04/2011, 08h15
  4. Problème de réalisation d'un télémètre Ultrason
    Par invite453b0cd6 dans le forum Électronique
    Réponses: 11
    Dernier message: 01/10/2007, 02h56
  5. Télémètre : problème de réception...
    Par invite2e627298 dans le forum Électronique
    Réponses: 27
    Dernier message: 01/05/2007, 06h34
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...