top of page

Funciones.-

CLASE 8

Es una parte de un programa (subrutina) con un nombre, que puede ser invocada (llamada a ejecución) desde otras partes tantas veces como se desee. Un bloque de código que puede ser ejecutado como una unidad funcional

funcion.PNG

Sistema De Control Automático

Resistencia del Termistor NTC

Las funciones son un conjunto de procedimiento encapsulados en un bloque, usualmente reciben parámetros, cuyos valores utilizan para efectuar operaciones y adicionalmente retornan un valor. Esta definición proviene de la definición de función matemática la cual posee un dominio y un rango, es decir un conjunto de valores que puede tomar y un conjunto de valores que puede retornar luego de cualquier operación.

 

 

siendo:

Rt= Rntc, el valor de la resistencia a la temperatura T (en grados Kelvin. 0ºC=273,15ºK).

A = una constante que depende del termistor NTC, y representa el valor de la resistencia del termistor NTC cuando la temperatura es supuestamente infinita.

e= Numero de Euler=2,71828

B = es la resistencia característica del material de que está hecho el termistor NTC. Su valor esta comprendido entre 2000ºK y 4000ºK.

Calculo de las constantes A y B

Los fabricantes no suelen dar los valores de A y B por lo que hay que calcularlos según los valores de la resistencia RT a diferentes temperaturas. Para ello se realiza la siguiente consideración:

de donde igualando A para dos valores de R0 y T0 se obtiene:

de donde despejando B:

siendo R1 y R2 las resistencias del termistor NTC a las temperaturas T1 y T2 respectivamente. Una vez conocido B se puede calcular el valor de A sin más que sustituirlo en la ecuación (2) para una temperatura y resistencia de referencia (R0 y T0 a 25ºC, o 0ºC por ejemplo)

.

Resistencia del Sensor de Temperatura RTD

 

 

 

 

 

 

donde:

  • R=Rrtd

  •  R0 es la resistencia a la temperatura de referencia a T0

  •          (Dif_Temp) es la desviación de temperatura respecto a 

  •           (Alpha) es el coeficiente de temperatura del conductor especificado a 0 °C, interesa que sea de gran valor y constante con la temperatura

Cálculo de la distancia con el Sensor Ultrasonico

La distancia se puede calcular con la siguiente fórmula:

Distancia L = 1/2 × T × C

donde: 

L es la distancia, T es el tiempo entre la emisión y la recepción, y C=Vel_Son es la velocidad del sonido. (El valor se multiplica por 1/2 ya que T es el tiempo de recorrido de ida y vuelta).

1.jpg
2.jpg
4.png
4.png
4.png

#include <iostream>
#include <math.h>
using namespace std;
//DECLARACION VARIABLES PUBLICAS
double NTC,RTD,UTS,PIR,x,y,z,xp,Rntc,A,a,e=2.72,B,b,T,T0,R0,R1,R2,T1,T2,Rrtd,Dif_Temp,Tf,Alpha,Vel_Son=343.2,Dist,T_e_r,Inicial,Final,R,C;
//FUNCION 1
double Resist_NTC(double T);
//FUNCION 2
double Resist_RTD(double R0,double Alpha,double Dif_Temp);
//FUNCION 3
double Dist_Uts(double T_e_r);
//FUNCION 4
double T_Int_PIR(double R, double C);
int opcion;

int main()
{
    cout<<"            MENU        "<<endl;
    cout<<"*******************************************************"<<endl;
    cout<<"1. RESISTENCIA DEL TERMISTOR NTC CON FORMULAS ANIDADAS"<<endl;
    cout<<"2. RESISTENCIA DEL SENSOR DE TEMPERATURA RTD"<<endl;
    cout<<"3. CALCULO DE LA DISTANCIA CON EL SENSOR ULTRASONICO"<<endl;
    cout<<"4. TIEMPO DE INTERMITENCIA DE LUMINARIA CON SENSOR DE MOV. PIR"<<endl;
    cout<<"**************************************************************"<<endl;
    cout<<"SELECCIONA UNA FORMULA: "<<endl;
    cin>>opcion;
    
    switch(opcion)
    {
        case 1:
        {
            cout<<"1. RESISTENCIA DEL TERMISTOR NTC CON FORMULAS ANIDADAS"<<endl;
            cout<<"*****************************************************"<<endl;
            cout<<"FORMULA ANIDADA 1: CALCULANDO LA CONSTANTE A:"<<endl;
            cout<<"***********************************************"<<endl;
            cout<<"Ingrese la Resistencia 1: "; cin>>R1;
            cout<<"Ingrese la Resistencia 2: "; cin>>R2;
            cout<<"Ingrese la Temperatura 1: "; cin>>T1;
            cout<<"Ingrese la Temperatura 2: "; cin>>T2;
            //ANIDADO 1
                x=log(R1)-log(R2);
                y=(1/T1)-(1/T2);
                B=x/y;
                cout<<"La Constante B es: "<<B<<endl;
            {
            cout<<"FORMULA ANIDADA 2: CALCULANDO LA CONSTANTE B:"<<endl;
            cout<<"***********************************************"<<endl;
            cout<<"Ingrese la Resistencia Inicial: "; cin>>R0;
            cout<<"Ingrese la Temperatura Inicial: "; cin>>T0;
            //ANIDADO 2
                xp=-B/T0;
                A=R0*pow(e,xp);
                cout<<"La Constante A es: "<<A<<endl;
            cout<<"CALCULANDO LA RESISTENCIA DEL TERMISTOR NTC:"<<endl;
            cout<<"********************************************"<<endl;
            cout<<"Ingrese la Temperatura Expuesta del Sensor: "; cin>>T;
            //PROCESO
            Rntc=Resist_NTC(T);
            //RESULTADO
            cout<<"EL RESULTADO ES:"<<endl;
            cout<<"********************************************"<<endl;
            cout<<"La Resistencia del Termistor NTC es: "<<Rntc<<endl;
            }
        };break;
        
        case 2:
            {
            cout<<"2. RESISTENCIA DEL SENSOR DE TEMPERATURA RTD"<<endl;
            cout<<"*********************************************"<<endl;
            cout<<"Ingrese la Resistencia Final de Referencia a T0: "; cin>>Final;
            cout<<"Ingrese la Resistencia Inicial de Referencia a T0: "; cin>>Inicial;
            cout<<"Ingrese la Temperatura Inicial: "; cin>>T0;
            cout<<"Ingrese la Temperatura Final: "; cin>>Tf;
            cout<<"Ingrese la Coeficiente de Temperatura: "; cin>>Alpha;
            Dif_Temp=Tf-T0;
            for(R0=Inicial;R0<=Final;R0=R0+15)
            {
                //PROCESO
                Rrtd=Resist_RTD(R0,Alpha,Dif_Temp);
            //RESULTADO
            cout<<"EL RESULTADO ES:"<<endl;
            cout<<"********************************************"<<endl;
                cout<<"El Resistencia del Sensor de Temperatura RTD es: "<<Rrtd<<endl;
            }
            };break;
            
        case 3:
            {
            cout<<"3. CALCULO DE LA DISTANCIA CON EL SENSOR ULTRASONICO"<<endl;
            cout<<"******************************************************"<<endl;
            cout<<"Ingrese el Tiempo entre la Emision y la Recepcion (Seg): "; cin>>T_e_r;
            cout<<"La Velocidad de la Luz:343,2 m/s en la Atmosfera Terrestre "<<endl;
            //PROCESO
            Dist=Dist_Uts(T_e_r);
            //RESULTADO
            cout<<"EL RESULTADO ES:"<<endl;
            cout<<"********************************************"<<endl;
            cout<<"La distancia del Objeto sensado al Sensor Ultrasonico es(m): "<<Dist<<endl;
            };break;
            
        case 4:
            {
            cout<<"4. TIEMPO DE INTERMITENCIA DE LUMINARIA CON SENSOR DE MOV. PIR"<<endl;
            cout<<"***************************************************************"<<endl;
            cout<<"Ingrese la Resistencia: "; cin>>R;
            cout<<"Ingrese la Capacitancia: "; cin>>C;
            //PROCESO
            T=T_Int_PIR(R,C);
            //RESULTADO
            cout<<"EL RESULTADO ES:"<<endl;
            cout<<"********************************************"<<endl;
            cout<<"El Tiempo de Intermitencia de Luminaria con Sensor de Movimiento PIR: "<<T<<endl;
            };break;    
    }
}

// ZONA DE FUNCIONES

double Resist_NTC(double T)
{
    z=B/T;
    NTC=A*pow(e,z);
    return NTC;
}
double Resist_RTD(double R0,double Alpha,double Dif_Temp)
{
    RTD=R0*(1+Alpha*Dif_Temp);
    return RTD;
}
double Dist_Uts(double T_e_r)
{
    UTS=(T_e_r*Vel_Son)/2;
    return UTS;
}
double T_Int_PIR(double R, double C)
{
    PIR=log(3)*R*C;
    return PIR;
}

bottom of page