Convertir une entrée analogique sur un pic 16f818?
Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 30 sur 35

Convertir une entrée analogique sur un pic 16f818?



  1. #1
    invite1ba9a743

    Convertir une entrée analogique sur un pic 16f818?


    ------

    Bonjour
    Pour mon TPE j'ai un potentiomètre en entrée analogique sur mon PIC 16F818, et la tension varie entre 0 et 5V, mais comment faire pour attribuer une valeur numérique (qui sera comprise entre 0 et 255) à cette tension? En fait j'ai déjà réussi à comparer la valeur de deux potars dont l'un joue le rôle de consiqne. J'ai utilisé ReadHigh (j'utilise MPLab). Mais ce que je ne comprends pas, c'est comment le PIC peut "savoir" que par exemple 5V sera la valeur maximale? Car pour convertir il faut bien qu'il ait une "échelle"...?
    Merci d'avance, et dites si je me suis mal exprimé...

    -----

  2. #2
    Gérard

    Re : Convertir une entrée analogique sur un pic 16f818?

    Bonjour,
    Dans la config du CAN, tu dois déclarer l'échelle.
    Il exixte aussi des broches qui permettent de déclarer VRef+ et VRef-.
    Il faut lire la doc.
    Voir ADCON et ADCON1.
    Ces 2 registres existent sur le 16F877, je ne connais le PIC dont tu parles.

  3. #3
    invite3a1051d7

    Re : Convertir une entrée analogique sur un pic 16f818?

    bonjour,
    Personnellement je fais la conversion sur 10 bits (entrer 0 et 1023) et par defaut entre 0 et la tension d'alimentation soit 5v).
    je programme en basic donc je defini une variable integer pour lire la valeur analogique .
    mais si tu lis avec une variable sur 8 bits tu auras surement la tension d'alimentation.entre 0 et 255
    tu peux jeter un cop d'oeil sur mon site ou j'ai quelques programmes d'utilisations avec l'entree analogique.
    j'espere t'avoir proposé quelques pistes .
    comme dit dans le poste different la datasheet de permettra de savoit coment definir des gammes de tensions differente (mais toujours inferieur a la tension d'alimentation)
    cordialement
    Alain

  4. #4
    invite1ba9a743

    Re : Convertir une entrée analogique sur un pic 16f818?

    OK
    Merci à vous deux, je vais regarder la datasheet...

  5. A voir en vidéo sur Futura
  6. #5
    invite3a1051d7

    Re : Convertir une entrée analogique sur un pic 16f818?

    bonjour,
    suite à un message privé je déterre ce post car cette explication peut etre utilisé par d'autre ?
    voici un exemple de lecture d'une valeur analogique pour un pic 16F88 (ecrit en basic ) c'est pareil sur un 16F818
    l

    'configuration du port pour lire l'entrée analogique
    ADCON1 = %00001110 'configuration en I/O et ra0 en analogique
    ANSEL = %00000001 'A/D en ra0
    dim a as word 'v est une variable qui prendra une valeur entre 0 et 1024 pour une tension entre 0 et 5V
    'autres variables utiles pour les calculs
    dim b as word
    dim r as word

    'lecture de la valeur
    ADCON0.ADON = 1
    Adcin 0, a 'la valeur de l'entrée est dans a

    'exemple de mesure
    a=0 si l'entrée a.0 est à 0V
    a=1024 si l'entrée a.0 à 5V (tension d'alim du pic)
    a=512 si l'entrée est à 2,5V

    exemple de calcul pour afficher la tension lue sur un LCD
    soit 3,5v la valeur mesurée a=717
    a= 717
    b = a / 43 ' b=16
    v = a - b 'v=717-16=701
    a = v / 2 'a=350
    b = a / 100 'b=3
    r= a - (b * 100) 'r=350-(3*100)=50
    Lcdout #b 'affichage de 3
    Lcdout ","'affichage de ,
    Lcdout #r ' affichage de 50
    Lcdout " Volt "
    soit affichage de " 3,50 Volt"

    cordialement
    Alain

  7. #6
    invite219b5772

    Re : Convertir une entrée analogique sur un pic 16f818?

    Bonjour,
    A suposer que tu soit sur un alim 5v et bien configure le PCFG<3:0> (page 82 et FIGURE 11-1 page 83) correctement afin d'avoir par exemple Vref+ = AVdd (ton alim) et VREF- = AVSS (ton gnd).
    Ensuite pour avoir une valeur entre 0-255, place ADFM a 0 et lit ADRESH qui sont les 8 bits MSB du resultat (voir page 86).

    -Nik-

  8. #7
    inviteeab91125

    Re : Convertir une entrée analogique sur un pic 16f818?

    Bonsoir,
    j'ai un soucis avec la détection des entrées analogiques .
    Plusieurs questions me viennent à l'esprit :
    - doit-on simplement utiliser ADCIN channel , variable ?
    Dans ce cas , doit-on forcément utiliser ADCON0 ?

    - doit-on forcément utiliser ADRESH:ADRESL puis faire la transfo adresh+adresl*256 ?

    - les deux méthodes sont-elles dépendantes l'une de l'autre ?

    j'ai vu les deux sur le net dans des forums , mais quels sont vraiment les lignes à compiler.
    La méthode adcin ne fonctionne pas.

    bmf_comm1 VAR PORTB.0
    bmf_comm2 VAR PORTB.1

    bmfs VAR WORD
    bmfs1 VAR WORD
    Output bmf_comm1
    Output bmf_comm2
    Low bmf_comm1
    Low bmf_comm2

    TRISA = $FF
    ADCON1 = $81
    lecture_bmf:

    'Mesure en sortie de bmf

    Adcin 0,bmfs
    Adcin 1,bmfs1

    if (bmfs > 1000) or (bmfs1 > 1000) Then Goto boucle2_fin
    if (bmfs > 750) or (bmfs1 > 750) Then Goto boucle_fin
    if (bmfs > 500) or (bmfs1 > 500) Then Goto boucle_fin2
    if (bmfs > 250) or (bmfs1 > 250) Then Goto boucle_fin

    boucle_fin:
    High bmf_comm1
    High bmf_comm2
    goto boucle_fin3
    boucle_fin2
    High bmf_comm2
    boucle_fin3
    pause 2000
    boucle2_fin
    low bmf_comm1
    low bmf_comm2
    Goto lecture_bmf


    Ne pas regarder les boucles , fais à la va vite....
    Mais donc ça ne fonctionne pas comme ça.
    J'ai essayé de rajouté le ADCON0.2 = 1 et le ADON mais ça passe pas non plus.

    Merci d'avance.

  9. #8
    invitefaaca50b

    Re : Convertir une entrée analogique sur un pic 16f818?

    Si tu as Vref+ = 5,12V et 10 bits de profondeur, en prenant la valeur ADRESH et ADRESL sur 10 bits, tu recupere tes 9 bits forts (division par 2) et tu auras la comparaison directe 5.11V = 511 soit quantum de 10mV cela sans tableau de conversion.

  10. #9
    inviteeab91125

    Re : Convertir une entrée analogique sur un pic 16f818?

    donc je dois bien prendre adresh et adresl .
    J'ai 4.98V .
    Quand tu parles de division , je comprends pas le terme de quantum.
    Pourquoi ne pas prendre les 10 bits et faire adresl*256+adresh ?

    Pourtant , sur ce site , pas d'adresh ni adresl ... comprends pas...

  11. #10
    inviteeab91125

    Re : Convertir une entrée analogique sur un pic 16f818?

    bon je viens de reregarder le manuel du picbasic pro , pas besoin de transfo et directement lecture adcin donc je ne sais pas ou ca bloque.

  12. #11
    invitefaaca50b

    Re : Convertir une entrée analogique sur un pic 16f818?

    c'est sur qu'avec ton langage exotique... Les assembleux que nous sommes ne pouvaient comprendre le pourquoi... Et puis au fait, pourquoi un transfo?

  13. #12
    inviteeab91125

    Re : Convertir une entrée analogique sur un pic 16f818?

    transformation
    tu sais , à l'époque du basic sur amstrad , j'adorais ça.
    j'ai aucun soucis avec l'assembleur...
    mais c'est trop loin pour moi maintenant pour me rappeler..ce langage .
    Ca demande plus de remue méninge , à mon age , ....lol

  14. #13
    invitefaaca50b

    Re : Convertir une entrée analogique sur un pic 16f818?

    Pourtant l'assembleur est vachement mieux approprié pour programmer les µC car ce n'est pas un langage interpreté... Donc plus rapide et plus synchro...

  15. #14
    Gérard

    Re : Convertir une entrée analogique sur un pic 16f818?

    PIC BasicPro est compilé pas interprété.

  16. #15
    inviteeab91125

    Re : Convertir une entrée analogique sur un pic 16f818?

    ca m'aide pas vous savez de savoir que l'assembleur est mieux pour programmer.
    Que ce soit le basic ou l'assembleur , le résultat sera le même au final...
    Mais je voudrais avoir une réponse à ma question.

    Merci

  17. #16
    Gérard

    Re : Convertir une entrée analogique sur un pic 16f818?

    Si tu bosses en Basic, faut voir la doc du compilateur.
    Chaque langage a ses propres spécifications.

  18. #17
    inviteeab91125

    Re : Convertir une entrée analogique sur un pic 16f818?

    Bon ,
    je me suis mis à l'assembleur mais j'ai quelques erreurs:

    http://forums.futura-sciences.com/at...1&d=1314382622
    Images attachées Images attachées  

  19. #18
    Gérard

    Re : Convertir une entrée analogique sur un pic 16f818?

    Si tu travailles en asm, regarde les cours de Bigonoff, il n'y a pas mieux.

  20. #19
    invitec2c8a873

    Re : Convertir une entrée analogique sur un pic 16f818?

    exemple de calcul pour afficher la tension lue sur un LCD
    soit 3,5v la valeur mesurée a=717
    a= 717
    b = a / 43 ' b=16
    v = a - b 'v=717-16=701
    a = v / 2 'a=350
    b = a / 100 'b=3
    r= a - (b * 100) 'r=350-(3*100)=50


    comment avez vous faite ces calculs ?? d'ou vient 43 ???

  21. #20
    invite830075ec

    Re : Convertir une entrée analogique sur un pic 16f818?

    Code:
     a                     valeur retournée par l'ADC, de 0 à 1023
     (a*5)/1024            tension en volt mesurée et obtenue par règle de trois
     (a*500)/1024          idem en centièmes de volt
     (a*42)/86             idem en divisant par 11.905 pour l'un, 11.907 pour l'autre (approximation)
     (((a*43)-a)/43)/2     idem
     (a-(a/43))/2          idem, c'est la tension en centièmes de volt avec approximation
     
     Il suffit de faire les opérations entières suivantes
      (a-(a/43))/2         tension en centièmes de volt
     ((a-(a/43))/2) / 100  donne le nombre de volt
     ((a-(a/43))/2) % 100  donne les décimales (centièmes de volt)

  22. #21
    invitec2c8a873

    Re : Convertir une entrée analogique sur un pic 16f818?

    si la valeur retournée par l'ADC est en 8 bits ce calcul ne convient pas !!!

  23. #22
    invite830075ec

    Re : Convertir une entrée analogique sur un pic 16f818?

    ((a-(a/43))*2)-(a>106)

  24. #23
    invitec2c8a873

    Re : Convertir une entrée analogique sur un pic 16f818?

    (a>106) ?????

  25. #24
    invite830075ec

    Re : Convertir une entrée analogique sur un pic 16f818?

    c'est le dernier coup de lime, on peut s'en passer

  26. #25
    invitec2c8a873

    Re : Convertir une entrée analogique sur un pic 16f818?

    peut tu m'expliquer bcp plus

  27. #26
    invite830075ec

    Re : Convertir une entrée analogique sur un pic 16f818?

    Sais-tu quelles sont les valeurs que peut prendre l'expression (a>106) ?

  28. #27
    invitec2c8a873

    Re : Convertir une entrée analogique sur un pic 16f818?

    non je sais pas
    dans le cas de mon programme a peut prendre des valeurs entre 174 et 195

  29. #28
    invite830075ec

    Re : Convertir une entrée analogique sur un pic 16f818?

    (a>b) est une expression de comparaison qui est vérifiée si la valeur de a est supérieure à celle de b.
    On s'en sert généralement dans une instruction if, mais c'est aussi une expression qui est évaluée par le compilateur, elle est égale à 0 si si a <=b, et à 1 si a > b. Donc elle ne peut prendre que 2 valeurs, 0 ou 1.
    Je l'ai utilisée pour ajuster le résultat, pour rattraper un peu les erreurs dues à l'approximation du calcul.

  30. #29
    invitec2c8a873

    Re : Convertir une entrée analogique sur un pic 16f818?

    ok merci infiniment

  31. #30
    invitec2c8a873

    Re : Convertir une entrée analogique sur un pic 16f818?

    j'ai essayé la formule que tu m'as donné a-(a/43))*2)-(a>106)
    mais ça pas marcher je trouve des résultats faux

Page 1 sur 2 1 DernièreDernière

Discussions similaires

  1. émuler un signal sur une entrée PIC avec MPLAB
    Par invite5396f733 dans le forum Électronique
    Réponses: 3
    Dernier message: 24/02/2008, 07h15
  2. Tension maximale entrée analogique pic
    Par invite427c7eae dans le forum Électronique
    Réponses: 8
    Dernier message: 15/04/2007, 22h07
  3. pic passer d' entrée en sortie sur une pin
    Par invite3a1051d7 dans le forum Électronique
    Réponses: 5
    Dernier message: 06/11/2006, 11h24
  4. Entrée analogique sur Microcontorleur PIC
    Par invite49856ed4 dans le forum Électronique
    Réponses: 1
    Dernier message: 27/01/2006, 22h47
  5. Potar sur entrée analogique PIC
    Par invite32bb90e8 dans le forum Électronique
    Réponses: 3
    Dernier message: 17/05/2003, 15h58
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...