Modifications

Sauter à la navigation Sauter à la recherche
457 octets ajoutés ,  3 octobre 2018 à 21:37
Ligne 56 : Ligne 56 :     
== Testing the sensor ==
 
== Testing the sensor ==
In the both case, the measured would be identical.
+
In the both case show here under, the measured temperature 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.
+
{{ambox|text=However, if your project does need a high resolution analog reads then it may be appropriate to explore the "High Resolution Reading" example.}}
 +
 
 +
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 ADC (''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). As we have a real 12bit ADC, we can rely on that accuracy (it is not a 10 bits ADC storing the data into a 12 bits integer).
 
As the M0 does have an ADC (''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). As we have a real 12bit ADC, we can rely on that accuracy (it is not a 10 bits ADC storing the data into a 12 bits integer).
Ligne 96 : Ligne 98 :  
  */
 
  */
 
float getVoltage(int pin){
 
float getVoltage(int pin){
 
+
  // AS the sketch does not call the analogReadResolution()
   // Convert digital value between 0 & 4095 to  
+
  //    function to change the analog reading resolution
 +
  // THEN Arduino use the defaut 12 bits resolution!
 +
  // Under 12 bits resolution, the analogRead() returns
 +
  //    a value between 0 & 1024.
 +
  //
 +
   // Convert digital value between 0 & 1024 to  
 
   //    voltage between 0 & 3.3 volts.
 
   //    voltage between 0 & 3.3 volts.
   //    (each unit equal 3.3 / 4095 = 0.805 millivolts)
+
   //    (each unit equal 3.3 / 1024 = 3.2 millivolts)
   return (analogRead(pin) * .000805);
+
   return (analogRead(pin) * .0032);
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
Ligne 110 : Ligne 117 :  
Which produce the following result on the Serial Monitor
 
Which produce the following result on the Serial Monitor
   −
[[Fichier:ENG-CANSAT-TMP36-70.png]]
+
[[Fichier:ENG-CANSAT-TMP36-60.png|640px]]
    
{{ENG-CANSAT-TRAILER}}
 
{{ENG-CANSAT-TRAILER}}
Ligne 162 : Ligne 169 :  
Which produce the following result on the Serial Monitor
 
Which produce the following result on the Serial Monitor
   −
[[Fichier:ENG-CANSAT-TMP36-70.png]]
+
[[Fichier:ENG-CANSAT-TMP36-70.png|640px]]
    
{{ENG-CANSAT-TRAILER}}
 
{{ENG-CANSAT-TRAILER}}
29 917

modifications

Menu de navigation