Versión 3.0

800x600 mínimo
En esta lección:

Concepto de circuito eléctrico
-----
La Ley de Ohm
-----
Potencia y energía
-----
Circuitos en serie y paralelo
-----
Descargas
-----


Otras secciones:

Conceptos básicos
-----
Programando en C
-----
Programando en C++
-----
Programando Windows 9x.
-----
Teoría electrónica
-----
Circuitos electrónicos
-----
Actividades adicionales
-----
Hipervínculos
-----


Contácteme:

Dudas y comentarios
-----


Hola mundo

     Cuando niños todos jugamos alguna vez con una linterna de mano, éste objeto viene a mi mente y me resulta como ejemplo ideal para empezar el presente artículo, una linterna constituye un circuito eléctrico elemental y partiremos de éste para exponer algunos conceptos básicos importantes incluyendo la ley de Ohm y la manera de hacer algunos cálculos relacionados apoyandonos con el uso de software escrito en C para facilitar nuestro trabajo futuro.

Hola mundo

Concepto de circuito eléctrico 

Un circuito eléctrico elemental

     Un diagrama de circuito, también conocido como red eléctrica, se construye a partir de combinaciones en serie y paralelo de dispositivos eléctricos generalmente de dos terminales, el análisis del diagrama del circuito predice el comportamiento del dispositivo real. Existen dos tipos de dispositivos, los activos constituidos por fuentes de voltaje o corriente capaces de suministrar ó controlar la energía para la red eléctrica, y los pasivos que absorben o almacenan la energía procedente de las fuentes. En la figura podemos observar el diagrama eléctrico de una linterna de mano, está constituido por una batería, la cual es un dispositivo activo, y una lámpara incandecente misma que se puede considerar como un dispositivo pasivo. En todo circuito eléctrico están presentes tres parámetros importantes relacionados entre sí, el voltaje, la corriente y la resistencia. En el artículo unidades eléctricas estándar se dá una explicación amplia de éstos conceptos, en ésta sección nos interesa más establecer la relación que existe entre éstos conceptos y su aplicación práctica. La batería, como todos sabemos, es una fuente de voltaje. Al conectar la lámpara incandecente a los bornes de la batería se establece un circuito eléctrico que permite el flujo de corriente del borne negativo a la terminal positiva de la batería, a su paso a través de la lámpara, ésta presenta cierta oposición, también llamada resistencia, al flujo de la corriente manifestandose en calentamiento del filamento de la lámpara y como consecuencia de ésto se produce la emisión de luz visible. La lámpara, en efecto, es una resistencia, un componente pasivo. Tenemos pues en forma manifiesta la presencia de voltaje, un flujo de corriente y una oposición a ésta llamada resistencia.

Volver al principio

Hola mundo

La ley de Ohm 

     Como su nombre lo dice, la resistencia se opone al flujo de corriente, esto es, a mayor resistencia menor flujo de corriente suponiendo que el voltaje permanece en el mismo valor. Ésta íntima relación entre voltaje, corriente y resistencia está definida por la ley de Ohm que dice: la corriente es directamente proporcional al voltaje e inversamente proporcional a la resistencia. Ésta afirmación la podemos expresar matemáticamente así:

La Ley de Ohm

     En donde I es la corriente en Amperes, E es el voltaje dado en Volts, y R es el valor de la resistencia en Ohms. A partir de ésta fórmula es fácil deducir que E = IR y que R = E / I. Éstas tres fórmulas son básicas para trabajar con circuitos eléctricos y su aplicación es en realidad sencilla, para tener a la mano éstos cálculos he desarrollado un programa sencillo en C, el código fuente es el siguiente:


/***********************************************************
*                                                          *
*   ohmwatt.c                                              *
*   Programa para diferentes cálculos eléctricos           *
*   ©1999, Virgilio Gómez Negrete                          *
*                                                          *
***********************************************************/

#include <stdio.h>
#include <disp.h>
#include <stdlib.h>

/***********************************************************
*   Prototipo de funciones                                 *
***********************************************************/
int menu(void);
void clear(void);
void copy(void);

/***********************************************************
*   Variables globales                                     *
***********************************************************/
int opcion;

int menu()
{
    printf("- - - - - - - - - - - - - - - - - - - - - - - - - - -\n\n");
    printf("Seleccione una opcion:\n");
    printf("Salir del programa.......................................0\n");
    printf("Ley de Ohm: Calcular voltaje (E).........................1\n");
    printf("Ley de Ohm: Calcular corriente (I).......................2\n");
    printf("Ley de Ohm: Calcular resistencia (R).....................3\n");
    printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - -\n");
    scanf("%d", &opcion);
    clear();
};

void clear(void)
{
    disp_open ();
    disp_move (0, 0);
    disp_eeop ();
    disp_close ();
};

void copy(void)
{
    printf("- - - - - - - - - - - - - - - - - - - - - - - - - - -\n\n");
    printf("O H M W A T T (Version 1.0.0) Calculos electricos basicos\n\n");
    printf("Publicado en:\n\n");
    printf("www.GeoCities.com/SiliconValley/Garage/8211\n\n");
    printf("Para comentarios respecto a este programa, escriba:\n\n");
    printf("virgiliotech@yahoo.com\n\n");
    printf("(C)1999, Virgilio Gomez Negrete\n\n");
    printf("- - - - - - - - - - - - - - - - - - - - - - - - - - -\n\n");
}

int main()
{
    float resistencia, voltaje, corriente;

    menu();
    do
    {
        switch(opcion)
        {
            case 0:
            break;

            case 1:
            {
                printf("\nLey de Ohm: Calcular voltaje (E)\n\n");
                printf("Introduzca el valor de la corriente (I)"
                  "en Amperes:\n");
                scanf("%f", &corriente);
                printf("Introduzca el valor de la resistencia (R)"
                  "en Ohms:\n");
                scanf("%f", &resistencia);
                clear();
                printf("\n\n\nEl voltaje (E) es de %f Voltios\n\n\n\n",
                  voltaje=(corriente*resistencia));
                menu();
            };
            break;

            case 2:
            {
                printf("\nLey de Ohm: Calcular corriente (I)\n\n");
                printf("Introduzca el valor del voltaje (E)"
                  "en Voltios:\n");
                scanf("%f", &voltaje);
                printf("Introduzca el valor de la resistencia (R)"
                  "en Ohms:\n");
                scanf("%f", &resistencia);
                clear();
                printf("\n\n\nLa corriente (I) es de %f Amperes\n\n\n\n",
                  corriente=(voltaje/resistencia));
                menu();
            };
            break;

            case 3:
            {
                printf("\nLey de Ohm: Calcular resistencia (R)\n\n");
                printf("Introduzca el valor del voltaje (E)"
                  "en Voltios:\n");
                scanf("%f", &voltaje);
                printf("Introduzca el valor de la corriente (I)"
                  "en Amperes:\n");
                scanf("%f", &corriente);
                clear();
                printf("\n\n\nLa resistencia (R) es de %f Ohms\n\n\n\n",
                  resistencia=(voltaje/corriente));
                menu();
            };
            break;

            default:
            printf("\n\nERROR 0001: Opcion incorrecta!\n\n");
            menu();
            break;
        }
    }
    while(opcion!=0);
    copy();
    return 0;
}

Volver al principio

Hola mundo

Potencia y energía 

     La presión eléctrica, o fem, no puede hacer trabajo alguno por sí sola, una batería produce una fem, pero si no hay una carga conectada a ella no circula corriente y no se produce trabajo alguno. Cuando conectamos una carga a la batería se produce una corriente de electrones. La corriente representa un movimiento. El producto de la presión y el movimiento (voltios y amperios), realiza el trabajo. La unidad de medida de la velocidad con que se produce el trabajo, o unidad de medida de potencia, es el Watt abreviadamente, W. En un circuito eléctrico, una corriente de un amperio, producida por un voltio, desarrolla una potencia de un watt, de acuerdo con la fórmula P = EI en donde P es la potencia en watts, E es la fem en voltios, e I es la corriente en amperios.

     Podemos utilizar la ley de Ohm y reordenar la fórmula de potencia en términos de la corriente y la resistencia, por la ley de Ohm sabemos que E = IR, si sustituímos en la fórmula de la potencia E por IR obtenemos P = I²R en donde R es la resistencia en Ohms. De la misma manera, de la ley de Ohm tenemos que I = ( E / R ), sustituyendo I por (E / R) en la fórmula básica de la potencia podemos hacer el cálculo en términos de voltaje y resistencia: P = (E² / R). Tenemos pués tres fórmulas igualmente importantes para agregar a nuestro programa:

P = EI
P = I²R y
P = ( E² / R ).

     Estudiando el código fuente dado para calcular la ley de Ohm observamos que podemos agregarle instrucciones case adicionales para que nuestro programa realice cálculos de potencia, por supuesto que necesitamos además modificar la sección del código relativo al menú de opciones. Las instrucciones case adicionales son éstas:


case 4:
{
    printf("\nPotencia (P) en terminos de voltaje y coriente\n\n");
    printf("Introduzca el valor del voltaje (E) en Voltios:\n");
    scanf("%f", &voltaje);
    printf("Introduzca el valor de la corriente (I) en Amperes:\n");
    scanf("%f", &corriente);
    clear();
    printf("\n\n\nLa potencia (P) es de %f Watts\n\n\n\n",
      potencia=(voltaje*corriente));
    menu();
};
break;

case 5:
{
    printf("\nPotencia (P) en terminos de corriente (I)"
      " y resistencia (R)\n\n");
    printf("Introduzca el valor de la resistencia (R) en Ohms:\n");
    scanf("%f", &resistencia);
    printf("Introduzca el valor de la corriente (I) en Amperes:\n");
    scanf("%f", &corriente);
    clear();
    printf("\n\n\nLa potencia (P) es de %f Watts\n\n\n\n",
      potencia=((corriente*corriente)*resistencia));
    menu();
};
break;

case 6:
{
    printf("\nPotencia (P) en terminos de voltaje (E)"
      " y resistencia (R)\n\n");
    printf("Introduzca el valor del voltaje (E) en Voltios:\n");
    scanf("%f", &voltaje);
    printf("Introduzca el valor de la resistencia (R) en Ohms:\n");
    scanf("%f", &resistencia);
    clear();
    printf("\n\n\nLa potencia (P) es de %f Watts\n\n\n\n",
      potencia=((voltaje*voltaje)/resistencia));
    menu();
};
break;

     Las necesarias modificaciones a la función menu( ) son:


printf("Potencia (P) en terminos de voltaje y corriente..........4\n");
printf("Potencia (P) en terminos de corriente y resistencia......5\n");
printf("Potencia (P) en terminos de voltaje y resistencia........6\n");

     De las tres fórmulas básicas para calcular potencia podemos derivar otras fórmulas muy útiles que nos permitan conocer sea el voltaje, la corriente o bién la resistencia:

  • E = ( P / I )

  • E = ( PR )½

  • I = ( P / E )

  • I = ( P / R )½

  • R = ( P / I² )

  • R = ( E² / P )

     El segmento de código correspondiente a éstas fórmulas es, respectivamente:


case 7:
{
    printf("\nVoltaje (E) en terminos de potencia (P)"
      " y corriente (I)\n\n");
    printf("Introduzca el valor de la potencia (P) en Watts:\n");
    scanf("%f", &potencia);
    printf("Introduzca el valor de la corriente (I) en Amperes:\n");
    scanf("%f", &corriente);
    clear();
    printf("\n\n\nEl voltaje (E) es de %f Voltios\n\n\n\n",
      voltaje=(potencia/corriente));
    menu();
};
break;


case 8:
{
    printf("\nVoltaje (E) en terminos de potencia (P)"
      " y resistencia (R)\n\n");
    printf("Introduzca el valor de la potencia (P) en Watts:\n");
    scanf("%f", &potencia);
    printf("Introduzca el valor de la resistencia (R) en Ohms:\n");
    scanf("%f", &resistencia);
    clear();
    printf("\n\n\nEl voltaje (E) es de %f Voltios\n\n\n\n",
      voltaje=sqrtf(potencia*resistencia));
    menu();
};
break;

case 9:
{
    printf("\nCorriente (I) en terminos de potencia (P)"
      " y voltaje (E)\n\n");
    printf("Introduzca el valor de la potencia (P) en Watts:\n");
    scanf("%f", &potencia);
    printf("Introduzca el valor del voltaje (E) en Voltios:\n");
    scanf("%f", &voltaje);
    clear();
    printf("\n\n\nLa corriente (I) es de %f Amperes\n\n\n\n",
      corriente=(potencia/voltaje));
    menu();
};
break;

case 10:
{
    printf("\nCorriente (I) en terminos de potencia (P)"
      " y resistencia (R)\n\n");
    printf("Introduzca el valor de la potencia (P) en Watts:\n");
    scanf("%f", &potencia);
    printf("Introduzca el valor de la resistencia (R) en Ohms:\n");
    scanf("%f", &resistencia);
    clear();
    printf("\n\n\nLa corriente (I) es de %f Amperes\n\n\n\n",
      corriente=sqrtf((potencia/resistencia)));
    menu();
};
break;

case 11:
{
    printf("\nResistencia (R) en terminos de potencia (P)"
      " y corriente (I)\n\n");
    printf("Introduzca el valor de la potencia (P) en Watts:\n");
    scanf("%f", &potencia);
    printf("Introduzca el valor de la corriente (I) en Amperes:\n");
    scanf("%f", &corriente);
    clear();
    printf("\n\n\nLa resistencia (R) es de %f Ohms\n\n\n\n",
      resistencia=(potencia/(corriente*corriente)));
    menu();
};
break;

case 12:
{
    printf("\nResistencia (R) en terminos de voltaje (E)"
      " y potencia (P)\n\n");
    printf("Introduzca el valor del voltaje (E) en Voltios:\n");
    scanf("%f", &voltaje);
    printf("Introduzca el valor de la potencia (P) en Watts:\n");
    scanf("%f", &potencia);
    clear();
    printf("\n\n\nLa resistencia (R) es de %f Ohms\n\n\n\n",
      resistencia=((voltaje*voltaje)/potencia));
    menu();
};
break;

     En tanto que las adiciones en la función menu( ) son las siguientes :


printf("Voltaje (E) en terminos de potencia y corriente..........7\n");
printf("Voltaje (E) en terminos de potencia y resistencia........8\n");
printf("Corriente (I) en terminos de potencia y voltaje..........9\n");
printf("Corriente (I) en terminos de potencia y resistencia.....10\n");
printf("Resistencia (R) en terminos de potencia y corriente.....11\n");
printf("Resistencia (R) en terminos de voltaje y potencia.......12\n");

Volver al principio

Hola mundo

Circuitos en serie y paralelo 

     Hasta éste punto hemos tratado las diferentes fórmulas que nos permiten conocer los cuatro parámetros más importantes que intervienen en un circuito alimentado en corriente continua, no hemos discutido aún las diferentes configuraciones que pueden tomar los diferentes elementos que componen nuestro circuito eléctrico, éstas son, conexión en serie, conexión en paralelo también llamada en derivación y la combinación de ámbas, serie-paralelo.

     La característica principal de un circuito conectado en serie es que por todos los elementos que componen el circuito circula la misma cantidad de corriente, similarmente, en un circuito conectado en paralelo se establece el mismo voltaje a través de todos los elementos que lo componen, en la siguiente figura podemos ver una representación esquemática de un circuito conectado en serie (izquierda) y uno conectado en paralelo (derecha).

Circuitos en serie y paralelo

     Como es fácil suponer, en el circuito en serie la resistencia total se obtiene sumando los valores individuales de cada resistencia. Lo que no resulta tan obvio es cómo obtenemos la resistencia total en un circuito conectado en paralelo, para comprender éste mecanismo es necesario entender primero otro concepto llamado conductancia. En un circuito eléctrico en funcionamiento debe haber siempre una fuente de fuerza electromotriz fem y una carga que en el más elemental de los circuitos puede ser una única resistencia, de la ley de Ohm sabemos que a mayor resistencia menor es el flujo de corriente, podemos considerar a la resistencia como un conductor, puede ser un conductor muy malo ó quizás aceptable, en cualquier caso, cuanto mayor sea su capacidad de conducción, o conductancia, menor será su resistencia. Luego decimos que conductancia y resistencia se refieren a la misma cosa pero desde puntos de vista opuestos, son recíprocos entre sí:

     R = 1 / G

     Donde G es la conductancia expresada en Mhos. (Mho es Ohm al revés, también se utiliza el Siemens, S). De ésta manera, en un circuito de resistencias conectadas en paralelo podemos conocer la resistencia total sumando las conductancias individuales, supongamos que tenemos dos resistencias de 10 Ohms (o sea 0.1 Mho de conductancia) conectadas en paralelo, si sumamos sus conductancias obtenemos 0.1 + 0.1 = 0.2 Mhos. Esto significa que hemos aumentado la conductancia total, luego si convertimos éste valor a su equivalente opuesto en Ohms tenemos el valor de 5 Ohms. La fórmula para calcular la resistencia total en un circuito paralelo es:

     Rt = (R1-1 + R2-1 + Rn-1)-1

     Dicho en otras palabras, es el recíproco de la suma de los valores recíprocos de cada resistencia. Como ya se dijo, la resistencia total en un circuito en serie se obtiene simplemente sumando los valores individuales. Nos interesa agregarle a nuestro programa la capacidad de calcular la resistencia total, sea en paralelo ó en serie, de un conjunto de resistencias dado, el código adicional es:


case 13:
{
    printf("\nCantidad de resistencias:\n\n");
    scanf("%d", &cantidad);
    clear();
    if(cantidad >= MAXRES+1)
    {
        printf("\n\nERROR 0002: La cantidad maxima es de %d\n\n", MAXRES);
        break;
    }
    for(i=0; i<cantidad; i++)
    {
        printf("Valor del resistor %d en Ohms\n", i+1);
        scanf("%f", &resistencias[i]);
        serie=resistencias[i]+serie;
        paralelo=(1/resistencias[i])+paralelo;
    }
    clear();
    printf("\n\nLa resistencia total en serie es de %.4f Ohms\n", serie);
    printf("La resistencia total en paralelo es de %.4f Ohms\n\n\n",
      1/paralelo);
    paralelo=0, serie=0;
    menu();
}
break;

     Es necesario declarar dos variables más de tipo float una llamada serie y la otra paralelo además, un array de 10 elementos del mismo tipo llamado resistencias[MAXRES], adicionalmente requerimos dos variables de tipo int para fines de control de la nueva opción, una se llama i y la otra es cantidad. Por último declaramos una directiva al preprocesador llamada MAXRES que nos sirve para limitar el número máximo de resistencias que podemos utilizar en un cálculo serie-paralelo dado. Si éstos cambios le confunden, no se preocupe, al final de ésta lección encontrará la opción para descargar el código fuente completo y el programa ejecutable, ámbos en un archivo comprimido de tipo *.zip

     En todo cálculo que efectuemos al diseñar un circuito electrónico, lo más probable es que los resultados obtenidos no sean del todo satisfactorios, particularmente en el caso de las resistencias donde éstas juegan un papel importante al establecer el punto de polarización para el correcto funcionamiento de los semiconductores. Supongamos que de acuerdo a los cálculos efectuados Usted encuentra que requiere de una resistencia de 42378.15 Ohms. Si Usted vá a la tienda de electrónica de la esquina y pregunta por una resistencia de tal valor, ni más ni menos, con toda seguridad le dirán que no hay tal valor. Se entiende la imposibilidad de fabricar resistencias de todos los valores posibles, en lugar de ésto se recurre a una serie de valores predeterminados definidos por la Asociación de Industrias de Electrónica (EIA por sus siglas en inglés), los rangos van desde E6 hasta E96, sin embargo el más utilizado es el E24, cuyos valores básicos son: 1.0, 1.1, 1.2, 1.3, 1.5, 1.6, 1.8, 2.0, 2.2, 2.4, 2.7, 3.0, 3.3, 3.6, 3.9, 4.3, 4.7, 5.1, 5.6, 6.2, 6.8, 7.5, 8.2, y 9.1. Los diferentes valores de resistencia se obtienen de submúltiplos y múltiplos de éstos valores.

     La última opción de cálculo de nuestro programa nos permite obtener un valor de resistencia especificado utilizando una combinación de dos resistencias del rango E24 en serie y paralelo con una precisión menor de 0.25%, el segmento de código correspondiente es el siguiente:


case 14:
printf("\nIntroduzca el valor deseado en Ohms\n");
scanf("%f", &rc);
clear();
ctr=0;
for(ma=0; ma<10; ma++)
{
    for(ra=0; ra<24; ra++)
    {
        for(mb=0; mb<10; mb++)
        {
            for(rb=0; rb<24; rb++)
            {
                r1=(valor[ra]*multiplo[ma]);
                r2=(valor[rb]*multiplo[mb]);
                rs=r1+r2; /* Resistencia en serie */
                if(r1<=r2&&rc<=rs+(rs*porcentaje/100)&&rc>=
                  rs-(rs*porcentaje/100))
                {
                    if((rc!=r1) && (rc!=r2))
                    {
                        e=((rs-rc)/rc)*100;
                        if(e<=porcentaje)
                        {
                            printf("%.3f + %.3f = %.4f %.4f %% error.\n",
                              r1, r2, rs, e);
                            ctr++;
                        }
                    }
                }
                rt=((r1 * r2)/(r1 + r2)); /* Resistencia en paralelo */
                if(r1<=r2&&rc<=rt+(rt*porcentaje/100)&&rc>=
                  rt-(rt*porcentaje/100))
                {
                    if((rc != r1) && (rc != r2))
                    {
                        e=((rt - rc)/rc)*100;
                        if(e<=porcentaje)
                        {
                            printf("%.3f || %.3f = %.4f %.4f %% error\n",
                              r1, r2, rt, e);
                            ctr++;
                        }
                    }
                } 
                if(ctr >= 24)
                {
                    printf("\nMAS VALORES -");
                    ctr=0;
                    getch();
                }
            }
        }
    }
}
printf("\nPresione cualquier tecla para regresar al menu\n");
getch();
clear();
menu();
break;

     Con ésta última opción nuestro programa en C queda lo suficientemente completo como para efectuar la mayoría de los cálculos que pudieramos necesitar al momento de trabajar con circuitos eléctricos de corriente continua. Estoy consciente que en los segmentos de código presentados pudiera haber alguna omisión menor, sin embargo Usted puede descargar el código fuente completo llamado ohmwatt.c junto con una copia del programa, ohmwatt.exe incluidos en el archivo ohmwatt.zip

Volver al principio

Hola mundo

Descargas 

     Descargue el archivo ohmwatt.zip. 25.3 kb.

Volver al principio

Hola mundo

© 1998, 1999 Virgilio Gómez Negrete, Derechos Reservados