Bonjour, cliquez-ici pour vous inscrire et participer au forum.
  • Login:


+ Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 15 sur 18

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

  1. Zanzan08

    Date d'inscription
    février 2007
    Âge
    21
    Messages
    42

    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é...
     


    • Publicité




      Poursuivez votre recherche
      Recherche personnalisée

  2. Gérard

    Date d'inscription
    janvier 2003
    Localisation
    Haut-Rhin
    Âge
    53
    Messages
    6 259

    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.
    Gérard.
     

  3. alainav1

    Date d'inscription
    janvier 2005
    Localisation
    calais
    Âge
    62
    Messages
    3 318

    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. Zanzan08

    Date d'inscription
    février 2007
    Âge
    21
    Messages
    42

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

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

  5. alainav1

    Date d'inscription
    janvier 2005
    Localisation
    calais
    Âge
    62
    Messages
    3 318

    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
    Décider de faire c'est bien décider quand c'est mieux !
     

  6. nhenri

    Date d'inscription
    octobre 2010
    Messages
    60

    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-
     


    • Publicité



  7. mazoul72

    Date d'inscription
    août 2011
    Messages
    6

    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.
     

  8. Franck-026

    Date d'inscription
    mars 2011
    Âge
    44
    Messages
    2 780

    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.
     

  9. mazoul72

    Date d'inscription
    août 2011
    Messages
    6

    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...
     

  10. mazoul72

    Date d'inscription
    août 2011
    Messages
    6

    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.
     


    • Publicité



  11. Franck-026

    Date d'inscription
    mars 2011
    Âge
    44
    Messages
    2 780

    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?
     

  12. mazoul72

    Date d'inscription
    août 2011
    Messages
    6

    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
     

  13. Franck-026

    Date d'inscription
    mars 2011
    Âge
    44
    Messages
    2 780

    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...
     

  14. Gérard

    Date d'inscription
    janvier 2003
    Localisation
    Haut-Rhin
    Âge
    53
    Messages
    6 259

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

    PIC BasicPro est compilé pas interprété.
    Gérard.
     


    • Publicité



  15. mazoul72

    Date d'inscription
    août 2011
    Messages
    6

    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
     


Poursuivez votre recherche :




Sur le même thème :




 

Discussions similaires

  1. émuler un signal sur une entrée PIC avec MPLAB
    Par arzew dans le forum Électronique
    Réponses: 3
    Dernier message: 24/02/2008, 07h15
  2. Tension maximale entrée analogique pic
    Par Nico8583 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 alainav1 dans le forum Électronique
    Réponses: 5
    Dernier message: 06/11/2006, 11h24
  4. Entrée analogique sur Microcontorleur PIC
    Par Toofik dans le forum Électronique
    Réponses: 1
    Dernier message: 27/01/2006, 22h47
  5. Potar sur entrée analogique PIC
    Par Marc dans le forum Électronique
    Réponses: 3
    Dernier message: 17/05/2003, 15h58


Les tags pour cette discussion