Table des matières:

Capteur de température DIY utilisant une diode : 3 étapes
Capteur de température DIY utilisant une diode : 3 étapes

Vidéo: Capteur de température DIY utilisant une diode : 3 étapes

Vidéo: Capteur de température DIY utilisant une diode : 3 étapes
Vidéo: TRONIK AVENTUR 170 - FAIRE THERMOSTAT avec LM35 - DIY - CAPTEUR TEMPERATURE 2024, Juillet
Anonim
Capteur de température DIY utilisant une diode
Capteur de température DIY utilisant une diode
Capteur de température bricolage utilisant une diode
Capteur de température bricolage utilisant une diode

Donc, comme l'un des faits concernant les jonctions PN est que leur chute de tension directe change en fonction du courant de passage et de la température de jonction également, nous allons l'utiliser pour créer un simple capteur de température bon marché.

Cette configuration est couramment utilisée dans de nombreux Circuits Intégrés pour mesurer sa température interne et de nombreux capteurs de température comme le fameux LM35 qui repose sur cette propriété.

Simplement la chute de tension directe d'une diode (qui est une simple jonction PN) change à mesure que la quantité de courant la traversant change, de même que la température de la diode change, la chute de tension va changer (à mesure que la température augmente, la chute diminue d'une valeur de (1,0 milliVolts à 2,0 millivolts pour les diodes au silicium et 2,5 millivolts pour les diodes au germanium).

Ainsi, en faisant passer un courant constant dans la diode, la chute de tension directe ne devrait plus varier qu'en fonction de la température de la diode. Il ne nous reste plus qu'à mesurer la tension directe de la diode, appliquer quelques équations simples et voilà votre capteur de température !!!

Fournitures

1 - Diode 1n4007 #12 - 1 Résistance Kohm #13 - Carte Arduino

Étape 1: schéma de circuit

Schéma
Schéma

Comme vous pouvez le voir sur le schéma, c'est très simple. en connectant la diode en série avec une résistance de limitation de courant et une source de tension stable, nous pouvons obtenir une source de courant constante brute, de sorte que la tension mesurée aux bornes de la diode ne variera qu'en raison du changement de température. Assurez-vous que la valeur de la résistance n'est pas trop faible pour que beaucoup de courant traverse la diode et provoque un auto-échauffement notable dans la diode, pas non plus une résistance très élevée, donc le courant passant n'est pas suffisant pour maintenir une relation linéaire entre la tension directe et la température.

une résistance de 1 kilo Ohm avec une alimentation de 5 V devrait entraîner un courant de diode de 4 milliampères, ce qui est une valeur suffisante à cet effet. I(diode) = VCC / (Rsérie + Rdiode)

Étape 2: Codage

Nous devons garder à l'esprit qu'il y a certaines valeurs à modifier dans le code pour obtenir les meilleurs résultats comme:

1 - VCC_Voltage: comme la valeur analogRead() dépend du VCC de la puce ATmega alors nous devons l'ajouter à l'équation après l'avoir mesurée sur la carte arduino.

2 - V_OLD_0_C: la chute de tension directe de la diode utilisée à un courant de 4 mA et une température de 0 Celsius

3 - Temperature_Coefficient: le gradient de température de votre diode (il vaut mieux obtenir de la fiche technique) ou vous pouvez le mesurer en utilisant cette équation:Vnew - Vold = K (Tnew - Told)

où:

Vnew = chute de tension nouvellement mesurée après chauffage de la diode

Vold = chute de tension mesurée à une certaine température ambiante

Tnew = la température à laquelle la diode a été chauffée

Told = l'ancienne température ambiante à laquelle Vold a été mesuré

K = Temperature_Coefficient (une valeur négative variant entre -1,0 et -2,5 millivolts) Enfin, vous pouvez maintenant télécharger le code et obtenir vos résultats de température.

#define Sens_Pin A0 //PA0 pour carte STM32F103C8

double V_OLD_0_C = 690,0; //690 mV Tension directe à 0 Celsius à un courant de test de 4 mA

double V_NOUV = 0; //Nouvelle tension directe à température ambiante à 4 mA courant de test double Température = 0,0; //Température calculée de la pièce double Temperature_Coefficient = -1.6; //-1,6 mV de changement par degré Celsius (-2,5 pour les diodes au germanium), il vaut mieux obtenir de la fiche technique de la diode double VCC_Voltage = 5010,0; //Tension présente sur le rail 5V de l'arduino en milliVolts (nécessaire pour une meilleure précision) (3300.0 pour stm32)

void setup() {

// mettez votre code de configuration ici, à exécuter une fois: pinMode(Sens_Pin, INPUT); Serial.begin(9600); }

boucle vide() {

// mettez votre code principal ici, pour l'exécuter à plusieurs reprises: V_NEW = analogRead(Sens_Pin)*VCC_Voltage/1024.0; // diviser par 4,0 si vous utilisez un ADC 12 bits Température = ((V_NEW - V_OLD_0_C)/Temperature_Coefficient);

Serial.print("Temp = ");

Serial.print(Température); Serial.println("C");

retard (500);

}

Étape 3: Obtenir de meilleures valeurs

Obtenir de meilleures valeurs
Obtenir de meilleures valeurs
Obtenir de meilleures valeurs
Obtenir de meilleures valeurs

Je pense qu'il est conseillé d'avoir un appareil de mesure de la température de confiance à côté de vous lors de ce projet.

vous pouvez voir qu'il y a une erreur notable dans les lectures qui peut atteindre 3 ou 4 degrés Celsius alors d'où vient cette erreur ?

1 - vous devrez peut-être modifier les variables mentionnées à l'étape précédente

2 - la résolution ADC de l'arduino est inférieure à ce dont nous avons besoin pour détecter la petite différence de tension

3 - la référence de tension de l'arduino (5V) est trop élevée pour ce petit changement de tension aux bornes de la diode

Donc, si vous comptez utiliser cette configuration comme capteur de température, sachez que même si c'est bon marché et pratique, ce n'est pas précis mais cela peut vous donner une très bonne idée de la température de votre système soit c'est sur un PCB ou monté sur un moteur en marche, etc.

Cette instructable est destinée à utiliser le moins de composants possible, mais si vous voulez obtenir les résultats les plus précis de cette idée, vous pouvez apporter quelques modifications:

1 - ajoutez des étages d'amplification et de filtrage à l'aide d'amplificateurs opérationnels comme dans ce lien2 - utilisez un contrôleur de référence analogique interne inférieur comme les cartes STM32F103C8 avec une tension de référence analogique de 3,3 volts (voir point 4)3 - utilisez la référence analogique interne de 1,1 V dans le arduino mais sachez que vous ne pouvez pas connecter plus de 1,1 volt à l'une des broches analogiques arduino.

vous pouvez ajouter cette ligne dans la fonction setup:

analogReference(INTERNE);

4 - Utilisez un microcontrôleur qui a une résolution plus élevée ADC comme STM32F103C8 qui a une résolution ADC de 12 bits Donc, en un mot, cette configuration basée sur arduino peut donner un bon aperçu de la température de votre système mais des résultats pas si précis (environ 4,88 mV/lecture)

la configuration STM32F103C8 vous donnerait un résultat assez précis car elle a un CAN 12 bits plus élevé et une valeur de référence analogique inférieure de 3,3 V (environ 0,8 mV/lecture)

Eh bien c'est ça !!:RÉ

Conseillé: