DISEÑO DE UN SISTEMA DE MEDIDA
UTILIZANDO UNA TERMORRESISTENCIA
ANEXO 1: CÓDIGO DE ARDUINO
Sistemas Electrónicos e Instrumentación
Grupo 2.2:
Juan Lera
Mª Cristina Baigorri
Martín Collado
Pamplona, 19 de Noviembre de 2024
// Definimos el pin del Arduino donde está conectado el sensor
const int sensorPin = A5; // Cogemos la salida del PT100 en el pin A5
// Parámetros del sensor PT100
const float voltajeReferencia = 5; // Voltaje de referencia del Arduino
(5 V)
const float resolucion = 1024; // Resolución del Arduino
const float factorConversion = 0.019891; // Escala del PT100, mV/ºC (la
teórica es de 20 mV/ºC, equivalente a 50ºC/V)
//Para calcular con la media de varios datos
const int numdatos = 10; // Número de datos por segundo
int datos[numdatos]; // Vector para almacenar las lecturas
int indice = 0;
float suma = 0; // Variable para acumular la suma de los
datos
float promedio = 0; // Variable para el promedio(temperatura
media de esos datos)
const int intervalo = 100; // Intervalo entre lecturas (ms)
void setup() {
pinMode(sensorPin, INPUT); // La señal del pin del sensor es la
entrada de información
[Link](9600);
}
void loop() {
unsigned long inicio = millis(); //Tiempo inicial
for (int indice = 0; indice < numdatos; indice++) {
// Leemos el voltaje del sensor
float nuevalectura = (float)analogRead(sensorPin); // Leemos el
valor de 0-1023
suma -= datos[indice]; //Reseteo la suma al restar el valor que
tenia, es decir, la ponemos a cero
datos[indice] = nuevalectura; //Se llena el vector de datos con la
nueva lectura de datos
suma += nuevalectura; //La suma se consigue con la nueva lectura de
datos
promedio = suma / numdatos; //Obtenemos el valor promedio de los
datos
float voltajeSensor = (promedio / resolucion) * voltajeReferencia;
// Convertimos a voltaje de 0-5V
float temperatura = voltajeSensor / factorConversion; //
Convertimos a ºC
while (millis() - inicio < intervalo * (indice + 1));
// Dato de salida
//[Link]("Temperatura: ");
[Link](temperatura);
//[Link](" ºC");
delay(200); // Esperamos 200 ms
}
}