Tabla de contenido:

Sensor de temperatura de bricolaje con un diodo: 3 pasos
Sensor de temperatura de bricolaje con un diodo: 3 pasos

Video: Sensor de temperatura de bricolaje con un diodo: 3 pasos

Video: Sensor de temperatura de bricolaje con un diodo: 3 pasos
Video: ✅ Sensor de temperatura TMP36 con Arduino (Simulación en TINKERCAD) 2024, Noviembre
Anonim
Sensor de temperatura de bricolaje con un diodo
Sensor de temperatura de bricolaje con un diodo
Sensor de temperatura de bricolaje con un diodo
Sensor de temperatura de bricolaje con un diodo

Entonces, como uno de los hechos sobre las uniones PN es que su caída de voltaje directo cambia de acuerdo con la corriente que pasa y también con la temperatura de la unión, usaremos esto para hacer un sensor de temperatura simple y económico.

Esta configuración se usa comúnmente en muchos circuitos integrados para medir su temperatura interna y muchos sensores de temperatura como el famoso LM35 que se basa en esta propiedad.

Simplemente, la caída de voltaje directo de un diodo (que es una única unión PN) cambia a medida que cambia la cantidad de corriente que pasa a través de él, también a medida que cambia la temperatura del diodo, la caída de voltaje va a cambiar (a medida que aumenta la temperatura, el caída disminuye en un valor de (1.0 milivoltios a 2.0 milivoltios para diodos de silicio y 2.5 milivoltios para diodos de germanio).

Entonces, al pasar una corriente constante a través del diodo, la caída de voltaje directo ahora solo debería variar de acuerdo con la temperatura del diodo. Ahora solo necesitamos medir el voltaje directo del diodo, aplique algunas ecuaciones simples y listo, ¡aquí está su sensor de temperatura!

Suministros

1 - 1n4007 diodo n. ° 12 - 1 resistencia de Kohm n. ° 13 - placa Arduino

Paso 1: diagrama de circuito

Diagrama de circuito
Diagrama de circuito

Como puede ver en el esquema, es muy simple. Al conectar el diodo en serie con una resistencia limitadora de corriente y una fuente de voltaje estable, podemos obtener una fuente de corriente constante cruda, por lo que el voltaje medido a través del diodo solo variará debido al cambio de temperatura. demasiado baja para que pase mucha corriente a través del diodo y haga un autocalentamiento notable en el diodo, tampoco es una resistencia muy alta, por lo que la corriente que pasa no es suficiente para mantener una relación lineal entre el voltaje directo y la temperatura.

una resistencia de 1 kilo ohmio con un suministro de 5 V debería dar como resultado una corriente de diodo de 4 miliamperios, que es un valor suficiente para este propósito. I (diodo) = VCC / (Rseries + Rdiode)

Paso 2: codificación

Debemos tener en cuenta que hay algunos valores para modificar en el código para obtener mejores resultados como:

1 - VCC_Voltage: como el valor de analogRead () depende del VCC del chip ATmega, debemos agregarlo a la ecuación después de medirlo en la placa arduino.

2 - V_OLD_0_C: la caída de tensión directa del diodo utilizado a una corriente de 4 mA y una temperatura de 0 Celsius

3 - Temperature_Coefficient: el gradiente de temperatura de su diodo (mejor obtenerlo de la hoja de datos) o puede medirlo usando esta ecuación: Vnew - Vold = K (Tnew - Told)

dónde:

Vnew = caída de voltaje recién medida después de calentar el diodo

Vold = caída de voltaje medida a cierta temperatura ambiente

Tnew = la temperatura a la que se calentó el diodo a

Told = la antigua temperatura ambiente a la que se midió Vold

K = Temperature_Coefficient (un valor negativo que varía entre -1,0 a -2,5 milivoltios) Finalmente, ahora puede cargar el código y obtener los resultados de la temperatura.

#define Sens_Pin A0 // PA0 para placa STM32F103C8

doble V_OLD_0_C = 690.0; // 690 mV Voltaje directo a 0 Celsius a 4 mA de corriente de prueba

doble V_NEW = 0; // Nuevo voltaje directo a temperatura ambiente a 4 mA de corriente de prueba double Temperature = 0.0; // Temperatura ambiente calculada double Temperature_Coefficient = -1.6; // Cambio de 1,6 mV por grado Celsius (-2,5 para diodos de germanio), mejor obtenerlo de la hoja de datos del diodo double VCC_Voltage = 5010.0; // Voltaje presente en el riel de 5V del arduino en milivoltios (requerido para una mejor precisión) (3300.0 para stm32)

configuración vacía () {

// ponga su código de configuración aquí, para que se ejecute una vez: pinMode (Sens_Pin, INPUT); Serial.begin (9600); }

bucle vacío () {

// ponga su código principal aquí, para que se ejecute repetidamente: V_NEW = analogRead (Sens_Pin) * VCC_Voltage / 1024.0; // divide por 4.0 si estás usando un ADC de 12 bits Temperature = ((V_NEW - V_OLD_0_C) / Temperature_Coefficient);

Serial.print ("Temp =");

Serial.print (temperatura); Serial.println ("C");

retraso (500);

}

Paso 3: obtener mejores valores

Obtener mejores valores
Obtener mejores valores
Obtener mejores valores
Obtener mejores valores

Creo que es aconsejable tener un dispositivo de medición de temperatura confiable a su lado cuando realice este proyecto.

puede ver que hay un error notable en las lecturas que puede llegar a 3 o 4 grados centígrados, entonces, ¿de dónde viene este error?

1 - es posible que deba modificar las variables mencionadas en el paso anterior

2 - la resolución ADC del arduino es menor de lo que necesitamos para detectar la pequeña diferencia de voltaje

3 - la referencia de voltaje del arduino (5V) es demasiado alta para este pequeño cambio de voltaje en el diodo

Entonces, si va a utilizar esta configuración como un sensor de temperatura, debe tener en cuenta que, aunque es barato y práctico, no es preciso, pero puede darle una muy buena idea sobre la temperatura de su sistema, ya sea en un PCB o montado en un motor en marcha, etc.

Este instructivo está destinado a usar la menor cantidad posible de componentes, pero si desea obtener los resultados más precisos de esta idea, puede hacer algunos cambios:

1 - agregue algunas amplificaciones y etapas de filtrado usando amplificadores operacionales como en este enlace 2 - use un controlador de referencia analógico interno inferior como las tarjetas STM32F103C8 con voltaje de referencia analógico de 3.3 Voltios (vea el punto 4) 3 - use la referencia analógica interna de 1.1 V en el arduino, pero tenga en cuenta que no puede conectar más de 1,1 voltios a ninguno de los pines analógicos de arduino.

puede agregar esta línea en la función de configuración:

analogReference (INTERNAL);

4 - Use un microcontrolador que tenga ADC de mayor resolución como STM32F103C8 que tiene una resolución ADC de 12 bits Entonces, en pocas palabras, esta configuración basada en arduino puede brindar una buena descripción general de la temperatura de su sistema pero resultados no tan precisos (aproximadamente 4.88 mV / lectura)

la configuración del STM32F103C8 le daría un resultado bastante preciso, ya que tiene un ADC de 12 bits más alto y un valor de referencia analógico de 3.3V más bajo (aproximadamente 0.8 mV / Lectura)

Bueno, eso es todo !!:D

Recomendado: