Obtenir une temperature avec Logicator.

Bonjour/Bonsoir ! C'est mon premier post sur le forum vous me voyez navrer si je ne respecte pas les règles du forum ^^.

Je suis actuellement en Terminale S/Si et j'ai un PPE ( Projet personnel encadré ) à faire pour le BAC. Mon projet est un mini-frigo pour bouteille d'eau de 50 cl et dans mon groupe je suis chargé de faire la partie programmation. J'ai décidé de me faire un microcontrôleur (pour justifier mes 70 heures de travail) . J'ai donc choisi une picaxe 08M2 et je dois le programmer via logicator. En fait le but de ma partie est de, en fonction de la température de la bouteille (grâce à un capteur de température), arrêter la diffusion de froid si elle atteint un tant et la relancer si elle dépasse un tant (dans ce cas-ci c'est 15°C). Pour cela je dispose d'un module peletier.

Voici mon problème : J'ai à ma disposition deux capteur de température : un analogique (LM35) et un numérique (DS18B20 ou DS10B20 je ne sais plus). Bref voilà, j'ai cherché sur le net comment obtenir une température en degré Celsius et j'ai vu que à partir d'un capteur numérique on obtient tout de suite une température en Celsius. Cependant sur le logiciel logicator, déjà de un, je ne suis pas sur de l'endroit ou je peux observer cette valeur, pour ma part je suis aller dans calibrer un capteur et ensuite une fenêtre de débogage me montre la valeur numérique que je n'arrive pas à traduire en degrés Celsius .

Ensuite me voici confronter à un autre problème, est-ce qu'un relais serait nécessaire pour pouvoir arrêter et relancer la diffusion du froid d'un module peltier sachant que je dispose d'un relais 2RT.

Je vous remercie d'avance d'avoir lu mon post et de vos réponses.

Cordialement, IgnitedKimchi.
 

MGU

Senior Member
Bonjour,

Pour justifier 70 heures de travail, c'est toi qui doit travailler, pas nous.


Faire d'abords un beau cahier des charges, apparemment une régulation à seuil.

Le choix d'un µC, picaxe ou autre, se justifie si tu affiches les températures de seuil et la température lue par le capteur.
Avantage d'un capteur numérique sur un analogique par rapport au µC
Choix d'un afficheur,

Lire et comprendre les docs

Le relais, c'est pas très moderne, voir vers les mosfets...

Et l'alim, c'est quoi?

PE6 intègre un logiciel de programmation graphique, mais je ne sais pas ce que l'on peut faire avec çà, pour lire un DS18B20 ou un DS10B20... je ne sais plus. Faudrait quand même savoir!!!

A suivre

Un truc comme çà...?

MM
 

Attachments

Last edited:
Bonsoir, encore merci de ta réponse.

Je pense qu'on s'est mal compris, en effet, je sais que c'est moi qui doit travailler mais je bloque sur une étape de ma programmation. Tout ce que je reçois de mon capteur de température est une valeur numérique via le logiciel Logicator. Dois-je nécessairement posséder un écran LCD pour pouvoir l'afficher en degré Celsius ou y-a t'il quelque chose que je ne comprends pas ?
 

MGU

Senior Member
Pas forcement un LCD mais on ne sait pas sur quoi tu veux afficher.
Perso, je ne connais pas logicator (trop compliqué), je préfère le basic

Le DS18B20 renvoie bien un nombre, sans avoir besoin de calibration, qu'il faut multiplier par 0,0625 et on a des °C

MM
 

PieM

Senior Member
Bonjour,

Logicator comme le mode organigramme de PE6, comporte une instruction readtemp (voir cette instruction dans le manuel2.)
Si la commande se fait sur une valeur fixe 15° , il est possible de se passer d'un afficheur. C'est l'avantage du numérique 18B20.
Peut être une led pour savoir si on est au dessus ou au dessous de la température de consigne

readtemp renvoie des degrés et readtemp12 renvoie un nombre avec la résolution de 0.0625° mais n'existe pas sous logicator.
 

BESQUEUT

Senior Member
Vous avez déjà des réponses assez précises concernant la capture de température (pour peu qu'il s'agisse bien d'un DS18B20, à confirmer).
Pour l'alimentation du module Peltier, il s'agit en général d'une puissance assez importante. En outre, il y a tout un montage mécanique et thermique mais on ne sait pas si ça fait partie de votre projet ou pas.
Si vous souhaitez obtenir des conseils dans ce domaine, il faudra donner les caractéristiques de ce module Peltier. A minima tension et courant, et en prime les dimensions (ce qui peut donner une indication sur le type de module).
Si l'option relais est maintenue, il faut aussi les caractéristiques de cet article : tension et courant, ou résistance de la bobine. Il y a aussi une limlte sur l'intensité du courant commuté : il faudra vérifier que c'est compatible avec le module Peltier.
 
Bonsoir, encore merci pour vos réponses.
MGU, j'aimerai l'avoir afficher sur le logiciel Logicator, et si cela n'est pas possible, avec quel appareil puis-je l'afficher ?

PieM, oui, l'instruction readtemp permet d'avoir la température Celsius de suite avec une DS18B20 d'après le manuel mais je n'arrive pas a l'obtenir.

BESQUEUT, je ne suis pas sur de comprendre ce que vous dites à propos d'un montage mécanique et thermique. Mon projet est séparé est 3 partie, je m'occupe de la programmation, un autre membre de l'enceinte thermique et l'autre de la calibration des ventilo et du peltier, je suppose que c'est de ça dont vous parliez ? Ce que je voudrais savoir c'est obtenir une température en Celsius et non en numérique vià le logiciel Logicator.

Cordialement, IgnitedKimchi
 

MGU

Senior Member
Bonjour,

Logicator, que je ne connais pas, est un logiciel de programmation, comme le basic.
Pour visualiser une variable en simulation, on peut regarder les tableau de variables. On peut aussi simuler un afficheur LCD série.

Le LCD série est l'afficheur le plus simple à mettre en oeuvre
http://www.gotronic.fr/art-afficheur-lcd-serie-axe133-17935.htm
On peut aussi se le fabriquer pas trop cher.

Deux fonctions pour utiliser le 18B20 avec le picaxe
READTEMP pin,variable
variable est un byte (octet) directement en degrés (voir doc)

READTEMP12 pin,wordvariable
utilisable en basic uniquement

Je n'ai pas d'exemple flowchart.

MM
 

PieM

Senior Member
PieM, oui, l'instruction readtemp permet d'avoir la température Celsius de suite avec une DS18B20 d'après le manuel mais je n'arrive pas a l'obtenir.
Pour voir la valeur acquise par le picaxe, il faut utiliser une case debug dans ton programme
 
Bonjour.

MGU, Sur logicator, on a un tableau de deboggage (sans doute votre tableau de variable). Je reçois une valeur numérique, avec la DS18B20 j'ai reçois une valeur de l'ordre de 324 (étant dans une salle d'au moins 20°). Je ne comprends donc pas ce que la valeur représente. J'ai utilisé les instructions READtemp et debug et j'obtiens la valeur précédente.

PieM, j'ai utilisé debug et j'obtiens quand même la valeur 324 qui ne correspond pas à une température je pense.

Cordialement.
 

BESQUEUT

Senior Member
MGU, Sur logicator, on a un tableau de deboggage (sans doute votre tableau de variable). Je reçois une valeur numérique, avec la DS18B20 j'ai reçois une valeur de l'ordre de 324 (étant dans une salle d'au moins 20°). Je ne comprends donc pas ce que la valeur représente. J'ai utilisé les instructions READtemp et debug et j'obtiens la valeur précédente.

PieM, j'ai utilisé debug et j'obtiens quand même la valeur 324 qui ne correspond pas à une température je pense.
Très curieux, même avec Logicator que je ne connais pas : comment une commande censée retourner un byte peut elle retourner 324 ? Ou alors, c'est un 3 suivi de la valeur 24 ?
Est-il confirmé qu'il est bien écrit DS18B20 sur le sensor ?
Est-il possible de publier le programme Basic généré par Logicator ?
 

PieM

Senior Member
Très bizarre ! le capteur ne serait pas connecté sur C.3 ?
de toute façon 324 pour un byte ce n'est effectivement pas possible...
envoyer éventuellement le fichier plf. on peut le lire sous PE6
 
Je l'avoue que cela ma parut un peu curieux. J'avais essayé avec une LM35, et j'obtenais une valeur de 11. .. Si c'est un 3 suivi de la valeur 24, même en pressant le capteur de température pour qu'il capte une température plus chaude, elle ne change pas.
Et oui c'est possible de publier le programme basic généré par Logicator. Voudrais-tu que je te poste mon diagramme en basic ?
Et oui c'est bien un DS18B20, d'ailleurs je l'avais dit plus en haut mais dans le manuel du picaxe il est dit que l'instruction ReadTemp :
"Le contenu de la variable correspond directement à la température exprimée en degrés Celsius. La plage de fonctionnement du capteur DS18B20 est comprise entre - 55° et 127°C."
Je vous montrerai un schéma de mes cablage ainsi que du diagramme demain (étant donné que j'ai Projet ^_^)
 

MGU

Senior Member
Bonjour,

324, pour un byte, c'est pas possible. Donc, c'est pas un byte.

Mais le DS18B20 renvoie normalement une réponse sur 16 bits.
Les 4 premiers bits ne servent qu'a coder les valeurs négatives en complément à 2
Les 12 bits suivants code la température en seizième de degrés

Par exemple: 324 x 0,0625 = 20,252 °C

Et si on arrondit aux valeurs entières, on supprime les quatre derniers bits qui représentent les décimales (d'où readtemp et readtemp12)

détails: http://electromag1.wifeo.com/thermostat-a-base-de-ds18b20.php


MM
 
Last edited:
Bonsoir,
Si j'ai bien compris d'après tes dires et ceux de ton document ressource, ce qui est afficher sur mon tableau de variable n'est pas une valeur numérique ?
Donc, comme le DS18B20 renvoie une réponse sur 16 bits.
Les 4 premiers bits ne servent qu'a coder les valeurs négatives en complément à 2
c'est à dire que si jamais il capte une température négative il va utiliser les premiers bits ?
Les 12 bits suivants code la température en seizième de degrés
d'après le datasheet du DS18B20, il a un précision de 1/16 ?
J'essaie de comprendre. La valeur de la variable du DS18B20 est en fait du à son intensité ou sa tension qu'il envoie, c'est donc comme ça qu'il capte la température ? J'essaie aussi de comprendre l'instruction Comparer qui me propose ma première variable c-a-d la variable de mon DS18B20 avec un évaluateur c-à-d > ou < ou = etc ... et la deuxième variable il me permet d'aller de la variable A à des chiffres allant jusqu'à 255. J'ai bien lu le manuel et ils disent que les valeurs supérieur à 128 sont les nombres négatifs, donc que dois-je mettre comme deuxième variable ? Je vous rappelle que je veux faire arrêter le froid si le capteur capte une température inférieur à 15 et rediffuse si il capte une température supérieur à 15 .

Et pour la valeur 324, ton calcul
Par exemple: 324 x 0,0625 = 20,252 °C
me fait ouvrir les yeux, car déjà c'est tout à fait possible que la salle était à 20°C cependant j'aimerai pencher sur un point, je presse mon capteur de temperature, et normalement la valeur de la variable devrait augmenter/diminuer (je ne suis pas sur) or la valeur ne changeait pas. De plus j'ai essayé d'utiliser une LM35 qui est un capteur analogique, d'où l'application du ReadADC. La valeur était de 11. Cependant, si je fais
11*0.0625 j'obtiens une température aberrante.

Merci encore de vos réponses, désolé pour cette réponse peu clair.
 

PieM

Senior Member
Mais le DS18B20 renvoie normalement une réponse sur 16 bits.
readtemp renvoie une variable type byte et Logicator ne connait pas les variables word!

De plus j'ai essayé d'utiliser une LM35 qui est un capteur analogique, d'où l'application du ReadADC. La valeur était de 11. Cependant, si je fais
11*0.0625 j'obtiens une température aberrante.
Il ne faut pas tout confondre !! le LM35 est un capteur analogique qui délivre 10mV par degrés.
Le DS est un capteur numériaque qui contient un circuit de mesure et un µC qui effectue le calcul.

Si le LM donne 11 avec un readadc, ça correspond à 21.5°C. je te laisse faire le calcul.
 
Last edited:

MGU

Senior Member
Bonsoir,
Si j'ai bien compris d'après tes dires et ceux de ton document ressource, ce qui est afficher sur mon tableau de variable n'est pas une valeur numérique ?
Donc, comme le DS18B20 renvoie une réponse sur 16 bits.
c'est à dire que si jamais il capte une température négative il va utiliser les premiers bits ?
d'après le datasheet du DS18B20, il a un précision de 1/16 ?
.
La première chose à faire quand on utilise un composant est de lire sa datasheet. La voici:http://pdf.datasheetcatalog.com/datasheet/maxim/DS18B20.pdf
Le mieux est de lire ET comprendre.
La valeur brute envoyée par le DS18B20 est un nombre, c'est une valeur numérique.
Il y a des exemples de codages, pour les t° positives et négatives.

Je ne connais pas flowchart, mais je sais qu'il introduit des limites inexistantes en basic. Essaye d'écrire en basic, pour voir.
Si le premier bit est à 1, (les 4 bits premiers sont à 1), c'est une valeur négative et il faut faire le complément à 2 pour retrouver la valeur absolue, sans signe et ajouter - à l'affichage.

1/16 de degré, ce n'est pas la précision, mais la résolution. La précision est dans la datasheet (+/- 0,5...etc)

Et pour justifier les 70 heures, ajoute un joli petit LCD série (budget minime) pour afficher la t°, et le reste.

Un truc aussi, ne pas oublier la R de pullup sur la sortie ou la configurer dans le code.

code exemple: (régulateur de t° pour mangeoire à asticots: voir résultat en #2)

Code:
	'Test code DS18B20  pour 14M2
	'Thermostat regul proportionnelle PWM
	;MM 01/04/2015
	#picaxe 14M2	'directive 14M2		

symbol LCD=B.0	;nom broche B.0 (afficheur 2004)
symbol chauf=C.2	;nom broche C.2 (ampoule12V 21 W)
symbol DS=C.0	;nom broche C.0 (DS18B20)
symbol TC= B.4 	;nom broche B;4 (Température consigne)
symbol DT= B.5	;nom broche B.5 (Delta bande de régulation)

symbol delta=w7	; 
symbol rapcycl=w8	;rapport cyclique
symbol temp=w9	;température lue
symbol Tcons=w10	;température de consigne
;w13,w12,W11 	;var temporaires sans nom

setfreq M16			;fréquence horloge
symbol baud= N4800_16	;vitesse liaison série LCD	
pullup %00100000000	;activation des résistance de pullup sur C.0
pwmout pwmdiv4, chauf, 249, 0	;activation PWM 1000 Hz sur C.2

pause 500 		;tempo LCD
serout LCD,baud,(254,1) ;effacement LCD
serout LCD,baud,(254,64,4,4,31,4,4,0,31,0) ;def +/- en CGRAM 8
	
	do				
		gosub consignes
		readtemp12 DS,w13 	; lecture temperature sur DS18B20						
		w12=w13/16		'entiers=les 3 premiers octets
		w11=w13//16		'decimals=le dernier octet: 0.0625 x w11
		w11=625*W11/10  	'reste 3 decimales
		temp=w12*1000	;faut la place des décimales
		temp=temp+w11	'recomposition T en milli?mes de degres
		bintoascii temp,b5,b6,b7,b8,b9	;décompsision en chiffres ascii
		serout LCD,baud,(254,128,"Temp",1," rat = ",b5,b6,",",b7,b8,b9,"ßC");ßalt+0223=° sur LCD chinois	
	
		w13=Tcons-delta	;w13 en millièmes de °C
		w12=Tcons+delta
		
		select temp
			case <=w13  
				rapcycl=1000
			case >=w12
				rapcycl=0
			case w13 to w12
				delta=delta/10
				rapcycl=w12-temp*5/delta*10				
		endselect	
		pwmduty chauf,rapcycl	;rapcycl varie de 0 à 1000
		rapcycl=rapcycl/10	;pour affichage en %
		bintoascii rapcycl,b6,b6,b7,b8,b9
		serout LCD,baud,(254,192,"Rap Cycl = ",b7,b8,b9,"%")
	loop	 

consignes:	;lecture des reglages consignes		
		
		readadc TC,Tcons		;lecture potar 0 a 255		
		Tcons=150 *Tcons/255 +300 	;mise à l'échelle 350 à 400
		bintoascii Tcons,b7,b8,b9
		serout LCD,baud,(254,148,"T consig = ",b7,b8,",",b9)
		Tcons=Tcons*100
		
		readadc DT,delta
		delta=delta+5 max 250	;mise à l'échelle de 5 à 250	
		bintoascii delta,b7,b8,b9
		serout LCD,baud,(254,212,"delta    =",8,b7,",",b8,b9,"?C")	
		delta=delta*10
	return
MM
 
Last edited:
Bonsoir !

PieM, Aaaaah d'accord, donc ce qui était dans le tableau de variable était justement la température. Il fallait juste faire un calcul. Par contre pour la LM35, je n'ai pas vraiment compris ton calcul. Faut-il que je parcours son datasheet pour trouver sa résolution ? En faisant le calcul inverse j'obtiens 1.95 mais je ne sais pas d'ou cela vient. Et est-ce normal que malgré la pression que j'exerce sur le LM35 ou le DS18B20 pour qu'ils se réchauffent, la valeur numérique n'augmente pas ? Pourtant elle devrait vu qu'elle capte une température plus grande.

MGU, d'accord merci pour toutes ces informations que j'ai omis de vérifier. Mais pour mon projet les températures positives ou négatives, je n'ai pas à m'en soucier non ? Et sinon l'idée de l'écran LCD sur notre frigo est juste parfaite.

Merci à vous deux pour vos réponses.
 

MGU

Senior Member
Bonjour,

Je viens de jeter un &#339;il sur le readtemp de flowchart.

Effectivement, tout ce qui est écrit en #17 ne sert à rien, on a uniquement le readtemp avec son byte et la lecture directe en degrés;
Il n'y a d&#8217;ailleurs que des variable bytes.
Dommage de réduire cet outil à quelque chose d'inutilisable.

Il faut utiliser du graphique? Très bien, il faut faire un gros pavé "BASIC" avec le code dedans.

Le problème est ailleurs, un schéma de câblage SVP.

MM

MM
 

PieM

Senior Member
Dans logicator, Readtemp (Lire Temp) renvoie une variable byte donc comprise entre 0 et 255. Lire 314 n'est pas possible !!
si la température est de 20°C la valeur de la variable sera 20. Il n'y a pas de calcul à faire pour des valeurs positives.
Alors comme on ne sait pas ce que tu lis et où, et quel est le programme, difficile d'aller plus loin.

Pour le LM35 il faut :
lire la doc du LM35 et la comprendre.
lire la doc de l'instruction readadc et la comprendre.
faire la synthèse des deux et en déduire la relation entre la valeur lue par le picaxe et la température.
une règle de trois, ça devrait être possible en terminale S.

Je suis désolé, mais je ne ne vais certainement pas te faire ton job.
Faut-il que je parcours son datasheet pour trouver sa résolution
Tu attends que quelqu'un te fasse la lecture ?

(c'est peut être pour ça que je ne suis pas prof !)
 
Bonjour ! Je suis actuellement en projet, je peux donc vous envoyer mon câblage ainsi que ce que je fais.

PieM, J'ai bien compris pour la ReadTemp, en gros, la valeur numérique de mon tableau de variable correspond aux bytes entre 0 et 255, et comme c'est un DS18B20, la valeur qui affiche est en gros la vrai température ? J4ai refait un calibrage de capteur pour le voir dans mon tableau de variable avec mon DS18B20 et en fait j'obtiens 236. A quoi correspond donc cette valeur ?
J'ai aussi lu la doc de l'instruction ReadADC et en gros il permet la conversion d&#8217;une donnée analogique (niveau de tension compris entre 0 et 5 V) en une valeur numérique sur une échelle décimale allant de 0 à 255. J'ai essayé maintes et maintes fois de comprendre, en gros si on a comme donnée analogique un 0V la valeur numérique est 0 byte et donc 5V correspond donc à 255 bytes ? Je suis désolé si tu pense que tu vas faire mon job, mais cela fait depuis 3 mois que j'essaye de comprendre et c'est pourquoi je vous demande de l'aide car je n'y comprends rien :S

Pour la datasheet du LM35, je ne trouve pas sa résolution, tout ce que je sais c'est que sa delivre du 10mV par degrés Celsius.

Voici l'instruction que je met :
22.png

Voici ce que j'obtiens avec la LM35 :
lm.png
 
Voici ce que j'obtiens avec une DS18B20 :
ds18b20.png

Pour le schéma du cablage je vous envoie à un lien d'hébergeur d'image comme l'image était trop grande :
http://hpics.li/c6e4b7c

Je m'excuse encore si vous pensez que je vous demande de faire le travail à ma place, cela fait plus de 1 mois que je galère à essayé d'obtenir une température en degrés Celsius, si j'en viens a demander de l'aide c'est que je suis désespéré, je ne demande pas d'aide généralement.

Merci encore pour vos réponses. Ça me touche au c&#339;ur.
 

PieM

Senior Member
Alors on va repartir à 0!
programmer sous logicator, c'est déjà lire un peu de doc sur la programmation sous logicator.
Si au bout d'1 mois tu n'as pas eu la curiosité de lire cette doc, c'est mal barré.

Un programme comme ça, c'est sûr que ça ne marchera pas!
Au mieux tu lis une fois la valeur et le programme s'arrête.
donc un programme, c'est une boucle.
Ensuite je te l'ai dit, et c'est écrit sur ton écran, il faut mettre une cellule Debug dans le diagramme.
ça indique au picaxe de transmettre la valeur au PC via le câble de programmation.

pour le LM35 la résolution n'a rien à voir la dedans!
Il délivre 10mv par degrés et le readadc donne une valeur qui est proportionnelle à des V. (rappel: 1 V c'est 1000 mV !) ; C'est quand même pas sorcier !
Pas certain que les 70 heures vont te suffire...
 

MGU

Senior Member
Voici ce que j'obtiens avec une DS18B20 :
View attachment 18118

Pour le schéma du cablage je vous envoie à un lien d'hébergeur d'image comme l'image était trop grande :
http://hpics.li/c6e4b7c

Je m'excuse encore si vous pensez que je vous demande de faire le travail à ma place, cela fait plus de 1 mois que je galère à essayé d'obtenir une température en degrés Celsius, si j'en viens a demander de l'aide c'est que je suis désespéré, je ne demande pas d'aide généralement.

Merci encore pour vos réponses. Ça me touche au c&#339;ur.
Ok, et quand on regarde le câblage de la plaque d'essais, il y a quelques fondamentaux d'électronique à revoir:

Le DS18B20 a besoin d'une résistance de pullup de 4k7 sur la sortie data, où est elle?
Le transistor a besoin d'une résistance de limitation de courant dans la base,où est elle?

Pour le dessin des schémas électroniques, je conseille desselec 2000, gratuit, simple, prise en main 10 minutes max
http://artools.free.fr/download.htm

MM
 
PieM, La doc du logicator je l'ai lu jusqu'à ce que mes yeux en crèvent. Justement, c'est un programme de test pour capter une fois la température car je n'arrivais pas a les convertir en degrés celsius. L'instruction Debug je l'avais mise, mais j'obtenais toujours là même chose, je me suis résolu a ne plus le mettre mais maintenant que tu le dis je vais le mettre à chaque fois. Et justement PieM, je crois que je suis bête et con car je ne comprends pas cette 10Mv par degrés car la valeur que je capte c'est un byte. Je dois donc traduire ce byte en mv ? Et ensuite ce Mv en degré ?

MGU, N'ya-t-il pas une résistance à coté du transistor ? Pour ce qui est de la DS18B20, un camarade de ma classe m'a dit de la brancher comme cà (il avait apparemment déjà câble une fois un DS18B20) mais maintenant que je regarde l'interfacing du DS18B20 je m'aperçois qu'il manque en effet un 4k7. Pour ce qui est du capteur DS18B20, je pense que je vais partir sur La LM35.

Grâce à vos conseils, j'ai choisi de m&#8217;intéresser à un écran LCD AXE033, le prof me l'a donc filé, il est déjà monté . Cependant je galère avec l'alimentation de ce bijou et le prof n'a pas voulu m'aider.
Voici une photo du AXE033 déjà montée :
http://hpics.li/c19b988

Quel cable dois-je mettre dans la feinte noir ? J'ai lu sa documentation, mais alors soit je suis con, soit je suis passé à côté de quelque chose, mais je ne comprends pas quel câble y mettre.

Je ne vous remercierai jamais assez de m'aider, sans vous j'aurai perdu espoir, penses-tu qu'il faut plus que 70h ? Car là .. Si tu me dis ça je suis dans la misère, je devrais bientôt avoir fini ma partie et préparer les oraux, alors que ce n'est pas le cas, j'espérais comprendre un petit peu pour pouvoir accélérer et le finir avec la fin du temps imparti.
 

PieM

Senior Member
Je dois donc traduire ce byte en mv ? Et ensuite ce Mv en degré ?
et ben c'est pas trop tôt !
Après se lancer avec l'afficheur, je ne sais pas si c'est bien opportun. En plus si le prof ne peut pas vous aider ça commence à être un peu lourd !
Si le prof ne donne pas la doc de son afficheur, alors je comprends mieux le malaise.

Si c'est pour galérer comme ça oublie l'afficheur et concentre toi sur ton programme.
 

MGU

Senior Member
J'avais pas vu la R à coté du transistor, mais pas possible de savoir où elle est branchée, ni sa valeur.

Fais un schéma avec desselec

La 4k7 sur la broche du DS18B20 est indispensable.

Normalement, le DS18B20 est la plus simple des capteurs utilisables avec un µC, mais il faut le câbler correctement
Et placer la lecture dans une boucle

L'axe 033 : http://www.picaxe.com/docs/AXE033.pdf

Deux options de liaisons possibles : série et I2C . Série est plus simple
Je ne sais ce qu'est la plaquette à côté (horloge?).
Voir sur quoi est connectée la nappe 4 fils, il y a sans doute une sérigraphie.

Il faut 5 mn pour le DS18B20 et 10 mn pour le LCD. Vraiment pas grand chose à faire.

Bon, 30mn pour le code, en basic. En flowcode...?

Il est pessimiste, PieM

Ajout:

La plaquette servait à autre chose. Il faut l'enlever et relier 3 fils sur "V+ " ,"IN" et "0V"

V+ et 0V, c'est l'alim 5 V

IN c'est la liaison série
C'est tout


MM
 
Last edited:
PieM, Merci pour tes conseils et ton aide

MGU, Ahhhh d'accord, tu saurais à quoi elle sert ? Le prof n'as pas dit grand sujet dessus. Il m'aide même pas, il n'est pas familier avec les logiciels qu'il m'oblige à utiliser.

Merci à vous deux, j'aurai été perdu si vous ne m'aviez pas aidé.

Que pensez-vous de mon programme ? Sachant que la pin 2 correspondrait au module peltier.
temper.png
 

PieM

Senior Member
Que pensez-vous de mon programme ? Sachant que la pin 2 correspondrait au module peltier.
Pas encore tout compris hein ?
tu lis le capteur DS18B20 et ensuite tu lis le LM35 ?! Faudrait savoir...
ensuite si T est < 15 tu passes ton temps à activer et désactiver ta sortie , et tu l'actives à priori avant d'avoir lu la température !!
Essaie d'avoir un peu de logique!
tu commences par lire ta température
elle est en dessous de 15 tu actives ton module, elle est en dessous tu désactives ton module.
et tu reboucles.
pour l&#8217;hystérésis on verra l'an prochain.

Dire que Michel me trouvais pessimiste !
 
Désolé j'ai pas été clair, j'avais dit plus haut que finalement, je me servirai de la LM35 (après avoir galéré à comprendre ta règle de 3).
Ne t'en fais pas pour le A<15, je n'avais pas encore fait la règle de 3 pour connaitre la valeur en byte.
J'essayerai de le faire fonctionner quand je serai en projet. Merci pour ton aide PieM.

Ne t'en fais pas, je n'irai plus faire de l'ingenieurie, je suis trop bête pour.
 

MGU

Senior Member
PieM, Merci pour tes conseils et ton aide

MGU, Ahhhh d'accord, tu saurais à quoi elle sert ? Le prof n'as pas dit grand sujet dessus. Il m'aide même pas, il n'est pas familier avec les logiciels qu'il m'oblige à utiliser.

View attachment 18129
Le DS18B20 est un capteur à collecteur ouvert. càd que le collecteur du transistor de sortie n'a pas de résistance au +V . Le système One Wire est fait pour connecter plusieurs capteurs en parallèle, mais une seule résistance extérieure de 4k7 relie les collecteur au +V . Quand il n'y a qu'un capteur il faut quand même une résistance. Tout est dans la datasheet.
Le LM35 est analogique, moins facile à utiliser que le DS18B20, mais c'est toi qui choisit.

MM
 
Salut MGU, en fait je parlais de la LCD, il est branché avec quoi ? ^_^
Et en quoi un capteur analogique est-il plus dur à utilisé que la numérique ? Il n'y a juste qu'une conversion à faire non ?
 

MGU

Senior Member
Salut MGU, en fait je parlais de la LCD, il est branché avec quoi ? ^_^
Et en quoi un capteur analogique est-il plus dur à utilisé que la numérique ? Il n'y a juste qu'une conversion à faire non ?
Bonjour,

Je ne sais pas à quoi sert cette plaquette. Voir les composants dessus, LDR, c'est un capteur de lumière.

Avec le DS18B20, on lit directement la température, il n'y a absolument rien à faire.
Avec le LM35, il faut passer par un readadc10, il faut calibrer un peu, c'est un peu moins simple.

MM
 
Bonjour, MGU. D'accord merci, je vu sur la notice que la brancher en série était la plus simple.
Je pense que La LM35, après m'être cassé la tête pour trouver la règle de 3 mérite que je la prenne. Mais ca va en fait, j'obtiens 11 en valeur numérique, je dois juste la convertir en mv puis en degrés. C'était de cette calibration que tu parlais ? ^^
 
Bonjour ! Je suis désolé de vous poser des questions qui font, disons le, "chier". Mais le programme que je vous ai présenté pour capter la température est-elle valable ? Je ne peux pas encore la tester, il faut que un de mon groupe finisse ce qu'il a à faire avec le peltier
http://www.picaxeforum.co.uk/attachment.php?attachmentid=18129

Sinon, d'après la règle de 3, j'ai remarqué qu'elle ne donnait que des valeurs discrètes. Par exemple, pour 15 degrés je suis obligé de mettre en valeur numérique 8. Est-ce que, quand le capteur captera la température, elle le fera à la valeur numérique ?
 

PieM

Senior Member
Lire, relire, re relire #29, et si tu ne comprends pas ce qui est écrit, fais toi aider par quelqu'un qui comprends.
 

MGU

Senior Member
Bonjour, MGU. D'accord merci, je vu sur la notice que la brancher en série était la plus simple.
Je pense que La LM35, après m'être cassé la tête pour trouver la règle de 3 mérite que je la prenne. Mais ca va en fait, j'obtiens 11 en valeur numérique, je dois juste la convertir en mv puis en degrés. C'était de cette calibration que tu parlais ? ^^
Bonjour,

Readtemp est une commande spécifique au DS18B20 . Inutilisable avec un LM35.

Le LM35 donne une tension à lire avec la commande readadc, (apparemment, readadc10 n'est pas dans logicator). La résolution avec une alim 5 V est 5000/256 = 20 mV environ.
Le LM35 varie de 10mV par degré , la résolution est donc de 2 °C max....
Donc, avant de savoir à quelle tension correspond 0°C, avec le LM35, on sait que le DS18B20 aura une meilleure résolution.

Si on a le choix, le DS18B20 est plus simple et plus précis, même avec logicator.

Faire un schéma de branchement du système avec un DS18B20, le plus simple. Le code est archi simple aussi, hystérésis compris.

MM
 
PieM, je suis désolé de t'emmerder. Je viens de relire ce que tu as dit, merci.

MGU, d'accord, donc avec ReadTemp je ne peux rien lire avec une LM35... Mhhh .. Si jamais j'utilise le DS18B20, la valeur qui sera afficher dans mon tableau sera-t-il la valeur de la température ? Ou alors il faudra la multiplier par 0.625 ? Et d'après mes recherches sur le net, le branchement de la DS18B20 consiste à brancher sa pin gnd à la masse, sa pin vdd à un générateur stabilisé et sa pin du milieu a un microcontrôleur ? Ai-je besoin d'un résistance 4k7 ?

EDIT : Désolé, oui j'ai vu qu'il fallait une résistance 4k7. Quand je l'avais brancher il l'était sans, c'est sans doute à cause de ça que j'obtenais comme valeur 238 byte ou 3xx byte, enfin je pense.

J'ai rechanger le programme. Est-ce que celui la parait plus logique ?
View attachment 18176
 
Last edited:

MGU

Senior Member
PieM, je suis désolé de t'emmerder. Je viens de relire ce que tu as dit, merci.

MGU, d'accord, donc avec ReadTemp je ne peux rien lire avec une LM35... Mhhh .. Si jamais j'utilise le DS18B20, la valeur qui sera afficher dans mon tableau sera-t-il la valeur de la température ? Ou alors il faudra la multiplier par 0.625 ? Et d'après mes recherches sur le net, le branchement de la DS18B20 consiste à brancher sa pin gnd à la masse, sa pin vdd à un générateur stabilisé et sa pin du milieu a un microcontrôleur ? Ai-je besoin d'un résistance 4k7 ?

EDIT : Désolé, oui j'ai vu qu'il fallait une résistance 4k7. Quand je l'avais brancher il l'était sans, c'est sans doute à cause de ça que j'obtenais comme valeur 238 byte ou 3xx byte, enfin je pense.

J'ai rechanger le programme. Est-ce que celui la parait plus logique ?
View attachment 18176
1- Faire un schéma correct (copie d'écran FastStone Capture deDesselec 2000 par ex)
2- Faire la liste des actions nécessaires à la régulation :
lire la température
lire la consigne
comparaison
etc...
3- Faire un programme cohérent

Et ça devrait fonctionner.

OUI, readtemp donne la valeur de la température en °C directement. Lire la doc.

MM
 

MGU

Senior Member
Bonjour,

Aller, voici le programme en basic, tout simple.

reste à le commenter, le transcrire en flowcode et à réaliser le schéma de câblage.

En espérant que cela puisse apprendre quelque chose....
 

Attachments

Top