Étape 5: Thermomètre à alimentation indépendante automatique-calibrage
Cet exemple est similaire à celle ci-dessus, sauf que maintenant, nous utilisons un truc spécial où nous lire la valeur analogique d’une tension de référence fixe à l’intérieur de la puce et ensuite l’utiliser pour faire un calcul précis. Cela signifie également que cela fonctionnera juste n’importe quelle tension l’Arduino à tourne !
TMP36 Pin Variables
int sensorPin = 0 ; l’analogue de la TMP36 Vout (sens) broche est connecté à
la résolution est de 10 mV / degrés centigrades avec un
500 mV décalage pour permettre à des températures négatives
#define BANDGAPREF 14 / / special indicateur que nous voulons mesurer la bande interdite
/ * setup() - cette fonction est exécutée une fois quand vous allumez votre Arduino. Nous initialisons la connexion série avec l’ordinateur
*/
void setup()
{
Serial.Begin(9600) ; Lancez la connexion série avec l’ordinateur
pour afficher le résultat Ouvrez le moniteur série
Delay(500) ;
}
void loop() / / run maintes et maintes fois
{
lecture de la tension en retire la référence de secret 1.05V interne
int refReading = analogRead(BANDGAPREF) ;
Serial.println(refReading) ;
calculer maintenant notre tension d’alimentation de la lecture connus volt 1,05
float supplyvoltage = (1,05 * 1024) / refReading ;
Serial.Print(supplyvoltage) ; Serial.println ("alimentation V ») ;
obtention de la tension mesurée par le capteur de température
lecture int = analogRead(sensorPin) ;
conversion que la lecture de tension
flotteur de tension = lecture * supplyvoltage / 1024 ;
imprimer la tension
Serial.Print(voltage) ; Serial.println (« volts ») ;
Imprimez maintenant la température
float temperatureC = (tension - 0.5) * 100 ; conversion de 10 mv par degré wit 500 mV offset
à degrés ((volatge - 500 mV) multiplié par 100)
Serial.Print(temperatureC) ; Serial.println ("degrés C") ;
maintenant convertir en Fahrenheight
float temperatureF = (temperatureC * 9 / 5) + 32 ;
Serial.Print(temperatureF) ; Serial.println ("degrés F") ;
Delay(1000) ; en attente d’une seconde
}