(30 versions intermédiaires masquées) | |||
Ligne 4 : | Ligne 4 : | ||
=='''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:computer.jpg|50px]] Un [[ordinateur]] avec le logiciel [[Arduino]] |
- | *[[Fichier:20130115_104526.jpg| | + | * [[Fichier:20130115_104526.jpg|50px]] Un [[Arduino]] uno |
- | *[[Fichier:20130115_104342.jpg| | + | * 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_104650.jpg| | + | * [[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'''=== | ||
- | |||
- | + | Pour cette expérience, il suffit de réaliser le montage ci-dessous et de rentrer le code assembleur qui est donné à la suite : | |
- | + | ||
- | + | ||
- | + | [[Fichier:Arduino12545615544.jpg|500px]] | |
- | + | Voici le code assembleur utilisé pour ce montage Arduino : | |
- | + | <pre> | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
// Déclaration des pins utilisées | // Déclaration des pins utilisées | ||
+ | |||
const int pin_capteur = 0; | const int pin_capteur = 0; | ||
+ | |||
const int pin_led_rouge=2; | const int pin_led_rouge=2; | ||
+ | |||
const int pin_led_verte=3; | const int pin_led_verte=3; | ||
+ | |||
const int pin_led_jaune=4; | const int pin_led_jaune=4; | ||
+ | |||
//Variables | //Variables | ||
+ | |||
float temperature_max = 22.0; | float temperature_max = 22.0; | ||
+ | |||
float temperature_min = 19.0; | float temperature_min = 19.0; | ||
+ | |||
float temperature=0.0; | float temperature=0.0; | ||
Ligne 57 : | Ligne 58 : | ||
pinMode(pin_capteur,INPUT); | pinMode(pin_capteur,INPUT); | ||
+ | |||
pinMode(pin_led_rouge,OUTPUT); | pinMode(pin_led_rouge,OUTPUT); | ||
+ | |||
pinMode(pin_led_verte,OUTPUT); | pinMode(pin_led_verte,OUTPUT); | ||
+ | |||
pinMode(pin_led_jaune,OUTPUT); | pinMode(pin_led_jaune,OUTPUT); | ||
+ | |||
Serial.begin(9600); | Serial.begin(9600); | ||
} | } | ||
+ | |||
void loop (void) | 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 | + | |
+ | // 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; | temperature = analogRead(pin_capteur) * 5000L / 1024L / 10; | ||
+ | |||
//On remet à zéro les leds de 10mm | //On remet à zéro les leds de 10mm | ||
+ | |||
digitalWrite(2, LOW); | digitalWrite(2, LOW); | ||
+ | |||
digitalWrite(3, LOW); | digitalWrite(3, LOW); | ||
+ | |||
digitalWrite(4, 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 | //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); | if (temperature<temperature_min)digitalWrite(pin_led_jaune,HIGH); | ||
Ligne 86 : | Ligne 101 : | ||
else digitalWrite(pin_led_verte,HIGH); | else digitalWrite(pin_led_verte,HIGH); | ||
+ | |||
//On envoie la valeur de la température sur le port série | //On envoie la valeur de la température sur le port série | ||
+ | |||
Serial.println(temperature); | Serial.println(temperature); | ||
- | //On | + | |
+ | //On attend une seconde avant de recommencer | ||
+ | |||
delay(1000); | 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''' == | ||
+ | |||
+ | ==='''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''' === | ||
+ | |||
+ | Comment améliorer le système pour qu'il soit plus efficace ? | ||
+ | |||
+ | === '''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:électronique]] | [[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:Arduino]] | [[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