Exercice avec le capteur de température Grove en C/C++ pour Stm32duino
De la même manière que pour les autres capteurs, nous utiliserons le shield que nous brancherons sur la carte. Ouvrez Arduino et vérifiez que le port est connecté: Outils/Port, COM3 devrait être sélectionné.
- Capteur de température : - Temperature sensor
Ce capteur de température utilise une thermistance (résistance qui diminue avec la chaleur) pour mesurer la température ambiante. La résistance modifie la sortie d’un diviseur de tension qui est mesurée par une broche d’entrée analogique. Cette valeur devra être convertie en une valeur de température dans notre programme.
La plage de fonctionnement est de -40 à 125 ° C, avec une précision de 1,5 ° C.
Le capteur doit être connecté au pin A0
Voici le code sur Arduino IDE
//définition des constantes necessaires pour la conversion.
float R1 = 10000;
float logR2, R2, T;
float c1 = 0.001129148, c2 = 0.000234125, c3 = 0.0000000876741; //coefficients de Steinhart-Hart pour la conversion
void setup() {
Serial.begin(9600);
pinMode(A0,INPUT); // on met le capteur en entrée analogique
}
void loop() {
int Vo = analogRead(A0);
R2 = R1 * (1023.0 / (float)Vo - 1.0); //calcule la résistance du thermistor
logR2 = log(R2); //on a converti Vo en float plutôt que int pour le calcul
T = (1.0 / (c1 + c2*logR2 + c3*logR2*logR2*logR2)); // met la temperature en Kelvin.
T = T - 273.15; // converti des Kelvins aux Celcius.
// T = (T * 9.0)/ 5.0 + 32.0; // converti des Celsius aux Fahrenheits.
Serial.print("Temperature: ");
Serial.print(T);
//Serial.println(" K");
Serial.println(" C");
//Serial.println(" F");
delay(500);
}
Crédit image : Seeedstudio