m |
|||
(Une version intermédiaire masquée) | |||
Ligne 15 : | Ligne 15 : | ||
* Un câble USB | * Un câble USB | ||
* [[Fichier:20130115_104342.jpg|50px]] 9 [[fil électrique]]s | * [[Fichier:20130115_104342.jpg|50px]] 9 [[fil électrique]]s | ||
- | * [[ | + | * [[Image:Capteurdetemperature.jpg|50px]] Un [[Capteur température]] LM35 |
* [[Fichier:20130115_104428.jpg|50px]] 3 [[LED]] (jaune, rouge, verte) | * [[Fichier:20130115_104428.jpg|50px]] 3 [[LED]] (jaune, rouge, verte) | ||
* [[Fichier:20130115_104403.jpg|50px]] 3 [[Résistance| résistances]] de 1500Ω | * [[Fichier:20130115_104403.jpg|50px]] 3 [[Résistance| résistances]] de 1500Ω | ||
Ligne 160 : | Ligne 160 : | ||
[[Catégorie:programmation]] | [[Catégorie:programmation]] | ||
[[Catégorie:informatique]] | [[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