(43 versions intermédiaires masquées) | |||
Ligne 1 : | Ligne 1 : | ||
{{avertissement}} | {{avertissement}} | ||
- | {{vidéo|numérovidéo = <videoflash type="mediaspip" num = 1> | + | {{vidéo|numérovidéo = <videoflash type="mediaspip" num = 1>http://mediaspip.ptitdeb.infini.fr/IMG/flv/Mon_film-encoded.flv|400|300</videoflash>}} |
=='''Présentation de l'expérience'''== | =='''Présentation de l'expérience'''== | ||
- | + | ||
+ | Besoin de mesurer la température à l'intérieur de votre réfrigérateur ? Ce thermomètre est fait pour vous ! | ||
+ | |||
+ | ''!!!! il semble qu'il y ait une grosse erreur de montage dans votre vidéo : les résistance bleues, telle qu'elle sont branchées, ne servent à rien (elles sont en courts-circuits !)'' | ||
== '''Matériel''' == | == '''Matériel''' == | ||
- | * [[Image: | + | |
- | * | + | * [[Image:computer.jpg|50px]] Un [[ordinateur]] avec le logiciel [[Arduino]] |
- | * | + | * [[Fichier:20130115_104526.jpg|50px]] Un [[Arduino]] uno |
- | * [[ | + | * Un câble USB |
- | * [[ | + | * [[Fichier:20130115_104342.jpg|50px]] 9 [[fil électrique]]s |
- | * [[Fichier:20130115_104428.jpg| | + | * [[Image:Capteurdetemperature.jpg|50px]] Un [[Capteur température]] LM35 |
- | *[[Fichier:20130115_104403.jpg| | + | * [[Fichier:20130115_104428.jpg|50px]] 3 [[LED]] (jaune, rouge, verte) |
- | * | + | * [[Fichier:20130115_104403.jpg|50px]] 3 [[Résistance| résistances]] de 1500Ω |
+ | * [[Fichier:20130115_104650.jpg|50px]] Une [[Breadboard]] | ||
== '''L'expérience''' == | == '''L'expérience''' == | ||
==='''La manipulation'''=== | ==='''La manipulation'''=== | ||
- | |||
- | ==='''Que voit-on ?=== | + | Pour cette expérience, il suffit de réaliser le montage ci-dessous et de rentrer le code assembleur qui est donné à la suite : |
- | + | ||
- | Si | + | [[Fichier:Arduino12545615544.jpg|500px]] |
+ | |||
+ | Voici le code assembleur utilisé pour ce montage Arduino : | ||
+ | |||
+ | <pre> | ||
+ | |||
+ | // Déclaration des pins utilisées | ||
+ | |||
+ | |||
+ | const int pin_capteur = 0; | ||
+ | |||
+ | const int pin_led_rouge=2; | ||
+ | |||
+ | const int pin_led_verte=3; | ||
+ | |||
+ | const int pin_led_jaune=4; | ||
+ | |||
+ | |||
+ | //Variables | ||
+ | |||
+ | |||
+ | float temperature_max = 22.0; | ||
+ | |||
+ | float temperature_min = 19.0; | ||
+ | |||
+ | float temperature=0.0; | ||
+ | |||
+ | void setup(void) | ||
+ | |||
+ | { | ||
+ | |||
+ | pinMode(pin_capteur,INPUT); | ||
+ | |||
+ | pinMode(pin_led_rouge,OUTPUT); | ||
+ | |||
+ | pinMode(pin_led_verte,OUTPUT); | ||
+ | |||
+ | pinMode(pin_led_jaune,OUTPUT); | ||
+ | |||
+ | Serial.begin(9600); | ||
+ | |||
+ | } | ||
+ | |||
+ | |||
+ | void loop (void) | ||
+ | |||
+ | |||
+ | { | ||
+ | |||
+ | |||
+ | // On récupère la valeur de la tension en sortie du capteur, puis à l'aide de l'équation, on trouve la température qui y correspond | ||
+ | |||
+ | |||
+ | temperature = analogRead(pin_capteur) * 5000L / 1024L / 10; | ||
+ | |||
+ | |||
+ | //On remet à zéro les leds de 10mm | ||
+ | |||
+ | |||
+ | digitalWrite(2, LOW); | ||
+ | |||
+ | digitalWrite(3, LOW); | ||
+ | |||
+ | digitalWrite(4, LOW); | ||
+ | |||
+ | |||
+ | //On compare la température reçue aux seuils que l'on a défini lors des déclarations du programme | ||
+ | |||
+ | |||
+ | if (temperature<temperature_min)digitalWrite(pin_led_jaune,HIGH); | ||
+ | |||
+ | else if (temperature>temperature_max)digitalWrite(pin_led_rouge,HIGH); | ||
+ | |||
+ | else digitalWrite(pin_led_verte,HIGH); | ||
+ | |||
+ | |||
+ | //On envoie la valeur de la température sur le port série | ||
+ | |||
+ | |||
+ | Serial.println(temperature); | ||
+ | |||
+ | |||
+ | //On attend une seconde avant de recommencer | ||
+ | |||
+ | |||
+ | delay(1000); | ||
+ | |||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | * Une LED est allumée. | ||
+ | * Faire varier la température à proximité du capteur. | ||
+ | |||
+ | ==='''Que voit-on ?'''=== | ||
+ | |||
+ | Une led est allumée. | ||
+ | Si on effectue un changement de température à proximité du capteur, la led allumée s'éteint, et une autre s'allume. | ||
== '''Explications''' == | == '''Explications''' == | ||
==='''De manière simple'''=== | ==='''De manière simple'''=== | ||
- | + | ||
+ | La température est mesurée par le capteur, puis est comparée avec deux températures de références (temperature_max et temperature_min) par l'Arduino. Ensuite celui-ci envoie le signal permettant d'allumer la led correspondante. La mesure est recalculée toutes les secondes. | ||
=== '''Questions sans réponses''' === | === '''Questions sans réponses''' === | ||
- | + | ||
+ | Comment améliorer le système pour qu'il soit plus efficace ? | ||
=== '''Allons plus loin dans l'explication''' === | === '''Allons plus loin dans l'explication''' === | ||
- | + | ||
- | + | Voir les détails du code plus haut. | |
== '''Liens avec d'autres expériences''' == | == '''Liens avec d'autres expériences''' == | ||
==='''Expériences sur Wikidébrouillard'''=== | ==='''Expériences sur Wikidébrouillard'''=== | ||
- | + | ||
+ | [http://www.wikidebrouillard.org/index.php/Cat%C3%A9gorie:Arduino Catégorie Arduino] | ||
==='''Autres expériences'''=== | ==='''Autres expériences'''=== | ||
- | |||
== '''Applications : liens avec le quotidien''' == | == '''Applications : liens avec le quotidien''' == | ||
- | |||
- | + | [http://fr.wikipedia.org/wiki/Thermom%C3%A8tre Thermomètre sur Wikipédia] | |
- | + | ||
=='''Catégories'''== | =='''Catégories'''== | ||
- | |||
- | [[Catégorie: | + | [[Catégorie:électronique]] |
[[Catégorie:Vidéo à réaliser]] | [[Catégorie:Vidéo à réaliser]] | ||
- | |||
[[Catégorie:Contenus à développer]] | [[Catégorie:Contenus à développer]] | ||
- | [[Catégorie: | + | [[Catégorie:Arduino]] |
[[Catégorie:expérience]] | [[Catégorie:expérience]] | ||
+ | [[Catégorie:technique]] | ||
+ | [[Catégorie:programmation]] | ||
+ | [[Catégorie:informatique]] | ||
+ | [[Catégorie:électrokids]] |
Sommaire |
Besoin de mesurer la température à l'intérieur de votre réfrigérateur ? Ce thermomètre est fait pour vous !
!!!! il semble qu'il y ait une grosse erreur de montage dans votre vidéo : les résistance bleues, telle qu'elle sont branchées, ne servent à rien (elles sont en courts-circuits !)
Pour cette expérience, il suffit de réaliser le montage ci-dessous et de rentrer le code assembleur qui est donné à la suite :
Voici le code assembleur utilisé pour ce montage Arduino :
// Déclaration des pins utilisées const int pin_capteur = 0; const int pin_led_rouge=2; const int pin_led_verte=3; const int pin_led_jaune=4; //Variables float temperature_max = 22.0; float temperature_min = 19.0; float temperature=0.0; void setup(void) { pinMode(pin_capteur,INPUT); pinMode(pin_led_rouge,OUTPUT); pinMode(pin_led_verte,OUTPUT); pinMode(pin_led_jaune,OUTPUT); Serial.begin(9600); } void loop (void) { // On récupère la valeur de la tension en sortie du capteur, puis à l'aide de l'équation, on trouve la température qui y correspond temperature = analogRead(pin_capteur) * 5000L / 1024L / 10; //On remet à zéro les leds de 10mm digitalWrite(2, LOW); digitalWrite(3, LOW); digitalWrite(4, LOW); //On compare la température reçue aux seuils que l'on a défini lors des déclarations du programme if (temperature<temperature_min)digitalWrite(pin_led_jaune,HIGH); else if (temperature>temperature_max)digitalWrite(pin_led_rouge,HIGH); else digitalWrite(pin_led_verte,HIGH); //On envoie la valeur de la température sur le port série Serial.println(temperature); //On attend une seconde avant de recommencer delay(1000); }
Une led est allumée. Si on effectue un changement de température à proximité du capteur, la led allumée s'éteint, et une autre s'allume.
La température est mesurée par le capteur, puis est comparée avec deux températures de références (temperature_max et temperature_min) par l'Arduino. Ensuite celui-ci envoie le signal permettant d'allumer la led correspondante. La mesure est recalculée toutes les secondes.
Comment améliorer le système pour qu'il soit plus efficace ?
Voir les détails du code plus haut.
© Graphisme : Les Petits Débrouillards Grand Ouest (Patrice Guinche - Jessica Romero) | Développement web : Libre Informatique