top of page

Funciones

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.

FUNC.png

Código de Funciones con Parámetros

#include<iostream>
#include<math.h>
#include<stdio.h>
#include<conio.h>

using namespace std;
float M,r,en,ep,r1,l,i1,i2,r2,i11,r3,I,D,N;
void datos1();
float compgravt(float x,float y);
void datos2();
float campelct(float x,float y,float z);
void datos3();
float fucamag(float x,float y,float z,float a);
void datos4();
float decamag(float x,float y);
void datos5();
float camagelcim(float x,float y,float z);
int main (){
    int opcion;
    do{
        cout<<"*************Electromagnetismo*************";
        cout<<endl;
        cout<<"1) Campo Gravitatorio\n";
        cout<<"2) Campo Electrico\n";
        cout<<"3) Fuerza del Campo Magnetico\n";
        cout<<"4) Densidad de Campo Magnetico\n";
        cout<<"5) Campo Magnetico en Electroiman\n";
        cout<<endl;
        cin>>opcion;
        if(opcion>0,opcion<6){
            switch (opcion){
                
                case 1:{
                    cout<<"*******Campo Gravitatorio*******\n";
                    datos1();
                    compgravt(M,r);
                    cout<<endl;
                    break;
                }
                case 2:{
                    cout<<"*******Campo Electrico*******\n";
                    datos2();
                    campelct(en,ep,r1);
                    cout<<endl;
                    break;
                }
                case 3:{
                    cout<<"*******Fuerza del Campo Magnetico*******\n";
                    datos3();
                    fucamag(i1,i2,r2,l);
                    cout<<endl;
                    break;
                }
                case 4:{
                    cout<<"*******Densidad de Campo Magnetico*******\n";
                    datos4();
                    decamag(r3,i11);
                    cout<<endl;
                    break;
                }
                case 5:{
                    cout<<"*******Campo Magnetico en Electroiman*******\n";
                    datos5();
                    camagelcim(I,D,N);
                    cout<<endl;
                    break;
                }
            }
        }else
        cout<<"Opcion no existente";
        cout<<endl;
    }while (opcion!=0);
    system("pause");
    return(0);
}
void datos1(){
    cout<<"Ingrese la Masa: ",cin>>M;
    cout<<"Ingrese el Radio: ",cin>>r;
}
float compgravt(float x,float y){
    float Cg=0.000000000066*(x/(y*y));
    cout<<"El Campo Gravitatorio es: "<<Cg<<endl;
}




void datos2(){
    cout<<"Carga Electron p: ",cin>>en;
    cout<<"Carga Electron n: ",cin>>ep;
    cout<<"Radio del electron: ",cin>>r1;
}
float campelct(float x,float y,float z){
    float Ce=(1/(4*3.14159*y*x))*((x+y)/(z*z));
    cout<<"El Campo Electrico es: "<<Ce<<endl;
}




void datos3(){
    cout<<"Ingrese la Intesidad Cable 1: ",cin>>i1;
    cout<<"Ingrese la Intesidad Cable 2: ",cin>>i2;
    cout<<"Ingrese la Longitud de Separacion de los Cables: ",cin>>r2;
    cout<<"Ingrese la Longitud de lo Cables: ",cin>>l;
}
float fucamag(float x,float y,float z,float a){
    float F=0.0000012566*a*((x*y)/z);
    cout<<"La Fuerza del Campo Magnetico: "<<F<<endl;
}




void datos4(){
    cout<<"Ingrese la Longitud de Separacion de los Cables: ",cin>>r3;
    cout<<"Ingrese la Intensidad de la Intensidad 1: ",cin>>i11;
}
float decamag(float x,float y){
    float B=0.0000012566*(y/x);
    cout<<"La Densidad del Campo Magnetico: "<<B<<endl;
}



void datos5(){
    cout<<"Ingrese la Intensidad Electrica: ",cin>>I;
    cout<<"Ingrese el Diametro de la Bobina: ",cin>>D;
    cout<<"Ingrese el Numero de Espiras: ",cin>>N;    
}
float camagelcim(float x,float y,float z){
    float B1=0.0000012566*((x*z)/y);
    cout<<"El Campo Magnetico del Electroiman: "<<B1<<endl;
}

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.

RT.png

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:

a.png

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

R1.png

de donde despejando B:

B.png

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

RTG.png

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).

Tiempo de Intermitencia de Luminaria con Sensor de Movimiento PIR

T.png

T= Tiempo

R= Resistencia

C= Capacitancia

Programación en C++

#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;
}

© 2023 para  Le Cõuleur. Creado con Wix.com

bottom of page