Différences entre versions de « ARDX-Montages-CIRC10 »
(2 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
{{ARDX-NAV}} | {{ARDX-NAV}} | ||
− | == Ce que faisons | + | == Ce que nous faisons == |
{{bloc-etroit|text=Quel sera le prochain phénomène que nous allons mesurer avec notre Arduino ? | {{bloc-etroit|text=Quel sera le prochain phénomène que nous allons mesurer avec notre Arduino ? | ||
Ligne 158 : | Ligne 158 : | ||
Avant la ligne {{fname|Serial.println(temperature);}} | Avant la ligne {{fname|Serial.println(temperature);}} | ||
+ | |||
+ | Vous devez obtenir un corps de programme qui ressemble a ceci: | ||
+ | |||
+ | <nowiki> // Acquérir la tension lue sur le senseur de température. | ||
+ | float temperature = getVoltage(temperaturePin); | ||
+ | |||
+ | // conversion de 10mV par degré avec un décalage (offset) de 500 mV. | ||
+ | // Et adaptation formule pour passer en degrés Fahrenheit | ||
+ | temperature= (((temperature-.5)*100)*1.8) + 32; | ||
+ | |||
+ | Serial.println(temperature); //affiche résultat</nowiki> | ||
=== Afficher plus d'information === | === Afficher plus d'information === |
Version actuelle datée du 17 décembre 2015 à 09:12
Ce que nous faisons
Quel sera le prochain phénomène que nous allons mesurer avec notre Arduino ?
La température. Pour y arriver, nous allons utiliser un circuit intégré plutôt compliqué caché sous un conditionnement identique au transistor P2N2222AG.
Il a trois broches et il est facile à utiliser.
- la masse,
- le signal,
- +5 volts
Le senseur produit 10 millivolts par degré centigrade sur la broche signal (Il y a une compensation/offset de 500mV pour permettre la mesure de températures inférieures à 0°C).
Par ex : 25° C = 750 mV, 0° C = 500mV.
Pour convertir la valeur digitale en degrés, nous allons utiliser quelque-unes des capacités mathématiques d'Arduino.
Ensuite, pour l'afficher nous allons utiliser la fenêtre de débogage, l'une des caractéristiques assez puissantes de notre IDE.
Nous allons sortie la valeur à afficher au travers de la connexion série pour l'afficher sur l'écran. Allez, mettons nous au travail.
Le moniteur série
Une petite note complémentaire, ce montage utilise le moniteur série de l'IDE d'Arduino.
Pour l'ouvrir, chargez d'abord le programme et cliquez ensuite sur le bouton qui ressemble à un carré avec une antenne.
Le montage
Le matériel nécessaire
2 Pin header
x4
TMP36 - senseur de température
x1
Tous ces éléments sont disponibles dans le Kit Ardx proposé sur shop.mchobby.be.
Schéma
Montage
Le code
Pas besoin de tout taper, vous pouvez télécharger le code depuis...
Il ne reste plus qu'à le copier/coller dans une croquis vide.
/* --------------------------------------------- * | Code d'exemple du kit d'expérimentation * | Arduino * | CIRC-10 .: Température :. * --------------------------------------------- * Un programme simple qui affiche la température * actuelle dans la fenêtre de monitoring/débogage */ // Variable pour broche du TMP36 int temperaturePin = 0; // entrée analogique // sur laquelle la broche Vout du TMP36 est // connectée. La résolution est 10mv/degré // centigrade avec 500 mV de décalage/offset // pour permettre la lecture de température // négative. void setup() { Serial.begin(9600); // Démarrer la connexion série avec l'ordinateur. // Pour voir le le résultat, ouvrez le « moniteur série », le // dernier bouton dans la barre d'outil. // (celui qui ressemble à une boite ayant une antenne). } void loop() { // s'exécute encore et encore // Acquérir la tension lue sur le senseur de température. float temperature = getVoltage(temperaturePin); // conversion de 10mV par degré avec un décalage (offset) de 500 mV. // Degrés = ((tension - 500mV) fois 100) temperature = (temperature - .5) *100; Serial.println(temperature); //affiche résultat delay(1000); // Attendre une seconde. } /* * getVoltage() - retourne la tension d'une entrée analogique identifiée par 'pin' */ float getVoltage(int pin){ // Convertir valeur digital de 0 à 1024 vers une valeur entre 0 et 5 volts. // (chaque unité lue vaut ~ 5 millivolts return (analogRead(pin) * .004882814); }
Cela ne fonctionne pas?
Voici 3 choses à essayer.
Rien ne semble se passer?
Ce programme ne présente pas de signe extérieur de son fonctionnement. Pour voir les résultats, vous devez ouvrir le moniteur série dans l'IDE Arduino. (voir instructions ci-dessus)
Affiche du charabia
Cela arrive lorsque le moniteur série reçoit des données à une vitesse différente que la vitesse attendue.
Cliquez sur la liste déroulante affichant "*** baud" et la changer pour afficher "9600 baud" pour corriger.
La température ne change pas
Essayez de pincer le senseur entre vos doigts pour le chauffer un peu ou essayez de le refroidir avec un sac à glaçons.
Faire encore mieux
Afficher la tension
C'est aussi simple que la modification d'une ligne.
Notre senseur retourne 10mv par degrés. Donc, pour obtenir la tension, nous affichons simplement le résultat de getVoltage().
Effacez la ligne suivante dans votre programme Arduino:
temperature = (temperature - .5) * 100;
Afficher la température en degré Fahrenheit
Encore une fois, cela ne requière qu'une simple modification mathématique.
Nous utilisons la formule suivante pour passer de degrés C ---> degrés Fh :
( F = C * 1.8) + 32 )
Ajouter la ligne suivante...
temperature= (((temperature-.5)*100)*1.8) + 32;
Avant la ligne Serial.println(temperature);
Vous devez obtenir un corps de programme qui ressemble a ceci:
// Acquérir la tension lue sur le senseur de température. float temperature = getVoltage(temperaturePin); // conversion de 10mV par degré avec un décalage (offset) de 500 mV. // Et adaptation formule pour passer en degrés Fahrenheit temperature= (((temperature-.5)*100)*1.8) + 32; Serial.println(temperature); //affiche résultat
Afficher plus d'information
Ajoutons un message complémentaire pour rendre l'affichage plus compréhensif sur le moniteur série.
Pour y arriver il faut d'abord revenir au code original Serial.println(temperature); et ensuite changer en
Serial.print(temperature); Serial.println(" degrees centigrade");
Le changement sur la première ligne indique que la prochaine sortie apparaîtra sur la même ligne, ensuite nous ajoutons un texte informatif incluant un retour à la ligne.
Changer la vitesse du port série
Le temps devient important si vous désirez sortir beaucoup de données via le port série alors.
Nous transmettons actuellement les données à 9600 Bauds mais des vitesses bien plus élevées sont possibles.
Pour la modifier, changer la ligne Serial.begin(9600); en Serial.begin(115200);
Chargez le sketch, démarrez le moniteur série et modifiez ensuite la vitesse de 9600 baud à 115200 bauds dans la boîte déroulante.
Maintenant, vous transmettez les données 12 fois plus vite.
Plus, plus et encore plus
Plus d'information, où poser vos autres questions:
ardx.org/CIRC10 (anglais)
Internet
.:téléchargement:.
LA fiche de montage est disponible sur ardx.org/BBLS10
.: Vidéo :.
La vidéo du montage est disponible sur ardx.org/VIDE10 (anglais)
Tutoriel/Manuel traduit par Meurisse D. pour MCHobby.be licence Creative Commons BY-SA.
Crédit de traduction
Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant :
« Traduction par MCHobby (shop.MCHobby.be) - Vente de kit et composants » et ce quelque soit le média utilisé.
Utilisation commerciale
L'utilisation commercial de cette traduction (y compris sur site produisant des revenus par l'intermédiaire de publicité), même partielle, est soumise à redevance (license fee).
Le présent manuel a été traduit et autorisé à la vente avec l'aimable autorisation conjointe de Oomlout (www.oomlout.com) et d'AdaFruit (www.adafruit.com).
Produit sous licence Creative Commons BY-SA License and available for download: ardx.org/src/