Comment se servir du capteur de température?

Gary Coupeur

Senior Member
Bonjour
je souhaite utiliser le capteur de température calibré vendu par A4 avec une carte picaxe.

Je sais qu'il existe une note d'application mais je ne trouve pas où.
Quelqu'un peut-il me dire comment ça peut se programmer? Je récupère la valeur dans une variable?

S'il y a un exemple de logigramme qui traine quelque part, je suis prenneur.
Merci d'avance
bonne journée
 

Gary Coupeur

Senior Member
Bonjour
Il y a un point qui me surprend:
"Un capteur de température type DS18B20 est connecté sur l’entrée numérique In0 d’un microcontrôleur Picaxe."
Pourquoi numérique? Je l'aurais mis sur une entrée analogique, étant donné qu'en numérique pour moi c'est 0 ou 1 (0V ou 5V).
Il y a une infinité (en théorie) de températures possibles, donc la valeur de sortie est une variable (comprise entre 0V et 5V).

Si jamais vous confirmez que c'est en entrée numérique, il va falloir que j'invente un gros mensonge aux élèves par rapport à ce que je leur ai appris!
Et ça voudra dire que les entrées dites "numériques" n'ont de numérique que le nom!
 

Robert5111

New Member
Bonjour
Le capteur de température DS18B20 est un capteur numérique .
Il communique la température par une série de 0 et 1 vers le PICAXE
selon un protocole ( 1 wire).
 

PieM

Senior Member
Bonjour,

Pour compléter, le DS 18B20 est un capteur relativement complexe qui est composé d'un capteur de température, mais également, d'un microcontrôleur interne, de mémoires.
Il faut donc le voir comme un convertisseur analogique-numérique.
On peut le programmer pour en faire un thermostat, modifier sa résolution (jusqu'à 0.0625°C). Toutefois le mode de communication (1-Wire) est assez compliqué à mettre en oeuvre.
Aussi, Rev-Ed a fait une macro-instruction simplifiée (readtemp) qui fait tout le travail, et qui transmet la valeur de la température en un mot de 8 bits, récupéré dans la variable b0 dans l'exemple.
L'instruction readtemp12 fera de même, mais avec une résolution de 12 bits, récupérés dans une variable de type word.

-Petite remarque : l'entrée dite analogique d'un picaxe, n'est en fait qu'une entrée qui convertit une grandeur analogique en grandeur numérique. Il n'y a donc pas une infinité de valeurs entre 0 et 5V .
Le traitement purement analogique ne peut être fait que par des composants électronique analogiques. (AOP etc...)
 
Last edited:

fuse

Senior Member
Bonjour,
Un capteur de température analogique c'est une résistance CTN.
Un capteur de température numérique c'est une DS18B20.
Explication :

Une CTN câblée dans un pont résistif donne une valeur de tension représentative de la température, cette tension pourra évoluer entre quelques Volts et 5 Volts (le pont résistif est alimenté par l'alimentation 5V du Picaxe) et cette tension est appliquée sur l'entrée analogique.
Imaginons une tension de 3,4 V, nous obtiendrons la conversion suivante :
0V>00000000 (soit 0 en décimal)
5V>11111111 (soit 255 en décimal)
3,4V>10101101 (soit 173 en décimal) calcul : 255x3,4/5
On positionnera b0 à 173 rôle du convertisseur du Picaxe
Pour obtenir la température, il faudra disposer d'un thermomètre et vérifier la relation entre cette valeur de b0 et la température, ensuite il sera nécessaire d'effectuer un calcul dans le programme du Picaxe. Exemple si la température est de 24°C, il faudra introduire le calcul suivant b0 x 24 /173. En effet, on peut considérer la relation entre la température et la tension linéaire.

Pour un DS18B20, pour une température de 24°C, il envoi directement l'information 11000 (valeur décimale de 24), cette information circule sur une seule ligne électrique (1 wire). Pour simplifié, le DS18B20 envoi un 5V, puis un 5V, puis un 0V, puis un 0V, puis un 0V : cette valeur est bien numérique, il n'y a que des 0 et des 1....
Aucune conversion n'est à prévoir, la valeur b0 correspond directement à la température : le capteur est calibré en usine... Attention, n'oubliez pas de prendre en compte le fait que le DS18B20 peut fournir une information de température négative (voir note d'application).

J'espère que c'est clair maintenant. :)

Cordialement
 

Gary Coupeur

Senior Member
Bonjour
Tout d'abord un grand merci à Robert, PieM et Fuse, pour vos explications très claires et fournies.

Je vous dois des excuses pour avoir autant tarder à vous remercier.
Bonne journée
 

Gary Coupeur

Senior Member
Bonjour à tous

J'ai récupéré des DS18 (après une année avec des CTN, branchées en entrées analogiques -trop compliqué à exploiter pour des pré-ados-).

Depuis le temps il me semble que je maitrise la programmation, mais là j'arrive à rien.

C'est bien "readtemp" qui permet de lire et de stocker la valeur dans une variable?

Si c'est une entrée numérique, pourquoi avec programming editor, avec cette commande , n'ais-je le choix que de 4 entrées? (0 à 3) Ce qui signifierai qu'elles sont analogiques et non numériques (j'ai une carte picaxe avec 4 entrées ana: 28X1).

Bref, je dois être en train de passer à côté d'une grosse boulette...

Merci par avance si vous avez le temps...
 

fuse

Senior Member
Bonjour,
Test effectué avec Picaxe 28X1 et Programming Editor V555 :
En effet, la commande Temp (qui donne ReadTemp sur l'organigramme) n'accepte que les entrées 0 à 3.
Il doit s'agir d'un bug sur PE...
Concernant le capteur DS18B20, il doit être relié sur une des entrées numériques ( donc pas sur une des 4 entrées analogiques)
Bien sur la programmation en Basic de ReadTemp ne pose pas de problème sur une entrée de 0 à 7.
Logicator ne pose pas de problème LireTemp laisse le choix sur une des 8 entrées numériques.
 

PieM

Senior Member
Bonjour,

encore une bonne raison d'abandonner le flowchart de PE qui n'est désormais plus maintenu par Rev-Ed ...
 

Gary Coupeur

Senior Member
Bonjour Fuse et PieM

Merci pour vos réponses, vous êtes toujours aussi réactifs et c'est top pour moi.

Fuse:
J'ai lu (et affiché sur grand écran) ta réponse à ma question en classe (le jour même de sa publication d'ailleurs).
J'en ai profité pour leur expliquer l'intérêt et la réactivité extraordinaire d'un forum technique (et en rab d'être au top en anglais, quelque soit leur orientation future).
En gros du 3 en 1 grâce à toi.

Encore merci,
Mathieu
 

Gary Coupeur

Senior Member
Je comprend également que dés cet été il faut que je me mette à logicator.

Il me semble que c'est téléchargeable gratuitement.
La version gratos est-elle "full options", ou bien bridée/fagocitée par les pubs? (NB: pédagogiquement je suis obligé de rester sur de la programmation "visuelle" par organigramme).
 

BESQUEUT

Senior Member
DS18B20 ou autre chose ?

J'ai récupéré des DS18
C'est bien "readtemp" qui permet de lire et de stocker la valeur dans une variable?
Soyez précis dans votre description : s'agit-il bien de DS18B20 comme spécifié dans la doc ?
A ma connaissance les DS1820 et DS18S20, très semblables, ne sont pas compatibles...
http://www.maximintegrated.com/app-notes/index.mvp/id/4377

Vous pouvez également utiliser readtemp12

Pour tous les chips One Wire vous pouvez utiliser l'instruction owin
qui devrait donc marcher pour les DS1820 & DS18S20 si le problème vient de là.

Cordialement,
 
Last edited:

BESQUEUT

Senior Member
pédagogiquement je suis obligé de rester sur de la programmation "visuelle" par organigramme.
Personnellement, je ne vois pas en quoi cette pédagogie que j'approuve totalement vous oblige à utiliser un langage de programmation graphique.
D'expérience, les développeurs (débutants ou pas...) ont tendance à ce lancer dans le code sans réfléchir à l'algorithmie.
Le fait de dessiner l'organigramme à l'écran peut aider à réfléchir. Mais il n'empêche nullement de dessiner n'importe quoi et de voir ce que ça donne ...
et des fois ça marche sans qu'on comprenne pourquoi...
Une ardoise, (électronique ou pas) un tableau (blanc ou noir) une bête feuille de papier (avec un crayon et une gomme) sont à mon sens tout aussi efficaces pour réfléchir, mais offrent ce qui pour moi est un avantage :
- séparer la conception de la réalisation.

Le seul intérêt que je voit à ce type d'outil est la motivation des apprenants : en 3 clics on a quelque chose qui fait quelque chose. Ça semble facile, c'est ludique, et je comprends que ce soit une façon de capter l'attention.
 

fuse

Senior Member
Bonjour à tous,

Pour répondre à Gary Couper :
Au lancement de Logicator, une fenêtre s'affiche pour choisir le mode 'free ou installation d'une clé'.
En version free, aucune pub mais Logicator est bridé sur certaines fonctions. Pour le collège, cette version permet de prendre en main le logiciel de façon basique. Certaines fonctions absentes en free sont cependant indispensables dès que l'on sort de l'allumage et de l'extinction des leds....
Très bonne idée que de présenter un forum aux élèves.

Pour PieM et les habitués de P.E :
Concernant PE V556, le problème est toujours présent : le choix de ReadTemp n'est disponible que de 0 à 3 (en mode Flowchart).

Pour Besqueut :
Tout à fait d'accord avec votre remarque, cependant, Le B.O du cycle central de quatrième indique :
Les élèves doivent être capable d'identifier les étapes d'un programme de commande représenté sous forme graphique avec les commentaires suivants : la programmation d'un support automatique ne demande pas l'écriture de lignes de code. Elle doit être graphique si le support présente une interface qui le permet.
L'objectif est de comprendre de manière globale l'impact de la modification sur le fonctionnement du système.
Une ardoise, (électronique ou pas) un tableau (blanc ou noir) une bête feuille de papier (avec un crayon et une gomme) sont à mon sens tout aussi efficaces pour réfléchir, mais offrent ce qui pour moi est un avantage :
- séparer la conception de la réalisation.
Très juste, c'est pourquoi l'écriture d'un organigramme commence d'abord par l'écriture sur une feuille blanche...
 
Last edited:

BESQUEUT

Senior Member
Le B.O du cycle central de quatrième indique :...
la programmation d'un support automatique ne demande pas l'écriture de lignes de code. Elle doit être graphique si le support présente une interface qui le permet.
Je suis plus à l'aise en Basic qu'en Pedagol mais il semble bien que l'usage d'un langage graphique ne soit qu'une option, à moins que par ailleurs le "support" doivent obligatoirement disposer d'une interface qui permette une programmation graphique.

Ça me rappelle la tortue (Logo) soit disant très pédagogique... J'ai même vu des universitaires s'acharner avec ce truc, et si j'ai bien compris, il y a des tas de gens qui ont phosphoré sur ce langage... Pouvez-vous me citer un programme commercialisé écrit en Logo ?

Je comprends bien qu'au niveau des collèges une "initiation" est déjà un bon départ. Mais il semble bien que dans d'autres pays ce stade soit réservé aux plus jeunes. Dès qu'ils ont l'age de comprendre, les "apprenants" sont confrontés avec des outils plus contraignants certes, mais aussi plus riches et plus performants. J'arrête la : je suis bien loin du sujet...
 
Last edited:

Gary Coupeur

Senior Member
Personnellement, je ne vois pas en quoi cette pédagogie que j'approuve totalement vous oblige à utiliser un langage de programmation graphique.
D'expérience, les développeurs (débutants ou pas...) ont tendance à ce lancer dans le code sans réfléchir à l'algorithmie.
Le fait de dessiner l'organigramme à l'écran peut aider à réfléchir. Mais il n'empêche nullement de dessiner n'importe quoi et de voir ce que ça donne ...
et des fois ça marche sans qu'on comprenne pourquoi...
Une ardoise, (électronique ou pas) un tableau (blanc ou noir) une bête feuille de papier (avec un crayon et une gomme) sont à mon sens tout aussi efficaces pour réfléchir, mais offrent ce qui pour moi est un avantage :
- séparer la conception de la réalisation.

Le seul intérêt que je voit à ce type d'outil est la motivation des apprenants : en 3 clics on a quelque chose qui fait quelque chose. Ça semble facile, c'est ludique, et je comprends que ce soit une façon de capter l'attention.
Bonjour Besqueut, et merci pour vos réponses.

Je suis d'accord sur le fait que la programmation par algorithme peut se faire sur une feuille de papier.
Par contre il est clair à mes yeux que la programmation "visuelle par symboles" est la seule valable pour apprendre à des collégiens (ainsi qu'à des lycéens). Leur apprendre le basic serait non seulement hors programme, mais contre-productif (de plus le langage basic est un langage informatique certes simple, mais vraiment "vintage", pour ne pas dire "rustique").

J'ai appris en cours d'ingé: le pascal, le C, le C++, le java (mais pas le basic). Systématiquement (sauf pour la java, qui est à part car orienté "pages internet") nous avons appris à structurer le programme sous forme d'organigrammes.

C'est ce qu'un informaticien professionnel (qui conçoit des programmes longs je veut dire) est censé faire avant de se ruer pour "pisser des lignes de codes", comme disent les pros.

Donc mes élèves ne font pas de l'algorithmie parce que c'est facile, ou que ça m'amuse, mais parce que c'est la seule bonne manière pour apprendre.

Ecrire "Le seul intérêt que je voit à ce type d'outil est la motivation des apprenants : en 3 clics on a quelque chose qui fait quelque chose. Ça semble facile, c'est ludique, et je comprends que ce soit une façon de capter l'attention", ne me semble pas oportun, est très réducteur voire dévalorisant.

D'ailleurs, si le seul intérêt était la motivation des "apprenants" (moi je les appelle des élèves, mais je fais dans le basique, voire dans le rustique++), déjà ce serait d'un énorme intérêt.

GC
 
Top