Modifications

Sauter à la navigation Sauter à la recherche
2 610 octets ajoutés ,  3 octobre 2018 à 20:46
Ligne 56 : Ligne 56 :     
== Testing the sensor ==
 
== Testing the sensor ==
 +
In the both case, the measured would be identical.
    +
However, by default, the Arduino's {{fname|analogRead()}} use a 10 bit coding. So the range of possible value return by {{fname|analogRead()}} is 0 to 1024 (for 0 to 3.3v). This means that the accuracy of reading is 3.3 / 1024 = 0.0032 Volts, so 3.2 mV.
 +
 +
As the M0 does have an Analog-to-digital converter with a precision of 12 bits, we could also use the {{fname|analogReadResolution( 12 )}} to upgrade the {{fname|analogRead()}} resolution to 12 bits. In such case, the range of possible value return by {{fname|analogRead()}} is 0 to 4095 (for 0 to 3.3v). This means that the accuracy of reading is 3.3 / 4095 = 0.000805 Volts, so 0.805 mV.
 +
 +
=== Low resolution reading ===
 +
 +
 +
=== High resolution reading ===
 +
 +
/* ---------------------------------------------
 +
* | 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
 +
const int temperaturePin = A3; // 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).
 +
  analogReadResolution( 12 );
 +
}
 +
 +
void loop() { // s'exécute encore et encore
 +
  // Acquérir la tension lue sur le senseur de température.
 +
  float voltage = getVoltage(temperaturePin);
 +
  Serial.print( "Voltage : " );
 +
  Serial.print( voltage );
 +
  Serial.println( " Volts" );
 +
  // conversion de 10mV par degré avec un décalage (offset) de 500 mV.
 +
  //  Degrés = ((tension - 500mV) fois 100)
 +
  float temperature = (voltage - .5) *100;
 +
  Serial.print( "Temperature: " );
 +
  Serial.print(temperature); //affiche résultat
 +
  Serial.println( " °C" );
 +
  Serial.println( " " );
 +
  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 à 4095 vers une valeur entre 0 et 3.3 volts.
 +
  // (chaque unité lue vaut ~ 3.3 / 4095 = 0.805 millivolts
 +
  Serial.println( analogRead(pin) );
 +
  return (analogRead(pin) * .000805);
 +
}
    
{{ENG-CANSAT-TRAILER}}
 
{{ENG-CANSAT-TRAILER}}
29 917

modifications

Menu de navigation