Je n'arrive pas à lire une tension analogique avec une Vref interne de 2.48 V
Je travaille avec un PIC16F1847 ( comme d'hab)
cela signifie que la tension d'alimentation du PIC va varier au rythme de la batterie !. ( de 3.3V à 4.2V)
Pour lire l'état de ma batterie je dois donc utiliser un ref en dessous de ma tension d'alimentation. j'ai donc choisie 2.048V.
Malheureusement je n'ai que de 1016 en réponse ! je pense que mon ADC est mal initialisé .
Pour alimenter mon pont diviseur de tension je me sers de la pin d'un pIc qui sera égal a la tension de la batterie !
J'ai rajouter un petit potar pour simuler une baisse de tension.
Voici le schéma simplifié
Voici mon initialisation :
Code : Tout sélectionner
ADC_Init(); // Initialisation de l'ADC
ADC_Init_Advanced(_ADC_EXTERNAL_VREFL |_ADC_INTERNAL_FVRH2); et
voici la fonction de lecture très simplifiée. A terme se sera une moyenne sur 8 valeurs mais quand ça fonctionnera !
Code : Tout sélectionner
void Lecture_T(){
if (ADC_Read(0)>1000){
Orange = 1;
}
else {Jaune=1;}
delay_ms(1000);
Jaune=Orange=0; je vous passe les détails du programme si il vous manque des infos , n’hésitez pas à me demander mais je pense avoir mis l'essentiel .
J'aurais aimé pouvoir réglé le bits du registre ADPREF mais je ne sais pas faire quand il y plusieurs bit pour un registre .
Il faut donc que je configure tout le registre ADCON1 , et la ben , je sais pas trop quoi mettre comme valeur dans les autres!
Avez vous une idée comment configurer mon ADC pour une ref interne de 2.048V.



