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 ---
Forum général sur le langage C !

Modérateur : Jérémy

Thermomètre 16F684
RETRAITE128
Amateur
Amateur
Messages : 125
Enregistré en : août 2021

#1 Message par RETRAITE128 » dim. 31 août 2025 11:50

Bonjour,

Je viens de réaliser ce thermomètre issu de la revue Elektor (voir schéma)

Pour calibrer cet appareil, il faut appuyer sur S1, puis corriger la valeur affichée avec action sur P1.
Hélas, rien ne va comme prévu, aucune action n'est obtenue.
Lorsque je mesure la tension en RA1, j'ai bien une variation à condition que le PIC soit absent.

Lorsqu'il est présent, il ne reste que quelques millivolts.

Je vous joints les fichiers, je n'ai pas de programme me permettant de les exploiter.
Dans l'attente de vous lire,

Cordialement,

Alain
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

Thermomètre 16F684
RETRAITE128
Amateur
Amateur
Messages : 125
Enregistré en : août 2021

#2 Message par RETRAITE128 » dim. 31 août 2025 11:52

Toutes mes excuses, j'avais omis de vous dire que le PIC est un 16F684 et non pas un 16F628 comme indiqué sur le schéma d'origine.

Thermomètre 16F684
paulfjujo
Avatar de l’utilisateur
Maître
Maître
Messages : 3256
Âge : 75
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#3 Message par paulfjujo » dim. 31 août 2025 14:45

bonjour,

quel compilateur ?


où sont definies les fonctions :
setup_adc_ports(sAN0|sAN1|VSS_VDD);
setup_adc(ADC_CLOCK_INTERNAL);

set_tris_a(0x0B);
Output_a(0x2B);

le forçage RA0 à 0 pourrait écraser la config pour RA0 comme analog input..
si RA0 est en sortie et à zero => 0 mV

verifier dans un 1er temps que l'affichage de temp est OK

void Convert_BCD() //Convert Temperature to BCD value
{
if (Temperature > 100) Temperature = 100;
Temperature=32; //<-- forçage valeur
Temp_Tens = Temperature / 10;
Temp_Units = Temperature % 10;
}
Aide toi, le ciel ou FantasPic t'aidera

Thermomètre 16F684
gwion
Expert
Expert
Messages : 1121
Enregistré en : février 2022

#4 Message par gwion » dim. 31 août 2025 15:47

A ce que j'ai vu c'est du CCS, je suppose que les fonctions manquantes sont incluses dans l'environnement. Et je suppose qu'il n'y a pas eu de compilation, juste le chargement du .hex qui est dans le zip téléchargeable chez Elektor.

https://www.elektormagazine.fr/magazine/elektor-200807/11040

Thermomètre 16F684
RETRAITE128
Amateur
Amateur
Messages : 125
Enregistré en : août 2021

#5 Message par RETRAITE128 » lun. 1 sept. 2025 11:18

Bonjour,

Vous me parlez chinois car je ne connais pas du tout le langage C, désolé.
L'affichage de la température n'est pas juste, 10 °C de moins que notre thermomètre de référence.
Pour le reste je compte entièrement sur vous.
Oui j'ai utilisé directement le programme .HEX disponible sur Elektor.

A vous lire,
Cordialement,

Alain

Thermomètre 16F684
gwion
Expert
Expert
Messages : 1121
Enregistré en : février 2022

#6 Message par gwion » lun. 1 sept. 2025 11:48

J'avais conseillé de jeter un coup d'oeil à la datasheet du PIC...

Brochage du 16F684
2025-09-01 11_44_06-PIC16F684 - Northwestern Mechatronics Wiki.jpg


Et celui du 16F628
2025-09-01 11_42_51-PIC16F628 Datasheet - 8-bit PIC Microcontroller - Microchip.jpg
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

Thermomètre 16F684
RETRAITE128
Amateur
Amateur
Messages : 125
Enregistré en : août 2021

#7 Message par RETRAITE128 » lun. 1 sept. 2025 11:57

Re bonjour,

Sur le schéma, il est fait état du 16F628, mais j'avais signalé qu'il y avait erreur signalé par Elektor.

Celui concerné est le 16F684.

Cordialement,

Alain

Thermomètre 16F684
gwion
Expert
Expert
Messages : 1121
Enregistré en : février 2022

#8 Message par gwion » lun. 1 sept. 2025 12:06

Visiblement les ports ne sont pas sur les mêmes n° de broches sur les 2 PIC...

Thermomètre 16F684
paulfjujo
Avatar de l’utilisateur
Maître
Maître
Messages : 3256
Âge : 75
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#9 Message par paulfjujo » lun. 1 sept. 2025 14:35

bonjour Alain,

RETRAITE128 a écrit :L'affichage de la température n'est pas juste, 10 °C de moins que notre thermomètre de référence.


RETRAITE128 a écrit :Pour calibrer cet appareil, il faut appuyer sur S1, puis corriger la valeur affichée avec action sur P1.



est-ce que le reglage par P1 est inopérant ?
fait bouger la mesure affichée ?

il faut faire la part des choses entre ANALOGIQUE et Numerique(programme !)
les LM35 ont des tolerances tres larges,dispersées ....

A verifier si le capteur est un LM35 ou un LM35DZ
Le LM35DZ compense le zero absolu en interne
alors que le LM35 a un offset de 2730mV (Zero absolu en °K)
ce qui est etonnant est le reglage par P1 autour du point milieu (ADC RA1)
..et je ne vois pas dans le code où est uilisé cette info ?

LM35_calculus.jpg







essaie de remplace le LM35 par un potar de 2,7K à 10K
pour simuler un signal temperature autour de 2,5V
relever les mV et la valeur affichée

mais à mon avis tu es dans une impasse ....
Mauvais code
et shema douteux
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Aide toi, le ciel ou FantasPic t'aidera

Thermomètre 16F684
RETRAITE128
Amateur
Amateur
Messages : 125
Enregistré en : août 2021

#10 Message par RETRAITE128 » lun. 1 sept. 2025 15:38

Bonjour paulfjujo,

Merci pour votre recherche.
En ce qui concerne le capteur, il s'agit bien d'un LM35DZ.
La tesion que je mesure à sa sortie ressemble étrangement à la valeur de la température.
Non le portentiomètre P1 n'agit pas du tout.
Si je fais la mesure en RA1, sans le PIC je retrouve bien les valeurs déterminées par le pont, soit de 2,3 à 2,7 v.
Par contre dès que je reconnecte le PIC, il n'y a plus aucune tesion en ce point.

Voilà les dernière nouvelles,

Alain


Retourner vers « Langage C »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 3 invités