Programación Estructurada en Python
Programación Estructurada en Python
MANUAL DE PRÁCTICAS
ASIGNATURA: PROGRAMACIÓN ESTRUCTURADA
CLAVE: ETD-1024
CARRERA: INGENIERIA ELECTRONICA
Junio de 2018
AGRADECIMIENTOS
A la memoria de mis padres J. Guadalupe y Aurora por su apoyo en todo momento, por los valores
que me inculcaron, y por haberme dado la oportunidad de tener la mejor educación
en el transcurso de mi vida. Sobre todo por ser un excelente ejemplo de vida a seguir.
A Delia, mi compañera, por ser una parte muy importante de mi vida, por haberme apoyado en las
buenas y en las malas, sobre todo por su paciencia (a veces perdida) y amor incondicional. Sin ella no
hubiera ido ninguna parte, con ella vamos a donde sea... T.Q.
A mis hijos Jesús Manuel, Jesús Francisco y María Alejandra, los mayores dones que he podido recibir
y que han sido el motor que me impulsa siempre.
Al Tecnológico de Chihuahua por la sólida formación que me dio a pesar de mis limitaciones y al
Tecnológico de Hermosillo por recibirme y darme la oportunidad de desarrollarme como docente y con
ello realizarme como ser humano.
A todos mis maestros desde la “seño” Chelito hasta mis compañeros del ITH…confieso que de todos,
algo me he robado.
INDICE DE PRÁCTICAS
PRACTICA 1
DISEÑO DE ALGORITMOS 1
PRACTICA 2
EL ENTORNO DE PROGRAMACIÓN 7
PRACTICA 3
PRACTICA 4
PRACTICA 5
PRACTICA 6
PRACTICA 7
PRACTICA 8
PRACTICA 9
PRACTICA 10
PRACTICA 11
PRACTICA 12
PRACTICA 13
PRACTICA 14
PRACTICA 15
En este manual se busca que el estudiante se motive a usar la computadora como la herramienta poderosísima
que puede ser, más allá del procesamiento de textos, la navegación por la Web o los juegos de
entretenimiento.
Todas las prácticas se eligieron con el objetivo de que el estudiante desarrolle sus habilidades de programador
mediante ejercicios enfocados a aplicaciones en el área de las ingenierías eléctrica y electrónica, sin olvidar que
un curso de programación en estas carreras habitualmente se encuentra en los primeros semestres. El
estudiante encontrará aquí ejercicios que tal vez en algunos casos involucren conocimientos todavía no
alcanzados al momento de llevar este curso, pero el marco teórico incluido debe ser suficiente para desarrollar
el programa requerido.
Los problemas planteados en cada práctica corresponden al nivel de avance del curso, de acuerdo al programa
oficial vigente, esto se resalta explícitamente en el encabezado de cada práctica al anotar los elementos del
lenguaje de programación que se utilizan.
La estructura de las prácticas en este este Manual consta de un encabezado y 9 secciones. El encabezado
contiene el nombre, el número de la práctica y la enumeración de los elementos del lenguaje utilizados. En la
primera sección se especifican las competencias a desarrollar, tanto específicas como genéricas. En la segunda
sección se hace una breve introducción o marco teórico del problema que se desea resolver con la práctica,
con el propósito de establecer un entorno que intenta ser lo más completo, claro y breve que sea posible. Sin
embargo, el estudiante que no esté familiarizado con el contenido expuesto deberá acudir a la bibliografía. En
la tercera sección se especifica la relación que tiene la práctica actual con el programa de la asignatura. En la
cuarta sección se enumeran las medidas de seguridad e higiene que son recomendables y/u obligatorias al
desarrollar las prácticas. En la quinta sección se detallan los materiales y el equipo necesarios para el correcto
desarrollo de la práctica. En la sexta sección se establece la metodología a desarrollar que incluye a) el
planteamiento del problema, de la manera más breve y concisa posible. b) El algoritmo propuesto, que como
todo algoritmo, es una propuesta que está abierta a ser modificada, corregida, ampliada, desechada o lo que el
estudiante considere pertinente hacer. y c) el programa en lenguaje Python previamente probado en el
Raspberry Pi y que implementa el algoritmo planteado. En la séptima sección se incluyen como sugerencias
didácticas la realización de al menos 2 problemas similares al planteado en la práctica. (Estos problemas
deberán ser resueltos por el estudiante si se quiere alcanzar el nivel pertinente de dominio del lenguaje). En la
octava sección se proponen los criterios para calificar la práctica. En la última sección (9ª) se enumera la
bibliografía mínima utilizada.
Porqué Python:
Python es un lenguaje de programación interpretado con sintaxis limpia (cercana al lenguaje natural)
y código muy legible (se apoya en el uso de la indentación) por lo que resulta sencillo y fácil de
aprender.
Al ser de código abierto, nos permite crear nuestras aplicaciones e involucrarnos en su desarrollo. Es
multiplataforma y multiparadigma permitiendo la programación imperativa, orientada a objetos y
funcional. Por si esto no fuera suficiente, tiene una gran comunidad dispuesta a ayudarnos con
nuestro código. La plataforma tecnológica requerida puede ser de muy bajo costo, haciéndola
accesible a casi cualquier estudiante.
“Python es uno de los lenguajes más poderosos que existen, sobre todo en aplicaciones del lado del
servidor, utilidades de inteligencia artificial, programación de juegos, cómputo científico y web, es de
lo más usado. A tal punto que empresas como Google lo tienen entre sus requisitos para poder
ingresar.”
“Python es un lenguaje orientado a objetos, así como JavaScript, C++, Ruby y otros lenguajes
populares. Si estás pensando convertirte en desarrollador de software, es necesario que aprendas
Python. Como se considera uno de los primeros lenguajes que debes aprender, te ayudará a
familiarizarte con otros lenguajes de programación que tengan una estructura parecida, sin
mencionar que te ayudará a comprender más sobre la programación. Python puede ser uno de “tus
primeros peldaños” como programador y te ofrece una base sólida que puedes aplicar al momento de
aprender otros lenguajes orientados a objetos en el futuro.”
Y, para finalizar no es de menor importancia subrayar que Python puede correr en una computadora
cualquiera, inclusive en una de muy bajo costo y por lo tanto al alcance de un mayor número de
estudiantes: Raspberry Pi es una serie de pequeñas computadoras de bajo costo desarrolladas en
Inglaterra por la Fundación Raspberry Pi con el objetivo de promover la enseñanza de la ciencia básica
de computación en escuelas y en países en desarrollo. Por una fracción del costo de las
computadoras más baratas, se puede tener una máquina con prácticamente todas las capacidades
requeridas para aprender programación, además de usarla, si se quiere, como procesador de textos,
navegar por internet o para juegos de entretenimiento.
OBJETIVO GENERAL
El principal objetivo de este manual es que al final del curso de programación los estudiantes sean
capaces de diseñar y escribir programas en el lenguaje Python que resuelvan problemas propios de su
área. Adquiriendo en el transcurso una serie de habilidades y competencias importantes en su
desarrollo como ingenieros. Las siguientes competencias deberán ser del dominio del estudiante al
finalizar el curso:
o Diseñar algoritmos para el planteamiento de soluciones a problemas relacionados con las
diferentes disciplinas del área.
o Desarrollar programas a partir del diseño de algoritmos, para su aplicación en la solución
problemas.
o Utilizar la metodología de la programación modular para desarrollar programas estructurados
y simplificar el mantenimiento del código.
o Desarrollar programas que incluyan manejo de puertos para permitir la interacción con
sistemas electrónicos externos a la computadora.
ESQUEMA DE PRÁCTICAS POR UNIDAD
Unidad, Temas y Subtemas Número, Nombre y Objetivo específico de cada
Práctica
UNIDAD 1. Fundamentos de PRÁCTICA # 1
programación. Diseño de Algoritmos
1.1. Importancia de la programación de Objetivo: Desarrollar algoritmos que planteen la
computadoras solución a diferentes tipos de problemas
1.2. Clasificación de los lenguajes de relacionados con la ingeniería electrónica.
programación
1.3. Diseño de algoritmos
UNIDAD 2. Elementos del Lenguaje de PRÁCTICA # 2
Programación El entorno de programación
2.1. Introducción al entorno de Objetivo:
programación Describir los componentes y la función que
2.2. Estructura básica de un programa desempeñan, de la plataforma tecnológica para el
2.3. Palabras reservadas desarrollo de los programas.
2.4. Variables y constantes
2.5. Tipos de datos PRÁCTICA # 3
2.6. Despliegue y formateo de datos Estructura básica de un programa
2.7. Operadores aritméticos, lógicos y Objetivo:
relacionales Conocer la estructura básica de un programa en
2.8. Control de flujo Python y demostrar la solución de varios ejercicios
2.9. Ciclos para programas secuenciales.
PRÁCTICA # 4
Estructura de decisión
Objetivo:
Conocer la estructura básica de un programa en
Python que incluya una o más tomas de decisiones
y demostrar la solución de varios ejercicios para
programas secuenciales.
PRÁCTICA # 5
Estructura de repetición “for”
Objetivo:
Conocer la estructura básica de un programa en
Python que incluya la repetición “for” y demostrar
la solución de varios ejercicios.
PRÁCTICA # 6
Estructura de repetición “while”
Objetivo:
Conocer la estructura básica de un programa en
Python que incluya la repetición “while” y
demostrar la solución de varios ejercicios.
PRÁCTICA # 7
Arreglos y Matrices
Objetivo:
Conocer el manejo de arreglos y matrices (listas)
mediante varios ejercicios.
PRÁCTICA # 9
Estructura función y librerías 2
Objetivo:
Conocer la estructura de un programa
estructurado en Python mediante funciones y
demostrar la solución de varios ejercicios
incluyendo el uso de librerías.
PRÁCTICA # 10
Estructura función y librerías 3
Objetivo:
Conocer la estructura de un programa
estructurado en Python mediante funciones y
demostrar la solución de varios ejercicios
incluyendo el uso de librerías.
PRÁCTICA # 11
Estructura función y librerías 4
Objetivo:
Conocer la estructura de un programa
estructurado en Python mediante funciones y
demostrar la solución de varios ejercicios
incluyendo el uso de librerías.
PRÁCTICA # 12
Estructura función y librerías 5
Objetivo:
Conocer la estructura de un programa
estructurado en Python mediante funciones y
demostrar la solución de varios ejercicios
incluyendo el uso de librerías y las propiedades de
graficación del lenguaje.
UNIDAD 4. Aplicación de puertos de PRÁCTICA # 13
comunicación. Entrada/Salida básica puertos binarios
4.1. Puertos de comunicación Objetivo:
4.2. Envío y recepción de datos Resolver problemas que involucren la entrada y
salida de datos ON-OFF.
PRÁCTICA # 14
Entrada/Salida de puertos binarios
Objetivo:
Resolver problemas que involucren la entrada y
salida de datos ON-OFF, 2ª Parte.
PRÁCTICA # 15
Sistema de control secuencial
Objetivo:
Resolver problemas que involucren control de
sistemas secuenciales.
1
PRÁCTICA #1
DISEÑO DE ALGORITMOS
COMPETENCIAS A DESARROLLAR
Específicas:
Diseña algoritmos para el planteamiento de soluciones a problemas relacionados con las
diferentes disciplinas del área.
Genéricas: Capacidad creativa, Capacidad cognitiva para comprender y utilizar ideas,
pensamientos e información, Capacidad para aprender, Capacidad crítica y autocrítica,
Capacidad de investigación, Capacidad para tomar decisiones.
INTRODUCCIÓN
Para llegar a la realización de un programa de computadora es necesario el diseño previo de un
algoritmo, sin él nos puede existir el programa. Los algoritmos son independientes de la
computadora donde se ejecutará el programa y del lenguaje de programación utilizado.
Estructura:
Cabecera
Descripción
Declaraciones
Cuerpo
Ejemplo: Un algoritmo para calcular el área de una circunferencia se puede escribir de la siguiente
manera:
2
CONSTANTES:
real : pi 3.141592
VARIABLES:
INICIO
FIN
Nota: Este algoritmo está escrito en seudocódigo, forma más recomendable de escribir
algoritmos.
METODOLOGÍA
1. Planteamiento del problema:
“Diseñar algoritmos para el planteamiento de soluciones a problemas relacionados con las
diferentes disciplinas del área.” (Tomado textualmente del programa vigente PROGRAMACIÓN
ESTRUCTURADA ETD-1024 de la carrera de INGENIERÍA ELECTRÓNICA).
Ejercicio 1.0
Algoritmo propuesto:
DESCRIPCIÓN: Se calculan las fuerzas gravitacional y electrostática que se ejercen entre dos partículas
con masa y cargadas eléctricamente, separadas cierta distancia.
CONSTANTES:
VARIABLES:
Fuerza eléctrica
Fuerza gravitacional
4
Continua…
INICIO
FIN
Calcular la magnitud de dos cargas puntuales separadas una distancia d, sobre las cuales se ejerce
una fuerza eléctrica F. Considerando que la relación entre las magnitudes de las cargas es P (q1 =
P*q2).
Ejercicio 1.2
Repetir el Ejercicio 1.1, considerando que las magnitudes calculadas siempre deben ser múltiplos
de la carga elemental, de lo contrario se trata de resultados incongruentes.
Ejercicio 1.3
Ejercicio 1.4
Calcular la ubicación entre dos cargas dadas positivas q2 y q3 ubicadas sobre el eje x y separadas
una distancia d, de una carga puntual negativa q1, de manera que la fuerza neta resultante en la
carga q1 sea cero.
Ejercicio 1.5
Calcular la corriente y potencia consumida por una resistencia R a la que se le aplica un voltaje V.
Considerando que se trata de un conjunto de tamaño indeterminado de valores de Resistencia-
Voltaje aplicado.
5
Ejercicio 1.6
Ejercicio 1.7
a) Serie
b) Paralelo
Ejercicio 1.8
Ejercicio 1.9
Calcular el valor promedio, la desviación del valor promedio, el promedio de las desviaciones y la
desviación estándar de un conjunto de mediciones eléctricas. (Ejemplo 2-4 de Guía para las
Mediciones eléctricas y Electrónicas pags. 54…)
BIBLIOGRAFÍA
PRÁCTICA #2
EL ENTORNO DE PROGRAMACIÓN
COMPETENCIAS A DESARROLLAR
Específicas:
Comprender las diferencias entre lenguajes compilados, interpretados, estructurados y
orientados a objetos.
Comprender los componentes y su función de una computadora adecuada a aplicaciones
de ingeniería electrónica.
INTRODUCCIÓN
2.1 HARDWARE
2.1.1 Raspberry Pi es una pequeña computadora de bajo costo, diseñada para facilitar el
aprendizaje de la programación y el uso de computadoras (figura 2.1) que corre el sistema
operativo Linux. Posee enchufes para Bus Universal en Serie (USB) en donde se puede conectar un
teclado y un ratón así como salida de video tipo Interface Multimedia de Alta Definición (HDMI)
para conectar un monitor o una televisión y muchos otros dispositivos. También tiene 40
terminales de Entrada/Salida de Propósito General (GPIO).
Figura 2.1
7
Cuando se enciende el Raspberry Pi, se muestra un escritorio como el de la figura 2.2 , similar
al escritorio de Windows.
Figura 2.2
2.1.2 Raspberry Pi sirve para casi todo lo que se puede hacer con una computadora de
escritorio…con algunas limitaciones. No se tiene un disco duro, en su lugar existe una
tarjeta micro SD (aunque se puede conectar un disco duro externo a uno de los puertos
USB), pero se pueden editar documentos, navegar por internet y jugar juegos. Raspberry
Pi es un candidato ideal para usarse como centro de medios.
2.1.3 Raspberry Pi está conformado por un Circuito Integrado (figura 2.3) “Sistema en un solo
chip” de Broadcom (www.broadcom.com) que incluye 1GB de memoria así como el
procesador de propósito general y el de gráficas que controlan los demás componentes.
Figura 2.3
8
2.1.4 Raspberry Pi necesita de unos cuantos componentes externos para funcionar (figura 2.4):
a) Una fuente de poder que proporcione 5V @ 1A con conector micro-USB.
b) Teclado y ratón que se conecten a puertos USB.
c) Monitor con entrada HDMI.
d) Una tarjeta microSD
e) Cable HDMI (y un adaptador HDMIVGA si el monitor (c) no tiene esa entrada).
Figura 2.4
2.2 SOFTWARE
2.2.1 Raspberry Pi interactúa con el usuario mediante un sistema operativo que puede ser el
estándar Raspbian u otro dependiendo de la experiencia o preferencias del mismo usuario.
Raspbian contiene Python, Scrtach, Sonic PI, Java, Mathematica y más. Para instalar Raspbian se
debe tener cargado NOOBS (New Out Of the Box Software, un sencillo instalador de sistema
operativo que contiene Raspbian).
archivos y directorios en el disco, y controlar los dispositivos periféricos tales como impresoras,
escáner, etc. Raspbian es un sistema operativo libre y gratuito basado en Debian y optimizado
para el hardware de la Raspberry Pi. Para quienes aún no les haya quedado claro qué es un
sistema de esta naturaleza, diremos que es el conjunto de programas básicos y utilitarios
(programas de soporte, pues), que permiten que la Raspberry haga algo útil. Sin embargo,
Raspbian es algo más que un sistema operativo, pues viene con unos 35 mil paquetes,
precompilados, de forma tal que sea fácil instalar el que necesitemos en la Raspberry Pi.
La primera vez que se inserta la tarjeta microSd con el programa NOOBS y se energiza la tarjeta,
procederá inmediatamente a cargar el sistema operativo Raspbian. (Esto se llevará un poco de
tiempo.) Una vez terminado el proceso de carga, se mostrará el escritorio (figura 2), quedando
listo el Raspberry Pi para empezar a trabajar.
>>>print(‘Hola’)
Hola
>>>
>>>2 + 2
>>>
10
Nótese que print se escribe en color rojo, ‘Hola’ en color verde y 2+2 en color negro.
Esto es porque print es una instrucción (palabra reservada), ‘Hola’ es un string y 2 y + son
valores.
print(‘*****’)
Abriendo una ventana para seleccionar el lugar donde almacenar el archivito de nuestro primer
programa, al cual deberemos ponerle nombre:
Primerito.py
METODOLOGÍA
1. Planteamiento del problema:
b.1 Con el Editor, escriba un programa y pruébelo para leer un valor y elevarlo al cuadrado, al
cubo, y obtener su raíz cuadrada. Escriba los resultados en una sola línea, separando los valores
con el tabulador.
b.2 Con el Editor, escriba un programa y pruébelo para leer 4 valores y escribir el promedio.
SUGERENCIAS DIDÁCTICAS
Probar operaciones en el “Shell” para sumar, restar, multiplicar, dividir, elevar a potencias
enteras o fraccionarias, evaluar expresiones con constantes y variables, etc.
Escribir y probar programas simples para leer datos y escribirlos en diferentes órdenes.
12
BIBLIOGRAFÍA
Raspberry Pi Foundation. Disponible en https://www.raspberrypi.org/
Lenguaje Python. Disponible en https://www.python.org
13
PRACTICA #3
ESTRUCTURA BÁSICA DE UN PROGRAMA EN PYTHON
Estructura básica de un programa en Python
Entrada / Salida de datos por consola
Operaciones : Suma aritmética
Tipos de datos: Enteros, cadenas de caracteres
COMPETENCIAS A DESARROLLAR
Específicas:
Implementa programas a partir del diseño de algoritmos de aplicaciones básicas en la
solución de problemas reales.
Utiliza adecuadamente las herramientas de diseño para el desarrollo de programas.
Desarrolla programas a partir del diseño de algoritmos, para su aplicación en la solución
de problemas.
Genéricas:
Capacidad creativa, Capacidad cognitiva para comprender y manipular ideas,
pensamientos e información, Capacidad para aprender, Capacidad crítica y autocrítica,
Capacidad de investigación, Capacidad para tomar decisiones.
INTRODUCCIÓN
En un circuito eléctrico puramente resistivo siempre es posible reemplazar su configuración
de resistencias por una resistencia equivalente, según como estas estén conectadas
hablamos de un sistema paralelo o un sistema serie, lo importante es que sea cual sea la
configuración podemos establecer un cálculo de resistencias en paralelo o en serie de
manera que nos quede una única resistencia equivalente al sistema.
Decimos que dos resistencias están en serie cuando la entrada de una está conectada a la
salida de la otra, como en la figura 3.1
Figura 3.1
En un circuito serie puramente resistivo la corriente que circula por cada resistencia es la
misma, eso produce que la resistencia total a la que se tiene que enfrentar la corriente para
14
Para calcular la resistencia en serie equivalente solo tenemos que realizar la suma de todos
los resistores que forman parte de la rama serie.
Req R1 R2 R3 .... Rn
Decimos que dos resistencias están en paralelo cuando los terminales de salida están unidos
entre si al igual que los terminales de entrada, como se aprecia en la figura 3.2.
Figura 3.2
V
I TOTAL I1 I 2 I 3 .... I n ,donde cada corriente será: I x
Rx
V V V V V
I TOTAL ... y ya que la corriente total será I TOTAL
R1 R2 R3 Rn Req
1
…basta un poquito de álgebra para obtener: Req
1 1 1 1
...
R1 R2 R3 Rn
Para calcular la resistencia paralelo equivalente solo tenemos que calcular el inverso de la
suma de todos los inversos de los resistores que forman parte de la rama paralelo.
15
METODOLOGÍA
1. Planteamiento del problema:
Diseñe un programa que calcule la resistencia equivalente de 2 resistencias en
serie y muestre el resultado.
2. Algoritmo
INICIO
1. Escribir(“Da valor de resistencia 1”)
2. Leer (R1)
3. Escribir (“Da valor de valor de resistencia 2”)
4. Leer (R2)
5. Suma R1 + R 2
6. Escribir (Suma)
FIN
17
3. Programa desarrollado
#Programa 1
#Calcula resistencias en serie
R1 = int(input('Introduce valor de resistencia 1 '))
R2 = int(input('Introduce valor de resistencia 2 '))
Serie = R1 + R2
print('Resistencia Total Serie = ', Serie)
#Fin del programa
SUGERENCIAS DIDÁCTICAS
Desarrollar programas que resuelvan problemas similares al resuelto por el programa #1.
Los siguientes son problemas sugeridos, pero cada estudiante podrá plantearse otros que
sean de su interés.
Diseñe, Codifique y Pruebe programas para:
Ejercicio 3.1 (Resistencias en paralelo) Calcular el equivalente de 2 resistencias en
paralelo.
Ejercicio 3.2 (Ley de Coulomb) Calcular la fuerza ejercida entre 2 cargas puntuales
separadas una distancia d. (Ver Ejercicio 1.0)
Ejercicio 3.3 (Ley de Ohm) Calcular la corriente que pasa por una resistencia al aplicarle
un potencial entre sus terminales. También calcular la potencia disipada en la resistencia.
18
BIBLIOGRAFÍA
Raspberry Pi Foundation. Disponible en https://www.raspberrypi.org
Lenguaje Python. Disponible en https://ww.python.org
Young, Hugh D. y Freedman, Roger A. Física Universitaria con Física Moderna, Vol. 2. XII
Edición. Pearson Educación.
19
PRACTICA #4
DECISIONES EN PYTHON
Estructura básica de un programa en Python
Entrada / Salida de datos por consola
Estructura de decisión if-else
Operaciones : Multiplicación aritmética, comparación
Tipos de datos: Enteros, cadenas de caracteres
COMPETENCIAS A DESARROLLAR
Específicas:
Implementar programas a partir del diseño de algoritmos de aplicaciones básicas en la
solución de problemas reales.
Utilizar adecuadamente las herramientas de diseño para el desarrollo de programas.
Desarrollar programas a partir del diseño de algoritmos, para su aplicación en la solución
de problemas.
Genéricas:
Capacidad creativa, Capacidad cognitiva para comprender y manipular ideas,
pensamientos e información, Capacidad para aprender, Capacidad crítica y autocrítica,
Capacidad de investigación, Capacidad para tomar decisiones.
INTRODUCCIÓN
Va Vb
I I
Elemento de
circuito
Fig. 4.1
20
Conforme la carga se desplaza a través del elemento de circuito, el campo eléctrico realiza
trabajo sobre la carga. Conforme una cantidad de carga q pasa a través del elemento de
circuito, hay un cambio en la energía potencial igual a qVab . La cantidad qVab representa
energía eléctrica transferida hacia el elemento de circuito. Puede ocurrir que el potencial
en b sea mayor que a . En este caso, Vab es negativo, y hay una transferencia neta de
energía hacia afuera del elemento de circuito. En los circuitos eléctricos es más frecuente
que interese la rapidez con la que la energía se proporciona a un elemento de circuito o se
extrae de él. Si la corriente a través del elemento es I , entonces en un intervalo de
tiempo dt pasa una cantidad de carga dQ Idt a través del elemento. El cambio en
energía potencial para esta cantidad de carga es VabdQ Vab Idt . Si esta expresión se
divide entre dt , se obtiene la rapidez a la que se transfiere la energía hacia fuera o hacia
dentro del circuito. La relación de transferencia de energía por unidad de tiempo es la
potencia, y se denota mediante P ; por lo tanto, escribimos
P Vab I
1 J / C 1 C / s 1 J / s 1W
Vab2
P Vab I IR I I 2 R
R
METODOLOGÍA
1. Planteamiento del problema:
Diseñe un programa que calcule la potencia eléctrica proporcionada por una
fuente de voltaje, dados el voltaje y la corriente proporcionados por la fuente,
siempre y cuando el valor calculado sea menor a un valor máximo dado. En caso
contrario escribir un mensaje indicando que se excedió el límite establecido.
2. Algoritmo
INICIO
1. Escribir (“Dar valor de Potencia_maxima”)
2. Leer( Pmax)
3. Escribir (“Dar valor de voltaje”)
4. Leer (V)
5. Escribir (“Dar valor de corriente”)
6. Leer (I)
7. PV*I
8. Si P < Pmax entonces
Escribir (P)
otro
Escribir (“Valor límite alcanzado”)
FIN
23
3. Programa
#Programa 2
#Calcula Potencia de Fuente
Pmax = int(input('Introduce valor límite de la potencia (Watts) '))
V = int(input('Introduce valor de voltaje (Voltios) '))
I = int(input('Introduce valor de corriente (Amperes) '))
P=V*I
if P < Pmax :
print('Potencia entregada por la fuente = ', P, 'watts')
else:
print('Se alcanzó o excedió el valor límite')
#Fin del programa
SUGERENCIAS DIDÁCTICAS
Desarrollar programas que resuelvan problemas similares al programa #2. Los siguientes
son problemas sugeridos, pero cada estudiante podrá plantearse otros que sean de su
interés.
Diseñe, Codifique y Pruebe programas para:
Ejercicio 4.1 Calcular el valor de 2 cargas dadas la fuerza de atracción o repulsión entre
24
ellas, la distancia que las separa y la relación entre las dos magnitudes de las cargas (por
ejemplo, carga 1 tres veces mayor que carga 2). Siempre y cuando los valores de las
cargas sean múltiplos de la carga elemental. *
Ejercicio 4.2 Calcular cual de 2 frecuencias dadas se aproxima más a la frecuencia
resonante de un circuito LC serie. **
Ejercicio 4.3 Dados los valores de los coeficientes de la ecuación característica de un
sistema, determinar el tipo de respuesta temporal que tendrá el sistema a una entrada
escalón. ***
Notas:
(*) Ningún valor de carga eléctrica puede ser menor al de la carga del electrón (carga
elemental, e 1.602176487 10 19 C ). Cuando se calcula el valor de una carga, siempre
debe ser múltiplo de e . (Ver Ejercicios 1.1 y 1.2)
(**) En un circuito LC serie, a cierta frecuencia las impedancias inductiva y capacitiva se
hacen iguales. Esto es que la impedancia total resulta ser nula, y se dice entonces que el
1
circuito entró en resonancia. Como X L jL (impedancia inductiva) y X C
jC
(impedancia capacitiva), entonces la frecuencia resonante se obtiene de igualar las
1
impedancias (valor absoluto) dando entonces R
2 LC
n2 K1
T ( s) 2
s 2 n s n s K 2 s K1
2 2
BIBLIOGRAFÍA
Raspberry Pi Foundation. Disponible en www.raspberrypi.org
Lenguaje Python. Disponible en www.python.org
Potencia consumida por una resistencia. Young, Hugh D. y Freedman, Roger A. Física
Universitaria con Física Moderna, Vol. 2. XII Edición. Pearson Educación.
26
PRACTICA #5
ESTRUCTURA DE REPETICIÓN
Estructura básica de un programa en Python
Entrada / Salida de datos por consola
Estructura if-else, Estructura for
Operaciones : multiplicación y división aritméticas, comparación
Tipos de datos: Enteros,Punto flotante, cadenas de caracteres
COMPETENCIAS A DESARROLLAR
Específicas:
Utiliza adecuadamente las herramientas de diseño para el desarrollo de programas.
Implementa programas a partir del diseño de algoritmos de aplicaciones básicas en la
solución de problemas reales.
INTRODUCCIÓN
La potencia máxima que puede soportar una resistencia es aquella potencia para la cual
el valor de la resistencia se mantiene inalterado a lo largo del tiempo. Cuanto más se
caliente una resistencia, más peligro corre que su valor se vea modificado a lo largo de su
vida útil.
La idea básica debe ser calcular la potencia de disipación de una determinada resistencia y
sobredimensionarla lo suficiente para que su valor permanezca invariable con el paso de
los años. Los fabricantes ya han tenido en cuenta esto e indican dicha potencia de
disipación para que esta nunca se sobrepase.
27
En las resistencias con dos terminales y bandas de colores, las potencias disponibles van
desde 1/8W (1 octavo de watt o también 0,125W) hasta varios watts. Las más usadas son
las de 1/4 W (0,25W).
METODOLOGÍA
1. Planteamiento del problema:
Diseñe un programa que calcule N valores de corriente y potencia disipada por un voltaje
aplicado a una resistencia. Al introducir los datos deberá evitarse la introducción de un
divisor cero, en cuyo caso se escribirá un mensaje de error y se pasará al siguiente par de
valores.
29
2. Algoritmo
CONSTANTES: ----------------------------------
VARIABLES:
INICIO
Escribir(“Valor inaceptable”)
Otro
V
1.51 I
R
1.52 P V I
1.53 Escribir(I, P)
Fin Para
FIN
30
3. Programa
#Programa 3
#Calcula 10 valores de corriente y potencia, evita división por cero.
for i in range(1, 11):
voltaje = float(input('Introduce valor del voltaje aplicado (Voltios)'))
resistencia = float(input('Introduce valor de la resistencia (Ohmios)'))
if resistencia == 0.0 :
print('No es valor aceptable de la resistencia ')
else:
corriente = voltaje / resistencia
potencia = voltaje * corriente
print('Corriente(', i, ') = ', corriente, 'Amperes')
print('Potencia(', i, ') = ', potencia, 'Watts')
#Fin del programa
31
SUGERENCIAS DIDÁCTICAS
Desarrollar programas que resuelvan problemas similares al programa #3. Los siguientes
son problemas sugeridos, pero cada estudiante podrá plantearse otros que sean de su
interés.
Diseñe, Codifique y Pruebe programas para:
Ejercicio 5.1 El problema planteado en el ejercicio 1.3
Ejercicio 5.2 El problema planteado en el ejercicio 1.6
Ejercicio 5.3 El problema planteado en el ejercicio 1.7
BIBLIOGRAFÍA
Raspberry Pi Foundation. Disponible en www.raspberrypi.org
Lenguaje Python. Disponible en www.python.org
Potencia en resistencias. Young, Hugh D. y Freedman, Roger A. Física Universitaria con
Física Moderna, Vol. 2. XII Edición. Pearson Educación.
32
PRACTICA #6
ESTRUCTURA “WHILE”
Estructura básica de un programa en Python
Entrada / Salida de datos por consola
Estructura if-else, Estructura while
Operaciones : incremento, suma y división aritméticas, comparación
Tipos de datos: Enteros,Punto flotante, cadenas de caracteres
COMPETENCIAS A DESARROLLAR
Específicas:
Utilizar adecuadamente las herramientas de diseño para el desarrollo de programas.
Implementa programas a partir del diseño de algoritmos de aplicaciones básicas en la
solución de problemas reales.
Genéricas: Capacidad creativa, Capacidad cognitiva para comprender y manipular ideas,
pensamientos e información, Capacidad para aprender, Capacidad crítica y autocrítica,
Capacidad de investigación, Capacidad para tomar decisiones.
INTRODUCCIÓN
Las medidas de resistencia de un lote de resistencias son:
100 .1 101 .0 100 .6 99 .5 99 .0
100 .0 99 .5 100 .4 99 .8 100 .1
Asumiendo que solamente hay errores aleatorios, ¿a) Cuál es la media aritmética, b) la
desviación estándar y c) la probabilidad de error?
Respuesta:
_
1 n 1000 .0
La media aritmética es: x
n i 1
xi
10
100 .0
2
n _
La desviación estándar es: xi x 3.08
i 1
La probabilidad de error es: 0.58
n 1
33
METODOLOGÍA
1. Planteamiento del problema:
Calcular las características de un conjunto de mediciones de un lote de resistencias
(tamaño indeterminado, la recolección de datos termina cuando se lee un valor de
resistencia cero). Se deberá reportar el tamaño del lote, el promedio de los
valores, el valor máximo y el valor mínimo encontrados.
2. Algoritmo
real : R, Min, Max, Total , Pr om Valor de resistencia, Valores mínimo, máximo , Total
(acumulador)y promedio
3. Programa
#Programa 4
#Calcula minimo, máximo y promedio de N valores de #resistencias.
Contador = 0
Minimo = 1e10
Maximo = 0
Total = 0
Resistencia = int(input('Ingrese valor de resistencia '))
while Resistencia != 0 :
Contador = Contador +1
Total = Total + Resistencia
if Maximo < Resistencia:
Maximo = Resistencia
if Minimo > Resistencia:
Minimo = Resistencia
Resistencia = int(input('Ingrese valor de resistencia '))
#Fin while
Media = Total / Contador
print('Numero total de piezas = ',Contador)
print('Promedio de las mediciones = ', Media)
print('Valor máximo de resistencia = ',Maximo)
print('Valor mínimo de resistencia = ',Minimo)
#Fin del programa
36
SUGERENCIAS DIDÁCTICAS
Desarrollar programas que resuelvan problemas similares al programa #4. Los siguientes
son problemas sugeridos, pero cada estudiante podrá plantearse otros que sean de su
interés.
Diseñe, Codifique y Pruebe programas para:
Ejercicio 6.1 Resolver completo el ejemplo descrito en la Introducción de esta práctica.
Ejercicio 6.2 El problema planteado en el Ejercicio 1.8
Ejercicio 6.3 Calcule las corrientes en un circuito resistivo como el de la figura 6.1,
introduciendo los valores de los parámetros uno por uno. Se sugiere utilizar el método de
Matrices para resolver el sistema de ecuaciones lineales.
BIBLIOGRAFÍA
Raspberry Pi Foundation. Disponible en www.raspberrypi.org
Lenguaje Python. Disponible en www.python.org
Wolf, Stanley y Smith, Richard M. Guía para las Mediciones Electrónicas y Prácticas de
Laboratorio. Prentice Hall Hispanoamericana. (problema)
Chapra, Steven C. y Canale, Raymond P. Métodos Numéricos para Ingenieros. 5ª Edición.
McGrawHill. (Ejercicio 6.3)
37
PRACTICA #7
ARREGLOS Y MATRICES
Estructura básica de un programa en Python
Entrada / Salida de datos por consola
Estructura if-else, Estructura while, Arreglos y Matrices
Operaciones : incremento, suma y división aritméticas, comparación
Tipos de datos: Enteros,Punto flotante, cadenas de caracteres
COMPETENCIAS A DESARROLLAR
Específicas:
Utilizar adecuadamente las herramientas de diseño para el desarrollo de programas.
Implementa programas a partir del diseño de algoritmos de aplicaciones básicas en la
solución de problemas reales.
Genéricas: Capacidad creativa, Capacidad cognitiva para comprender y manipular ideas,
pensamientos e información, Capacidad para aprender, Capacidad crítica y autocrítica,
Capacidad de investigación, Capacidad para tomar decisiones.
INTRODUCCIÓN
Los fundamentos del análisis de circuitos eléctricos se deben a Gustav Kirchoff, un
profesor universitario alemán de hace aproximadamente 2 siglos. Gracias a sus
experimentos desarrolló las leyes que llevan su nombre. En lo que sigue se llamará rama
a una parte de un circuito con dos terminales, nodo al punto donde dos o más ramas se
conectan y lazo a una trayectoria cerrada formada por varias ramas.
Ley de corrientes de Kirchoff: Si se miden las corrientes que fluyen hacia o desde un nodo,
la suma de las corrientes que entran será siempre igual a la suma de las corrientes que
salen. Si se asigna por convención signos opuestos a las corrientes que entran y salen, la
suma algebraica será entonces siempre cero.
i 0 i 1 i2 i3 ... in
v 0 v 1 v 2 v3 ... vm
38
En un circuito donde existan múltiples lazos, se podrá establecer una ecuación por cada
lazo aplicando la ley de voltajes de Kirchoff y otras ecuaciones aplicando a cada nodo la
ley de corrientes. Una vez obtenidas tantas ecuaciones independientes, como incógnitas
existan, se podrán resolver utilizando alguno de los diversos métodos disponibles.
El método de Determinantes es conveniente ya que es sistemático y general; puede ser
usado para resolver grandes y complicados circuitos.
Ejemplo:
En el circuito de la figura 7.1 las ecuaciones de malla son:
01 01 01 00 00 00 i12 000
00 01 00
01 01 00 i52 000
00 00 01 00 00 01 i32 000
00 00 00 00 01 01 i65 000
00 10 10 00 15 05 i54 000
05 10 00 20 00 00 i43 200
Para resolver y encontrar los valores de las corrientes, basta aplicar algebra elemental de
matrices, considerando A Matriz de coeficientes , I Matriz de corrientes y
X Matriz de voltajes :
X
A I X , por lo tanto: I X A1
A
El conjunto de ecuaciones también se puede resolver por otros métodos, como el de
eliminación, aunque resulta poco práctico. En cambio, el apoyo computacional nos
proporciona una solución rápida y eficaz.
39
METODOLOGÍA
1. Planteamiento del problema:
Diseñe un programa que calcule las corrientes en un circuito resistivo como el de la figura
7.1, introduciendo los valores de los parámetros uno por uno. Se sugiere utilizar el
método de Matrices para resolver el sistema de ecuaciones lineales.
2. Algoritmo
INICIO
1. Leer número de ecuaciones
2. Leer matriz de coeficientes
3. Repetir
3.1 Leer matriz de voltajes
3.2 Calcular inversa de matriz A
3.3 Calcular matriz de corrientes
3.4 Escribir resultados
3.5 Leer continuar?
Hasta que continuar = ‘no’
FIN
41
3. Programa
def dato(ecuacion):
pos=ecuacion.index(',')
valor=ecuacion[:pos+1]
ec2=ecuacion.replace(valor,'',1)
valor2=ecuacion[:pos]
return ec2,valor2
42
for i in range(num_ec):
e.append(None)
for i in range(num_ec):
A.append([])
e[i]=input('Ecuación ')
ecnueva=e[i]
for j in range(num_ec):
ecnueva,valor = dato(ecnueva)
A[i].append(float(valor))
Continúa…
print(A)
rep='s'
while rep=='s':
disc='n'
while disc=='n':
ecV=input('Voltajes = ')
print('Es correcto (Si = s)? -----> ',ecV)
disc=input()
43
Continúa…
for k in range(num_ec):
ecnueva,numero=dato(ecV)
V[k]=float(numero)
ecV=ecnueva
A2=inv(A)
print('*'*40)
I=A2.dot(V)
SUGERENCIAS DIDÁCTICAS
Desarrollar programas que resuelvan problemas similares al programa #5. Los siguientes
son problemas sugeridos, pero cada estudiante podrá plantearse otros que sean de su
interés.
Diseñe, Codifique y Pruebe programas para:
Ejercicio 7.1 Crear un catálogo de resistencias que contenga el valor en ohmios, la
potencia en watts y la tolerancia en %.
44
Ejercicio 7.2 La Pila es una zona de los registros de segmento de memoria que la unidad
aritmética y lógica utiliza para almacenar temporalmente los datos que está manipulando.
Cuando la cantidad de datos a manejar es demasiado grande u otras necesidades del
proceso impiden que estos datos puedan almacenarse en los registros creados para ello se
envían a la pila, donde se almacenan hasta que la unidad de control recupera la
información para que la procese la unidad aritmética y lógica.
La ventaja de manejar una pila como almacén de información es que la información que
se guarda en ella tiene que entrar y salir, obligatoriamente, por una sola dirección de
memoria. Esto permite que la unidad de control no necesite conocer más que esa
dirección para poder manejar los datos almacenados en la pila. Escriba un programa que
simule la operación de una pila de datos.
BIBLIOGRAFÍA
Raspberry Pi Foundation. Disponible en www.raspberrypi.org
Lenguaje Python. Disponible en www.python.org
Análisis de circuitos.
1. Smith, Ralph J., Circuits, Devices And Systems, A First Course in ]Electrical
Engineering, John Wiley & Sons, 1973.
2. Floyd, Thomas L., Electric Circuits Fundamentals, Pearson Education, 2004.
45
Figura 7.1
46
PRACTICA #8
IMPEDANCIAS RLC
Programa estructurado en Python
Entrada / Salida de datos por consola
Estructura Función, if, while
Librerías
Operaciones : suma, resta, multiplicación y división aritméticas, elevación a potencia,
comparación
Tipos de datos: Enteros,Punto flotante, cadenas de caracteres
COMPETENCIAS A DESARROLLAR
Específicas:
Utilizar adecuadamente las herramientas de diseño para el desarrollo de programas.
Utilizar la metodología de la programación modular para desarrollar programas
estructurados y simplificar el mantenimiento del código.
Desarrollar programas a partir del diseño de algoritmos, para su aplicación en la solución
de problemas.
Genéricas: Capacidad creativa, Capacidad cognitiva para comprender y manipular ideas,
pensamientos e información, Capacidad para aprender, Capacidad crítica y autocrítica,
Capacidad de investigación, Capacidad para tomar decisiones.
INTRODUCCIÓN
En un circuito RLC serie al que se aplica un voltaje senoidal v(t ) Vmax sent , la corriente
será también senoidal pero con un ángulo de desfasamiento i(t ) I max sent
1 j Vmax
Impedancia del capacitor = Z C I max
jC C Z
Z L ZC
Impedancia de la inductancia = Z L jL tg 1
ZR
47
METODOLOGÍA
1. Planteamiento del problema:
Diseñe un programa estructurado con las funciones pertinentes para que dado un circuito
RLC serie, calcule:
a) Las impedancias de cada componente, b) La impedancia total del circuito.
CONSTANTES: ---------------------------
VARIABLES:
real : ZR , ZL , ZC , ZT Impedancias
Funciones
Función Lectura_de_datos:
Fin función
resultado valor
2.2 Si dispositivo " L" entonces
1
resultado
valor * 2 * * Frec
Fin función
50
V
4.1 resultado
ZT
Fin función
ZL ZC
5.1 resultado tg 1
ZR
Fin función
51
INICIO
1. Continua "si"
2. Hasta que Continua " si" repetir :
2.1 Lectura_de_datos
2.2 ZR fimpedancia (resistencia, " R" )
2.3 ZL fimpedancia (bobina, " L" )
2.4 ZC fimpedancia (capacitor, " C" )
2.5 ZT fimpedancia _ total _ serie( ZR , ZL , ZC )
2.6 Fase ffase( ZR , ZL , ZC )
2.7 I _ max fcorrriente(V , ZT )
2.8 Escribir(ZR, ZL, ZC, ZT, Fase)
2.9 Escribir(“Continuar ? ”)
2.10 Leer (Continua)
Fin Hasta
FIN
52
3. Programa
#Programa 6
#Programa para resolver un circuito RLC serie
#Usando funciones
import math
def lectura_datos():
Res=int(input('Resistencia (Ohms) = '))
Ind=int(input('Inductancia (miliHenrios) = '))
Cap=float(input('Capacitancia (microFaradios) = '))
Volt=int(input('Voltaje de alimentacion (Voltios) = '))
Frec=int(input('Frecuencia (Hertz) = '))
return Res,Ind,Cap,Volt,Frec
def impedancia(valor,disp):
if disp=='R':
resultado=valor
if disp=='L':
resultado=valor*w*1e-3
if disp=='C':
resultado=1/(w*valor*1e-6)
return resultado
53
Continua…
preg='si'
while preg=='si':
Res,Ind,Cap,Volt,Frec=lectura_datos()
w=2*math.pi*Frec
Zr=impedancia(Res,'R')
ZL=impedancia(Ind,'L')
ZC=impedancia(Cap,'C')
ZT=impedancia_serie(Zr,ZL,ZC)
Imax,Fase=corriente_fase(Volt,Zr,ZL,ZC)
print('Impedancia total = ',ZT,'Ohms')
print('Corriente maxima = ',Imax,'miliAmperes')
print('Angulo de fase = ',Fase,'grados')
preg=input('Continuar? (si/no) ')
print('Fin de programa')
#Fin del programa
54
SUGERENCIAS DIDÁCTICAS
Desarrollar programas que resuelvan problemas similares al programa #5. Los siguientes
son problemas sugeridos, pero cada estudiante podrá plantearse otros que sean de su
interés.
Diseñe, Codifique y Pruebe programas para:
Ejercicio 8.1 Dados un conjunto de resistencias calcular:
a) El equivalente serie b) El equivalente paralelo
c) La corriente y voltajes en cada resistencia serie para un voltaje dado.
d) El voltaje y las corrientes en cada resistencia paralelo para un voltaje dado.
e) Otra(s) opciones
BIBLIOGRAFÍA
Raspberry Pi Foundation. Disponible en www.raspberrypi.org
Lenguaje Python. Disponible en www.python.org
Fasores y Corrientes alternas. Young, Hugh D. y Freedman, Roger A. Física Universitaria
con Física Moderna, Vol. 2. XII Edición. Pearson Educación.
Instrumentos de medición eléctrica. Wolf, Stanley y Smith, Richard M. Guía para las
Mediciones Electrónicas y Prácticas de Laboratorio. Prentice Hall Hispanoamericana.
55
PRACTICA #9
PORCENTAJE DE ENERGÍA DISIPADA RLC
Programa estructurado en Python
Entrada / Salida de datos por consola
Estructura Función, if, while
Librerías
Operaciones : suma, resta, multiplicación y división aritméticas, elevación a potencia,
comparación
Tipos de datos: Enteros,Punto flotante, cadenas de caracteres
COMPETENCIAS A DESARROLLAR
Específicas:
Utilizar adecuadamente las herramientas de diseño para el desarrollo de programas.
Utilizar la metodología de la programación modular para desarrollar programas
estructurados y simplificar el mantenimiento del código.
Desarrollar programas a partir del diseño de algoritmos, para su aplicación en la solución
de problemas.
Genéricas: Capacidad creativa, Capacidad cognitiva para comprender y manipular ideas,
pensamientos e información, Capacidad para aprender, Capacidad crítica y autocrítica,
Capacidad de investigación, Capacidad para tomar decisiones.
INTRODUCCIÓN
En un circuito RLC serie como el de la figura, el capacitor se carga inicialmente al voltaje de
la batería V0 y al mover el interruptor se establece un circuito serie RLC con una respuesta
transitoria que desaparece después de cierto tiempo mientras la energía oscila entre la
capacitancia y la inductancia, siendo la función de la resistencia encargarse de la disipación
de la energía. La segunda ley de Kirchoff permite establecer la ecuación que describe el
comportamiento anterior:
di 1 dq
L Ri idt 0 Como i , la ecuación anterior se convierte en:
dt C dt
d 2q di 1
L 2
R q0
dt dt C
56
1 R 2
q(t ) q0 e Rt /(2 L )
cos t por lo tanto:
LC 2L
1 R 2 q(t )
e Rt /(2 L )
cos t 0
LC 2 L q0
2
1 R
Es importante notar que se debe cumplir la relación , de lo contrario no
LC 2 L
existirá una solución real. Por lo tanto se tendrá un punto de partida para calcular el valor
de la resistencia, es decir Rmax R 0 , donde el valor máximo se obtiene despejando.
METODOLOGÍA
1. Planteamiento del problema:
Diseñe un programa estructurado con las funciones pertinentes para que dado un circuito
RLC serie, calcular el valor apropiado de la resistencia dados los valores de capacitancia e
inductancia, así como el valor del voltaje de alimentación, suponiendo que se desea que la
energía disipada alcance un cierto porcentaje del valor inicial en un tiempo determinado:
Figura 9.1
58
2. Algoritmo
DESCRIPCIÓN: Se calcula el valor de la resistencia R en un circuito RLC de manera que la energía disipada
llegue a cierto porcentaje de su valor inicial en un determinado tiempo.
CONSTANTES:
--------------------------
VARIABLES:
real : ZR , ZL , ZC , ZT Impedancias
FUNCIONES:
Función Evalua_ecuación:
1 R 2 q(t )
Valor e Rt /(2 L )
cos t
LC 2 L q0
Fin función
Función Introduce_datos:
Fin función
59
INICIO
FIN
60
3. Programa
#Programa 7
#Programa para calcular Valor mediante bisección
#Circuito RLC respuesta temporal
#Dados L, C y porcentaje de reducción, calcular R
import math
def evalua(Res,L,C,t,porc):
resultado=math.exp(-(Res*t)/(2*L))*math.cos((1/(L*C)-(Res/(2*L))**2)**0.5*t)porc
return resultado
#Lectura de datos
Ind=float(input('Valor de la inductancia L (Henrios)= '))
Cap=float(input('Valor de la capacitancia C (Faradios)= '))
time=float(input('Tiempo para evaluar = '))
Pcien=float(input('Porcentaje de reduccion requerido = '))
#Calculo de Valores limite
Rmax=(4*Ind/Cap)**0.5/2
Rmin=0
#Iteraciones
for i in range(50):
val1=evalua(Rmin,Ind,Cap,time,Pcien)
val2=evalua(Rmax,Ind,Cap,time,Pcien)
sign1=evalua(Rmin,Ind,Cap,time,Pcien)>0.0
sign2=evalua(Rmax,Ind,Cap,time,Pcien)>0.0
61
Continúa…
SUGERENCIAS DIDÁCTICAS
Desarrollar programas que resuelvan problemas similares al programa #6. Los siguientes
son problemas sugeridos, pero cada estudiante podrá plantearse otros que sean de su
interés.
Diseñe, Codifique y Pruebe programas para:
Ejercicio 9.1 Un filtro es un circuito que deja pasar señales de ciertas frecuencias
mientras aquellas que sean de otras frecuencias. Un filtro pasa bajas deja pasar señales
de bajas frecuencias desde la entrada hasta la salida mientras rechaza las frecuencias
altas. Calcule las frecuencias de corte y los valores de el voltaje de salida para N valores
de frecuencia, de un conjunto de circuitos RC pasa-bajos.
Figura 9.2
62
1
fC
2RC
XC
Vsal Vent
R 2 X C2
Figura 9.3
Ejercicio 9.2 Un filtro pasa banda deja pasar cierta banda de frecuencias y atenúa o
rechaza todas las frecuencias por debajo y por encima de la banda de paso. El ancho de
banda de un filtro pasa banda es el intervalo de frecuencias dentro del cual la corriente, y
por tanto el voltaje de salida, es igual o mayor que el 70.7% de su valor en la frecuencia de
resonancia.
Figura 9.4
63
R
VSal Vent
R RW
1
fO
2 LC
XL
X L 2 f L Q
RTOT
fO
RTOT R RW AB
Q
Figura 9.5
Calcule las frecuencias de corte y los valores de el voltaje de salida para N valores de
frecuencia, de un conjunto de circuitos RC pasa-bajos.
BIBLIOGRAFÍA
Raspberry Pi Foundation. Disponible en www.raspberrypi.org
Lenguaje Python. Disponible en www.python.org
Diseño de un circuito eléctrico. Chapra, Steven C., Canale, Raymond P. Métodos
Numéricos para Ingenieros. 5ª Ed. McGrawHill
64
PRACTICA #10
MAXIMA TRANSFERENCIA DE POTENCIA
Programa estructurado en Python
Entrada / Salida de datos por consola
Estructura Función, if, while
Librerías
Operaciones : suma, resta, multiplicación y división aritméticas, elevación a potencia,
comparación
Tipos de datos: Enteros,Punto flotante, cadenas de caracteres
COMPETENCIAS A DESARROLLAR
Específicas:
Utilizar adecuadamente las herramientas de diseño para el desarrollo de programas.
Utilizar la metodología de la programación modular para desarrollar programas
estructurados y simplificar el mantenimiento del código.
Desarrollar programas a partir del diseño de algoritmos, para su aplicación en la solución
de problemas.
Genéricas: Capacidad creativa, Capacidad cognitiva para comprender y manipular ideas,
pensamientos e información, Capacidad para aprender, Capacidad crítica y autocrítica,
Capacidad de investigación, Capacidad para tomar decisiones.
INTRODUCCIÓN
En un circuito como el de la figura 10.1, la potencia disipada por la resistencia Ra el
capacitor se carga inicialmente al voltaje de la batería está dada por la ecuación 9.1 Si esta
ecuación se grafica para valores de Ra mayores que cero, se obtiene una gráfica como la
mostrada en la figura 9.2, donde se observa que la potencia aumenta al aumentar el valor
de Ra, hasta llegar a un máximo para entonces empezar a disminuir. Se puede entonces
establecer un proceso repetitivo que calcule la potencia para valores de Ra que se
incrementen hasta que se obtenga un nuevo valor de potencia menor al inmediato anterior.
65
Figura 10.1
2
VRa R3
R1 ( Ra R2 R3 ) Ra R3 R2 R3
Ecuación 10.1: PRa
Ra
Figura 10.2
METODOLOGÍA
1. Planteamiento del problema:
Diseñe un programa estructurado con las funciones pertinentes para que dado un circuito
(figura 10.1) resistivo calcule el valor apropiado de la resistencia Ra que permita una
“máxima transferencia de potencia” desde la fuente de alimentación.
2. Algoritmo
--------------------------
VARIABLES:
FUNCIONES:
Función Potencia:
2
VRa R3
R ( R R2 R3 ) Ra R3 R2 R3
Valor 1 a
Ra
Fin función
68
Función Introduce_datos:
Fin función
INICIO
3. Programa
#Programa 8
#Maxima Transferencia de Potencia
#Problema 16.3 (Chapra)
def potencia(V,R1,R2,R3,Ra):
resultado=(Ra*R3*V/(R1*R2+R1*R3+R1*Ra+R2*R3+Ra*R3))**2/(Ra)
return resultado
SUGERENCIAS DIDÁCTICAS
Desarrollar programas que resuelvan problemas similares al programa #8. Los siguientes
son problemas sugeridos, pero cada estudiante podrá plantearse otros que sean de su
interés.
Diseñe, Codifique y Pruebe programas para:
Ejercicio 10.1 Convertir circuitos Delta a Estrella y Estrella a Delta (FLOYD, Cap. 8.8)
Ejercicio 10.2 Calcular las raíces de un polinomio por el método de “punto fijo” (CHAPRA
Cap. 6.1.2)
BIBLIOGRAFÍA
Raspberry Pi Foundation. Disponible en www.raspberrypi.org
Lenguaje Python. Disponible en www.python.org
Máxima transferencia de potencia en un circuito. Chapra, Steven C. y Canale, Raymond P.
Métodos Numéricos para Ingenieros. 5ª Edición. McGrawHill
71
PRACTICA #11
POLARIZACIÓN DE JFET
Programa estructurado en Python
Entrada / Salida de datos por consola
Estructura función, while
Librerías
Operaciones : suma, resta, multiplicación y división aritméticas, elevación a potencia,
comparación
Tipos de datos: Enteros,Punto flotante, cadenas de caracteres
COMPETENCIAS A DESARROLLAR
Específicas:
Utilizar adecuadamente las herramientas de diseño para el desarrollo de programas.
Utilizar la metodología de la programación modular para desarrollar programas
estructurados y simplificar el mantenimiento del código.
Desarrollar programas a partir del diseño de algoritmos, para su aplicación en la solución
de problemas.
Genéricas: Capacidad creativa, Capacidad cognitiva para comprender y manipular ideas,
pensamientos e información, Capacidad para aprender, Capacidad crítica y autocrítica,
Capacidad de investigación, Capacidad para tomar decisiones.
INTRODUCCIÓN
Los amplificadores JFET tienen que tener un punto de operación Q en la región activa. A
causa del amplio rango de valores de los parámetros del JFET, se requiere de un circuito de
polarización que reduzca la dependencia del punto Q a variaciones de esos parámetros.
VS VG VGS
72
Dado que VGS es negativa, el voltaje de fuente será ligeramente mayor que el voltaje de
compuerta. Si se divide este voltaje de fuente entre la resistencia de fuente, se obtiene la
corriente de drenaje:
R2
VDD VGS
VG VGS R1 R2
ID
RS RS
2
V
I D I DSS 1 GS
VP
Resolver las incógnitas analíticamente es un proceso no tan simple, por lo que una buena
opción es un método iterativo con ayuda computacional.
Figura 11.1
73
Esta práctica se relaciona directamente con los temas de la unidad 3. El propósito es que
el estudiante reconozca las ventajas de la programación estructurada y se acostumbre al
pensamiento “arriba-abajo” (top down design), aplicando estas técnicas en la solución de
problemas cada vez más grandes.
METODOLOGÍA
1. Planteamiento del problema:
Diseñe un programa estructurado con las funciones pertinentes para calcular el punto de
operación (Q) de un transistor JFET polarizado por divisor de voltaje.
2. Algoritmo
CONSTANTES:
--------------------------
VARIABLES:
FUNCIONES:
Fin función
75
Algoritmo principal:
1. Lectura de Datos
2. Inicializa corrientes IDA e IDB
3. Inicializa voltaje de polarización compuerta-fuente (VGS)
4. Calcula voltaje de polarización de divisor de voltaje
5. Mientras IDA > IDB:
5.1 Calcula nueva IDB (según ecuación de Kirchoff)
5.2 Calcula nueva IDB (según ecuación de Shockley)
5.3 Calcula nueva VGS
6. Escribir valores de punto de operación VGSQ y IDQ
7. Leer continuar
76
3. Programa
import time
def lectura_datos():
R1=int(input("Resistencia R1 (ohmios)="))
R2=int(input("Resistencia R2 (ohmios)="))
dis=int(input("teclea 0"))
while dis == 0:
IDta=IDSS
IDtb=0
VGS=0
VG=VDD*(R2/(R1+R2))
print("VG =",VG)
print("IDta=", IDta)
print("IDtb=", IDtb)
while IDta>IDtb:
IDtb=((VG+VGS)/RS)*1000
IDta=IDSS*((1-VGS/VP)**2)
VGS=VGS+VP/Dt
print("IDta=", IDta)
print("IDtb=", IDtb)
SUGERENCIAS DIDÁCTICAS
Desarrolla r programas que resuelvan problemas similares al programa #7. Los siguientes
son problemas sugeridos, pero cada estudiante podrá plantearse otros que sean de su
interés.
Diseñe, Codifique y Pruebe programas para:
Ejercicio 11.1 Calcular el punto de operación de un JFET (Transistor de Efecto de Campo de
Unión) para varios circuitos de polarización.
Ejercicio 11.2 Calcular el punto de operación de un BJT (Transistor Bipolar de Unión) para
varios circuitos de polarización.
BIBLIOGRAFÍA
Raspberry Pi Foundation. Disponible en www.raspberrypi.org
Lenguaje Python. Disponible en www.python.org
Transistor JFET. Malvino, A. & Bates, David J, Principios de Electrónica. 7ª Edición, 2007,
McGrawHill
78
PRACTICA #12
RESPUESTA TRANSITORIA
Programa estructurado en Python
Entrada / Salida de datos por consola
Estructura Función, if, while
Librerías
Operaciones : suma, resta, multiplicación y división aritméticas, elevación a potencia,
comparación
Tipos de datos: Enteros,Punto flotante, cadenas de caracteres
COMPETENCIAS A DESARROLLAR
Específicas:
Utilizar adecuadamente las herramientas de diseño para el desarrollo de programas.
Utilizar la metodología de la programación modular para desarrollar programas
estructurados y simplificar el mantenimiento del código.
Desarrollar programas a partir del diseño de algoritmos, para su aplicación en la solución
de problemas.
Genéricas: Capacidad creativa, Capacidad cognitiva para comprender y manipular ideas,
pensamientos e información, Capacidad para aprender, Capacidad crítica y autocrítica,
Capacidad de investigación, Capacidad para tomar decisiones.
INTRODUCCIÓN
En el análisis y diseño de los sistemas de control, se debe tener una base de comparación
del comportamiento de los sistemas para entradas particulares. Una señal de entrada de
prueba típica es la función escalón unitario y la respuesta se puede escribir como
son, para la parte transitoria son las oscilaciones amortiguadas que frecuentemente se
presentan y para la parte estacionaria la diferencia entre la salida estacionaria y la entrada
aplicada, o error estacionario.
Para un sistema de primer orden, la función de transferencia tiene la forma general de la
figura 12.1
C (s) 1
R( s ) Ts 1
Figura 12.1
1
Si consideramos que la entrada sea un escalón unitario R(s) , entonces la respuesta
s
estará dada por
1 1 1 1
C ( s)
Ts 1 s s s (1 / T )
Las características principales de esta respuesta son a) La constante de tiempo (t para que
t
e e 1 ) t T y el tiempo requerido para alcanzar el valor final (en realidad el 98 o 99%
T
Figura 12.2
80
C (s) n2
2
R( s) s 2 n s n2
1
Si consideramos que la entrada sea un escalón unitario R(s) , entonces la respuesta
s
estará dada por
n2 1
C ( s)
s 2 n n s
2 2 2
e nt 1 1
2
c(t ) 1
sen n 1 tg
2 para t 0 y 1
1 2
Las características principales de esta respuesta son a) El tiempo de pico (t para que se
alcance el valor máximo de la respuesta. b) El sobre-nivel (Valor del pico máximo de
respuesta). c) El tiempo de subida (tiempo para el cual se alcanza por primera vez el valor
final). d) El tiempo de estabilización (tiempo para el cual la respuesta ya no excede del 2%
del valor final).
Figura 12.3
81
METODOLOGÍA
1. Planteamiento del problema:
Diseñe un programa estructurado con las funciones pertinentes para que dados los
coeficientes de la función de transferencia de un sistema, se calcule la respuesta del
sistema a una entrada escalón unitario. Deberá graficarse la forma de la respuesta y
calcularse el valor de todos los parámetros importantes de dicha respuesta.
2. Algoritmo
CONSTANTES:
--------------------------
VARIABLES:
FUNCIONES:
INICIO
1. Lectura de parámetros
2. Calcula límites de cálculos (5 constantes de tiempo)
3. Genera Tabla de respuestas
4. Guarda Constante de tiempo, Valor de respuesta en 1, 2 y 3 constantes de tiempo.
FIN
t
r 1 e T
Ecuación que define la respuesta
INICIO
5. Lectura de parámetros
5
6. Calcula límites de cálculos ( )
7. Genera Tabla de respuestas
8. Guarda Tiempo de pico, Sobre Nivel, Tiempo de estabilización, etc…
FIN
e n t 1 2
r 1 sen n 1 tg
2 1
1 2 Ecuación
que define la respuesta transitoria de segundo orden
84
Función Grafica:
INICIO
FIN
INICIO
3. Programa
#Programa Num. 10
#Respuesta Transitoria con graficación
#Sistemas de 1er Orden y 2º Orden
import math
import time
import matplotlib.pyplot as plt
import scipy as sp
def Kaptura(t):
return input(t)
def Menu(menu0):
print('*** Menu ***')
for x in range(len(menu0)):
print(str(x+1)+'.- '+menu0[x])
86
Continúa…
def primer_orden():
A=float(input('Parámetro A = '))
B=float(input('Parámetro B = '))
T=1/B
print('Constante de tiempo = ',T)
C=int(input('Intervalos de graficación = '))
t=0
It=5*T/C
Tabla=[]
while t < 5*T:
r=(A/B)*(1-math.e**(-t/T))
Tabla.append(r)
t=t+It
r1 = (A/B)*(1-math.e**(-1))
r2 = (A/B)*(1-math.e**(-2))
r3 = (A/B)*(1-math.e**(-3))
return Tabla, r1, r2, r3, It
87
Continúa…
def segundo_orden():
W=float(input('Parámetro wn = '))
F=float(input('Parámetro famor = '))
C=int(input('Intervalos de graficación = '))
t=0 / Sigma = F*W / Ts = 5/Sigma #En líneas diferentes en el original
It=Ts/C / Tabla=[] / raiz = (1-F**2)**0.5
rmax = 0 / tp = 0.0 / tsub = 0 / prim = 0
while t < Ts:
r =1 -(math.e**(-F*W*t)/(raiz))*math.sin(W*raiz*t+math.atan(raiz/F))
if r > rmax:
rmax = r
tp = t
if ((r - 1) < 0.0 and prim == 0):
tsub = t
else:
prim = 1
if math.fabs(r-1.0)> 0.020:
ts = t
Tabla.append(r)
t=t+It
return Tabla, rmax, tp, tsub, ts, It
88
Continúa….
def graficador_con():
plt.figure()
plt.plot(Tabla)
plt.suptitle('Escalador de tiempo = ')
plt.title(str(It))
plt.show()
#Programa principal
menu0 = ['Respuesta Transitoria Primer Orden','Respuesta Transitoria Segundo Orden','Salir']
#Opciones del menu1
SUGERENCIAS DIDÁCTICAS
Desarrollar programas que resuelvan problemas similares al programa #7. Los siguientes
son problemas sugeridos, pero cada estudiante podrá plantearse otros que sean de su
interés.
Diseñe, Codifique y Pruebe programas para:
Ejercicio 12.1 Repita el ejercicio 9.1 agregando la graficación de los valores calculados de
salida con respecto a la frecuencia de la señal de entrada.
Ejercicio 12.2 Repita el ejercicio 9.2 agregando la graficación de los valores calculados de
salida con respecto a la frecuencia de la señal de entrada.
BIBLIOGRAFÍA
Raspberry Pi Foundation. Disponible en www.raspberrypi.org
Lenguaje Python. Disponible en www.python.org
Respuesta Transitoria. Ogata, Katsuhiko. Ingeniería de Control Moderna. 5ª Edición.
Pearson Educación.
90
PRACTICA #13
ENTRADA-SALIDA BINARIA
Programa estructurado en Python
Entrada / Salida de datos por GPIO
Estructura while
Librerías
Operaciones : booleanas
Tipos de datos: Enteros
COMPETENCIAS A DESARROLLAR
Específicas:
Desarrollar programas que incluyan el manejo de puertos para permitir la interacción con
sistemas electrónicos externos a la computadora.
Genéricas: Capacidad creativa, Capacidad cognitiva para comprender y manipular ideas,
pensamientos e información, Capacidad para aprender, Capacidad crítica y autocrítica,
Capacidad de investigación, Capacidad para tomar decisiones.
INTRODUCCIÓN
Los dispositivos de Entrada-Salida son aquellos que permiten la comunicación entre la
computadora y el usuario. Más allá del teclado, la pantalla (monitor), la impresora y el
ratón existen una gran cantidad de dispositivos periféricos que se pueden conectar a una
computadora con el objetivo de introducir datos o sacar resultados. Entre estos
dispositivos se encuentran los que únicamente pueden tener dos estados: Encendido y
Apagado, Falso y Verdadero o ON-OFF.
Sensores inductivos magnéticos, ópticos, pulsadores, termopares, termoresistencias,
encodificadores, entre otros son dispositivos de entrada ON-OFF. Los contactores de
motor, las electroválvulas, los indicadores luminosos, los relevadores electromagnéticos,
entre otros son dispositivos de salida ON-OFF.
Los diodos de unión emisores de luz (LED), generalmente construidos de materiales
semiconductores GaAs o AlGaAs emiten luz cuando se hace pasar por ellos una corriente
de polarización. Las salidas GPIO proporcionan un nivel de voltaje suficiente para encender
un LED a través de una resistencia limitadora R de 470 .
GPIO
GPIO
METODOLOGÍA
1. Planteamiento del problema:
Diseñe un programa para encender y apagar 2 diodos LED mediante un interruptor de
encendido y un interruptor de apgado.
93
2. Algoritmo
DESCRIPCIÓN: Se genera una salida ON-OFF conectada a terminales del GPIO, controlada por 2
interruptores (A y B) de 2 posiciones o momentáneos. El interruptor A enciende el LED y el
interruptor B lo apaga.
CONSTANTES: --------------------------
VARIABLES:
INICIO
1. Repite indefinidamente:
1.1 Lo 0 Apaga LED
1.2 IA 0 Inicializa posición de interruptor
1.3 Mientras IA 0 repite :
1.3.1 Lee IA
Hasta que IA = 1
1.4.Lo 1 Enciende LED
1.5 IB 0
1.6 Mientras IB 0 repite :
1.6.1 Lee IB
Hasta que IB = 1
Fin (Repite)
FIN
94
3. Programa
SUGERENCIAS DIDÁCTICAS
Desarrollar programas que resuelvan problemas similares al programa #13. Los siguientes
son problemas sugeridos, pero cada estudiante podrá plantearse otros que sean de su
interés.
Diseñe, Codifique y Pruebe programas para:
Ejercicio 13.1 Controlar una luz LED con un solo interruptor momentáneo de encendido-
apagado.
Ejercicio 13.2 Controlar 4 luces LED para que se enciendan en una de 4 secuencias
posibles, seleccionadas con 2 interruptores de 2 posiciones.
BIBLIOGRAFÍA
Raspberry Pi Foundation. Disponible en www.raspberrypi.org
Lenguaje Python. Disponible en www.python.org
Monk, Simon. Programming the Raspberry Pi. Second Edition. McGraHill Education.
96
PRACTICA #14
SEMÁFORO SIMPLE
Programa estructurado en Python
Entrada / Salida de datos por GPIO
Estructura Función, if, while
Librerías
Operaciones : suma, resta, multiplicación y división aritméticas, elevación a potencia,
comparación
Tipos de datos: Enteros,Punto flotante, cadenas de caracteres
COMPETENCIAS A DESARROLLAR
Específicas:
Desarrollar programas que incluyan el manejo de puertos para permitir la interacción con
sistemas electrónicos externos a la computadora.
Genéricas: Capacidad creativa, Capacidad cognitiva para comprender y manipular ideas,
pensamientos e información, Capacidad para aprender, Capacidad crítica y autocrítica,
Capacidad de investigación, Capacidad para tomar decisiones.
INTRODUCCIÓN
La secuencia “normal” de un semáforo es Luz Verde (LV) enciende T1 segundos, Luz Amarilla
(LA) enciende durante T2 segundos, Luz Roja (LR) enciende T3 segundos. Se puede
establecer una Tabla de funcionamiento como la siguiente:
Enciende LV T1 segundos
Enciende LA T2 segundos
Enciende LR T3 segundos
METODOLOGÍA
1. Planteamiento del problema:
Diseñe un programa para controlar la operación de un semáforo, mediante un interruptor
de encendido/apagado.
2. Algoritmo
Funciones
Función Secuencia:
1.1 LV ON
1.2 Tiempo (T 1)
1.3 LV OFF
1 .4 L A ON
1.5 Tiempo (T 2)
1.6 L A OFF
1 .7 LR ON
1.8 Tiempo (T 3)
1.9 LR OFF
Fin función
99
ALGORITMO: Semáforo simple
CONSTANTES:
--------------------------
VARIABLES:
INICIO
1. Mientras 1 1 repite :
1.1 Lee ( Ie )
1.2 Si ( I e ON ) entonces
1.21 Secuencia
Fin Mientras
FIN
100
3. Programa
def secuencia():
Verde.on()
time.sleep(05)
Verde.off()
Amarillo.on()
time.sleep(02)
Amarillo.off()
Rojo.on()
time.sleep(05)
Rojo.off()
return
while True :
ON=boton.is_pressed
If ON==1:
Secuencia()
101
#Continua…
time.sleep(05)
Rojo.off()
return
while True :
ON=boton.is_pressed
If ON==1:
Secuencia()
SUGERENCIAS DIDÁCTICAS
Desarrollar programas que resuelvan problemas similares al programa #14. Los siguientes
son problemas sugeridos, pero cada estudiante podrá plantearse otros que sean de su
interés.
Diseñe, Codifique y Pruebe programas para:
Ejercicio 14.1 Controlar un semáforo en 4 secuencias diferentes, mediante un interruptor
de encendido/apagado y 2 interruptores selectores de secuencia.
Ejercicio 14.2 Manejo de PWM, para controlar la intensidad de un LED o la velocidad de un
motor de CD.
REPORTE DEL ALUMNO
BIBLIOGRAFÍA
Raspberry Pi Foundation. Disponible en www.raspberrypi.org
Lenguaje Python. Disponible en www.python.org
Monk, Simon. Programming the Raspberry Pi. Second Edition. McGraHill Education.
102
PRACTICA #15
CONTROL SECUENCIAL
Programa estructurado en Python
Entrada / Salida de datos por GPIO
Estructura Función, if, while
Librerías
Operaciones : incremento
Tipos de datos: Enteros
COMPETENCIAS A DESARROLLAR
Específicas:
Desarrollar programas que incluyan el manejo de puertos para permitir la interacción con
sistemas electrónicos externos a la computadora.
Genéricas: Capacidad creativa, Capacidad cognitiva para comprender y manipular ideas,
pensamientos e información, Capacidad para aprender, Capacidad crítica y autocrítica,
Capacidad de investigación, Capacidad para tomar decisiones.
INTRODUCCIÓN
Por lo general, la banda es arrastrada por la fricción de sus tambores, que a la vez este es
accionado por su motor. Esta fricción es la resultante de la aplicación de una tensión a la
banda transportadora, habitualmente mediante un mecanismo tensor por husillo o
tornillo tensor. El otro tambor suele girar libre, sin ningún tipo de accionamiento, y su
función es servir de retorno a la banda. La banda es soportada por rodillos entre los dos
tambores. Denominados rodillos de soporte.
se pueden usar para transportar personas en recintos cerrados (por ejemplo, en grandes
hospitales y ciudades sanitarias).
DESCRIPCIÓN: Se controlan tres bandas distribuidoras del equipaje que se va a cargar en un avión. Una banda
principal y 2 secundarias para la parte delantera y trasera del avión.
CONSTANTES: --------------------------
VARIABLES:
INICIO
3. Programa
#Programa Num 15
bA = Button(5)
s1 = Button(19)
banda1 = LED(18)
banda2 = LED(23)
banda3 = LED(25)
def sensor():
Si = s1.is_pressed
while Si == 0:
Si = s1.is_pressed
while Si == 1:
Si = s1.is_pressed
return
ON = bA.is_pressed
ON = bA.is_pressed
Continúa…
while ON == 1:
sensor()
cont = cont +1
print('contador = ',cont)
cont = 1
sensor()
cont = cont +1
print('contador = ',cont)
#fin while ba == 1
107
SUGERENCIAS DIDÁCTICAS
Desarrollar programas que resuelvan problemas similares al programa #15. Los siguientes
son problemas sugeridos, pero cada estudiante podrá plantearse otros que sean de su
interés.
Diseñe, Codifique y Pruebe programas para:
Ejercicio 15.1
Se requiere transportar tortillas desde el horno de cocción hasta el área de embolsado en la cual
se empaquetan 10 tortillas en cada bolsa, por ello la necesidad de utilizar un contador
automatizado pues el operador puede tener una distracción y contar una tortilla de más o de
menos.
Como se puede observar en el bosquejo para comenzar el proceso el operador pulsara un botón
que es el que dará inicio y arrancara la producción de tortillas, indicando a la vez con el encendido
de una lámpara de color verde que el proceso está en funcionamiento. Cada tortilla será
detectada por el sensor situado al inicio de la banda transportadora, dicho sensor envía una señal
a una entrada GPIO con lo que se incrementara el conteo del registro correspondiente (contador
C0).
Cuando el contador llegue a 10 unidades originara una señal con la cual se detendrá la producción,
esto es, cesara el movimiento de la banda transportadora y con ello se apagará la lámpara verde,
encendiéndose una lámpara roja que indica el fin del proceso.
Una vez que el proceso contabilizo 10 unidades, el operador podrá colocar una bolsa nueva ya que
la anterior acaba de ser llenada, las bolsas llenas son colocadas en una caja para su futura
repartición, y nuevamente el operador tendrá que presionar el botón de inicio para que se llene
automáticamente una bolsa con exactamente 10 unidades.
108
El sistema se divide en cuatro zonas: Inicio, Clasificación, Pintura, Desviación. El proceso inicia al
pulsar el interruptor ON, momento en que se activa la banda transportadora hacia adelante.
Si después de 30 segundos el sistema no detecta presencia de piezas en la zona de inicio (S1
inactivo), la banda se desactiva y se enciende una alarma sonora (CH) durante 3 segundos,
pasados estos 3 segundos el sistema va a estado de reposo. Si por el contrario se detecta la
presencia de piezas en zona de inicio (S1) la banda permanece activa.
Una vez la pieza alcance la zona de clasificación (R1 o R2 o R3), el sistema debe detenerse durante
8 segundos, tiempo en el cual se realizará la clasificación de la pieza como: Pequeña, Mediana o
Grande. Esta clasificación se realiza con los sensores R1, R2 y R3 los cuales han sido dispuestos de
manera apropiada para tal fin. Después de los 8 segundos de espera la pieza clasificada debe ser
trasladada hacia la zona de pintura. Cuando la pieza entre en la zona de pintura(S2), la banda se
detiene. La pieza procederá a ser pintada de un color elegido con base en la clasificación de altura
realizada. Para ello, el sistema contará con 3 dosificadores de pintura (P1-pequeño, P2-mediano y
P3-grande). Las piezas grandes se pintaran durante 30 segundos, las medianas durante 20
segundos y las pequeñas durante 15 segundos. Habiendo terminado el proceso de pintado, la
banda volverá a ser activada trasladando la pieza hacia la zona de Desviación.
Cuando se alcance la zona de desviación (S3) la banda se detiene. El operario evaluará la calidad
de pintado y determinará:
En caso de encontrar que la pieza ha sido bien pintada, presionará el botón PINT_OK
provocando que la pieza avance en la zona de desviadores.
En caso de encontrar errores en el pintado, presionará el botón REPINT, esto provocará
que la pieza en desviación retroceda hacia la zona de pintura y sea pintada nuevamente.
Esta rectificación de pintado solo se puede repetir en 3 ocasiones, la cuarta repetición
tratará la caja como si estuviese bien pintada.
Habiendo pasado la evaluación de pintado se activará uno de tres desviadores (D1, D2, D3) que
conducen la pieza a los contenedores de piezas grandes, pequeñas o medianas. El desvío va a
depender de la clasificación realizada en la zona de clasificación: D1 para piezas pequeñas, D2 para
medianas y D3 para grandes. Este estado de desviación durará hasta que el operador confirme el
almacenamiento de la pieza pulsando el botón PIEZA_ALMAC.
Una vez se presione el botón PIEZA_ALMAC, los desviadores pasarán a reposo y el sistema podrá
procesar una nueva pieza
109
BIBLIOGRAFÍA
Raspberry Pi Foundation. Disponible en www.raspberrypi.org
Lenguaje Python. Disponible en www.python.org
ftp://ftp.unicauca.edu.co/Facultades/FIET/DEIC/Materias/LaboratoriodecontroldeProceso
s/Planta/Banda/banda.pdf
https://instrumentacionycontrol.net/automatizacion-de-un-faja-transportadora-con-un-
plc/