ARDX-Montages-CIRC10

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche


MCHobby investit du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.

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.

Circ10-moniteur-serie.png

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

ARDX-circ-sheet.png

Fiche de montage CIRC-10
x1

ARDX-pin-header.png

2 Pin header
x4

ARDX-TMP36.png

TMP36 - senseur de température
x1

 

Tous ces éléments sont disponibles dans le Kit Ardx proposé sur shop.mchobby.be.

Schéma

Circ10-schema.png

Montage

Cir10-montage.png

Le code

Pas besoin de tout taper, vous pouvez télécharger le code depuis...

ardx.org/CODE10

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/