Création
d'entreprise
Posez votre question Signaler

Convertisseur analogique/numerique

soniaaa - Dernière réponse le 19 sept. 2010 à 14:21
Bonjour,
je vais programmer un pic 16f876 avec le logiciel ISIS, j'ai une idee mais j pa compris comment faire la partie programmation d'un convertisseur analogique/numerique. l'entree est dans le port RA0/AN0 d'une temperature qui ne depasse pas 900degré, le probleme c'est comment comparer la temperature figé dans l'EEPROM et celle trouver dans le four a qui je vais faire mon projet. et merçi d'avance
Lire la suite 

Convertisseur analogique/numerique »

16 réponses
Réponse
+2
moins plus
ekhtique
Ajouter un commentaire
Réponse
+1
moins plus
Bonjour

Pour utiliser le CAN du PIC 16F876, il faut :

(je ne parle pas des interruptions ici)

1 - lire la datasheet http://ww1.microchip.com/downloads/en/DeviceDoc/30292c.pdf
2 - Configurer le convertisseur grâce au registre en fonction des E/S analogiques / digitales dont tu as besoin
Selectionner l'horloge (bits ADCS1:ADCS0 de ADCON0) : selon l'horloge du PIC
Mettre en marche le convertisseur (bit ADON de ADCON0)

3 - lire la datasheet http://ww1.microchip.com/downloads/en/DeviceDoc/30292c.pdf

4 - Selectionner ton entrée analogique (bits CHS2:CHS0 de ADCON0) et attendre "un peu" (2 TAD, voir datasheet)

5 - lire la datasheet http://ww1.microchip.com/downloads/en/DeviceDoc/30292c.pdf

6 - lancer une conversion en mettant à 1 le bit GO/DONE de ADCON0
attendre la fin de la conversion en attendant que GO/DONE retombe à 0
lire le résultat dans (ADRESH:ADRESL)

7 - lire la datasheet http://ww1.microchip.com/downloads/en/DeviceDoc/30292c.pdf

8 - si tu lis toujours la même voie, recommence en 6 ; si tu changes de voie, recommence en 4

les étapes 1,3,5, et 7 sont de loin les plus importantes
soniaaa - 17 mars 2008 à 01:08
merçi pere!
mais je ve savoir apres la conversion de la temperature en une tension avec ces instructions ke vous m'avez donné,comment je lis la temperature figé dans EEPROM DU PIC et la COMPARER surtout avec celle trouver dans le four,car en cas de chute de temperature du four çava activer une sirene.
et merçi encore d'avance
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour

Pour lire une donnée dans l'EEPROM, il n'y a pas grand chose à faire et tout est expliqué dans la datasheet (tu veux que je répète l'adresse ?) avec un exemple de programme (6 instructions !).
Pour comparer la température lue sur la capteur avec celle lue en EPROM, tu as l'instruction SUBWF dont le fonctionnement est détaillé dans la même datasheet.
Le seul point qui peut être un peu délicat est éventuellement de traduire la tension mesurée en degrés celsius, si tu en as réellement besoin mais pour ça il faut connaître la relation température - tension et toi seule la connais. Du moins, tu devrais la connaître.
Ajouter un commentaire
Réponse
+0
moins plus
slt 5 jour je leui donner la solution
Ajouter un commentaire
Réponse
+0
moins plus
pour une conversion analogique(temperature) en un signal numerique vous avez besoin:
-capteur de temperatur soit cts ou ctn
-connecteur DB9
-multiplixeur analogique 4051
-miltiplixeur digital 74157
Ajouter un commentaire
Réponse
-1
moins plus
Je comprend pas toutes la question...

Tu veux savoir comment convertir de l'analogique en numérique ou savoir comment récupéré la température de ton four ???
soniaaa - 17 mars 2008 à 00:34
BONJOUR
bon je veux savoir comment convertir de l'analogique en numerique, c'est a dire convertir de la temperature trouvé par le four en une tension, et si ilya une chute de temperature( moins de 900 degré) ça va sonner dans une sirene qui est activé par le pic 16f876.
et merçi
Ajouter un commentaire
Réponse
-1
moins plus
salut !!!
svp en utilisant le CAN du pic 16f876 et en comparant avec l'instruction 'subwf', je veux savoir la valeur recue par le capteur dans kel registre se trouve(c a dire dans kel regstre sera reçue) pour faire ma comparaison.

et merçi encore!
Ajouter un commentaire
Réponse
-1
moins plus
je veux savoir la valeur recue par le capteur dans kel registre se trouve
Je veux bien t'aider, mais de là à te dire à quelle page il faut ouvrir la doc (qui est très claire) et quelle ligne il faut lire... Je ne crois pas que ce soit un service à te rendre
soniaaa - 17 mars 2008 à 23:57
movlw 900
subwf toto,f ; toto = toto-900, C=1 si toto >=900
btfsc STATUS,C
goto toto_superieur_egal_900; ici toto < 900
toto est normalement la valeur reçue par le capteur c ça?
qui est normalent le registre ADRESL ou ADRESH?
si c faux donnez moi la page de datasheet a qui j'aurai la reponse...
et toujours merçi!!!
Ajouter un commentaire
Réponse
-1
moins plus
Bonjour

Effectivement, ça ressemble à ça, mais il y a quelques problèmes :

1- Le convertisseur mesure une tension. Le résultat de la conversion n'est certainement pas directement des degrés celsius, tu ne peux pas le comparer directement avec 900 ! Tu dois connaître la relation entre la température et la tension mesurée pour pouvoir interprêter le résultat de la mesure.
Ensuite, deux possibilités :
Si ton 900 doit toujours rester 900, tu calcules une fois à la main la tension correspondant et donc le résultat de conversion correspondant. C'est ce nombre là que tu mets dans ton EEPROM et c'est avec celui-là que tu fais ta comparaison. C'est le plus facile, mais c'est probablement trop figé
Si le 900 doit être réglable, il faut programmer dans le PIC la loi de conversion température / mesure CAN pour pouvoir refaire ce calcul à chaque changement du seuil ou à chaque mesure, selon le sens de la conversion. De plus, si tu fais la conversion dans le bon sens, ça te permet d'afficher la température (en as-tu besoin) ?

2- pour l'utilisation du SUBWF, léger malaise : l'instruction ne travaille que sur un octet, pas question de faire une comparaison avec 900 en une seule instruction. D'ailleurs le MOVLW 900 sera rejeté par l'assembleur, il ne peut pas faire 'tenir' 900 dans un octet !
Il faut enregistrer les données sur 2 octets. tu compares d'abord les poids forts, s'ils sont différents le résultat de la comparaison est dans C ; s'ils sont égaux tu compares les poids faibles

3- résultat dans ADRESL ou ADRESH ?
ça dépend... de comment tu as configuré le convertisseur. Si tu n'as pas besoin de beaucoup de précision, une conversion sur 8 bits peut suffire et tu n'as à te soucier que d'un seul des deux registres
chabbeh- 20 mars 2009 à 22:30
salut
j'ai besoin d'un programme en c pour convertir un signale analogique en signale numerique à l'aide d'un pic 16f877
soniaaa - 20 mars 2008 à 01:16
bonjour et merçi pere!

Pere, j'ai utilisé la methode de figeage de 900 (qui correspond à 32.5714mV exactement) parce que je ne connais pas la methode d'affichage de temperature sur un lcd et utiliser le clavier mais j vraiment besoin, mais aparement la methode de figeage de seulement 32.571 (900degré)n'est pas bien faisable..

Donc pour programmer du clavier une temperature qui doit se convertir a chaque fois en une tension je dois utiliser kel instructions? (j'en ai 150degré correspond à10mV et j'en ai aussi 1050degré correspond à 38mV) et l'alarme doit se declencher dans le plage de 898degré a peu pres jusqu'à 902 degré presk...........Est ce ke je dois des le debut programmer mon clavier et apres je programme la loi de conversion température / mesure CAN ou comment? POUR cette LOI est ce ke vous pouvez m'aider un peu sur les instructions!!!!
je crois donc lors d'utiliser cette loi,la temperature envoyé par le clavier doit etre systematiquement etre enregistrer dans EEPROM donc j'utilise a cet instant SUBWF mais cette fois avec la tension convertie(ne depasse pas normalement les 8 bits car max 38mv) et qui va faire la conparaison entre celle enregistré et celle reçue par la sonde du four ki est reçu dans le registre ADRESH( c'est lui de 8 bits non?)
soniaaa - 20 mars 2008 à 01:31
bonjour!

pére j vraiment besoin de vous envoyer le shema ke j fait en ISIS mais comment? est ce que vous pouvez me donner votre e_mail? si vous acceptez vous pouvez me repondre sur mon e_mail et merçiiiiii en tous cas:)
mon e_mail: sonia_1408@hotmail.fr

et merçii d'avance!!
Ajouter un commentaire
Ce document intitulé « convertisseur analogique/numerique » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?