bonjour,
comment je peux récupérer la valeur en analogique aprés la conversion par l'ADC de pic 16f877??
-----
bonjour,
comment je peux récupérer la valeur en analogique aprés la conversion par l'ADC de pic 16f877??
... en lui demandant gentiment
Plus sérieusement : sans une demande précise, tu n'auras pas de réponse !
Précises : quel langage, quel compilateur, ... explique ce que tu veux faire et ce que tu as déjà fait.
A+
Laurent
Quand la valeur ana est convertie, elle se retrouve dans les registres ADRESH et ADRESL.
A partie de là, tu en fais ce que tu veux.
Vois aussi ADCON0 et ADCON1, c'est bien expliqué dans la doc.
mon objectif: c'est de realiser un ohmetre avec le pic 16F877 en utilisant le micro C.
donc j'ai commencé avec la realisation du circuit en isis, et maintenant je suis en train de faire le programme permuttant de lire la tension au niveau de resistance à mesurer par l'ADC de pic 16F877 et je demande gentiment comment je peux recuperer la valeur en analogique apres la conversion par l'ADC.
Je t'ai gentiment répondu en #3.
Il faudrait déjà savoir ce que tu souhaites faire avec cette valeur, affichage sur 7 segments, LCD, l'envoyer par RS232 vers un ordi, autre ...
MERCI INFINIMENT.
à ce stade je souhaite l'afficher sur un LCD puis dans une deuxieme partie de mon projet je veux l'envoyer par RS232 vers un ordinateur
La valeur qui se trouve dans les registres cités représente une valeur analogique. Il faut faire une règle de 3 pour en connaitre la valeur physique.
Il est important de savoir le nb de bit utilisés pour la conversion (8 ou 10), il faut aussi savoir quelle est l'amplitude de l'échelle.
Je te conseille vivement de lire la doc du PIC concerné.
bonjour,
Sous MikroC tu as deja toutes les bibliotehque dispo
stocker la valeur de l'ADC dans un entier non signé 16 bit .
biblioteque CONVERSION
pour transformer la valeur en ascii voir WordToStr
dans un tableau ( ex : char Texte[16]
bibiliotheque UART
Initaliser l'UART à une vitesse en baud
Envoyer via l'UART du PIC , la valeur convertie en texte,
sur un terminal PC RS232 Terminal Vbray, Putty, TeraTerm..etc avec la meme vitesse en baud
(avec un circuit d'adaptation adequate TTL/RS232 MAX232 par exemple)
bibliotheque LCD.
Specifier la connection Hardware pour le LCD (data et controle)
initialiser le LCD
envoyer le texte sur l'afficheur (Numero de ligne numero de colonne)
dans un premier temps nsiualise la valeur brute qui doit evoluer entre 0 et 1023
si c'est OK
tu peux ensuite faire la mise à l'echelle en unité physique ( affichage en ohms)
Let's GO
Dernière modification par paulfjujo ; 23/02/2015 à 15h12.
j'avais pensé aussi au regle de trois mais j'avais trouver ce code dans une ancienne discussion et j'arrive pas à le comprendre:
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)
Je ne comprends pas non plus, on ne sait pas de quoi il est question. Pourquoi *42, *43, /86?j'avais pensé aussi au regle de trois mais j'avais trouver ce code dans une ancienne discussion et j'arrive pas à le comprendre:
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)
Suis les conseils de Paulfjujo avant de vouloir convertir.
oui c'est ça le problem je savais pas pourquoi *42, *43, /86? et d'ou vient cette formule.
je vais suivre les conseils de Paulfjujo mais comme meme je voulais comprendre l'instruction (a-(a/43))/2.