Bienvenue aux nouveaux arrivants sur FantasPic !
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
Modérateur : Jérémy
Conversion A/D PIC24FJ (résolu)
Bonjour,
Il était une fois...
Je découvre la conversion analogique-numérique. Mon but est de faire un suivi de la décharge d'une batterie à l'aide d'une tension proportionnelle à celle de la batterie en question appliquée à la patte AN4 du PIC (qu'on nommera Ubatt) et d'afficher un % restant à l'utilisateur.
Le système est basique mais devrait être suffisant.
Je déclenche et j'arrête l'échantillonnage manuellement (bit SAMP) (durée d'échantillonnage environ 1 seconde) et j'ai réglé la vitesse d'échantillonnage au plus lent (Tad=Tcy*256). Vu qu'il s'agit d'un phénomène très lent ça doit être laaaargement suffisant.
J'utilise les interruptions et j'ai bien une interruption qui se produit suite à cette séquence.
Dans la routine d'INT, après avoir aussi contrôlé le bit DONE, je récupère le contenu de ADC1BUFx (explications sur le 'x' plus bas).
Quelques détails supplémentaires (voir captures jointes) :
Ref positive = AVdd (3.3V)
Ref négative = AVss (GND)
Ubatt max = environ 1.5V (d'après notre électronicien)
Conversion sur 10 bits
Encore des précisions :
puis :
Pour ce dernier point j'ai essayé en laissant BUFREGEN à 0 pour lire la conversion dans ADC1BUF0, mais le résultat est le même.
1.5 étant à peu près 45% de 3.3, je m'attendais à 45% de 0b1111111111(1023), soit environ 460.
Dans les faits, la valeur renvoyée par le module A/D est invariable pendant toute la durée de la décharge : 70. D'une part 70 ne correspond à aucune réalité, d'autre part, elle devrait varier pendant la décharge. Je pense qu'il y a quelque-chose que je n'ai pas compris dans le fonctionnement de ce module.
Les captures jointes
Génération de Ubatt:
Branchement de AVdd/AVss :
Branchement de Ubatt sur le AN4 du PIC :
Merci d'avance de votre avis.
Il était une fois...
Je découvre la conversion analogique-numérique. Mon but est de faire un suivi de la décharge d'une batterie à l'aide d'une tension proportionnelle à celle de la batterie en question appliquée à la patte AN4 du PIC (qu'on nommera Ubatt) et d'afficher un % restant à l'utilisateur.
Le système est basique mais devrait être suffisant.
Je déclenche et j'arrête l'échantillonnage manuellement (bit SAMP) (durée d'échantillonnage environ 1 seconde) et j'ai réglé la vitesse d'échantillonnage au plus lent (Tad=Tcy*256). Vu qu'il s'agit d'un phénomène très lent ça doit être laaaargement suffisant.
J'utilise les interruptions et j'ai bien une interruption qui se produit suite à cette séquence.
Dans la routine d'INT, après avoir aussi contrôlé le bit DONE, je récupère le contenu de ADC1BUFx (explications sur le 'x' plus bas).
Quelques détails supplémentaires (voir captures jointes) :
Ref positive = AVdd (3.3V)
Ref négative = AVss (GND)
Ubatt max = environ 1.5V (d'après notre électronicien)
Conversion sur 10 bits
Encore des précisions :
Code : Tout sélectionner
// Qu'est-ce qu'on veut convertir (registre AD1CHS) ?
// C'est SAMPLE 'A' qu'on va exploiter, pour AN4 :
AD1CHSbits.CH0NA = 0b000; // AVss est la ref négative (la même que celle indiquée dans AD1CON2[13](NVCFG0 qui est sur AVss par défaut))
AD1CHSbits.CH0SA = 0b00100; // pour AN4
// rien à faire pour SAMPLE B car pour en tenir compte il faudrait mettre AD1CON2[0](ALTS) à 1, ce qui n'est pas le cas.
puis :
Code : Tout sélectionner
AD1CON2bits.BUFREGEN = 1; // Pour dire qu'on veut ANx dans ADC1BUFx :
Pour ce dernier point j'ai essayé en laissant BUFREGEN à 0 pour lire la conversion dans ADC1BUF0, mais le résultat est le même.
1.5 étant à peu près 45% de 3.3, je m'attendais à 45% de 0b1111111111(1023), soit environ 460.
Dans les faits, la valeur renvoyée par le module A/D est invariable pendant toute la durée de la décharge : 70. D'une part 70 ne correspond à aucune réalité, d'autre part, elle devrait varier pendant la décharge. Je pense qu'il y a quelque-chose que je n'ai pas compris dans le fonctionnement de ce module.
Les captures jointes
Génération de Ubatt:
Branchement de AVdd/AVss :
Branchement de Ubatt sur le AN4 du PIC :
Merci d'avance de votre avis.
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Modifié en dernier par pucpood le lun. 12 janv. 2026 11:44, modifié 1 fois.
Conversion A/D PIC24FJ
Ce sujet aura au moins peut-être le mérite de servir à d'autres...
À très bientôt (j'ai un nouveau sujet MLA FILEIO à poster)
Retourner vers « Généralités sur les PICs »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 0 invité

