Ir al contenido principal

RESISTENCIA ELECTRICA

El siguiente programa un tanto mas elaborado combina dos métodos, el primero es sobre archivos que consiste en abrir y leer un archivo de texto con extencion "txt" y utilizar los datos para realizar los cálculos, que en este caso el archivo nos ayudara a calcular el valor de una resistencia a partir de el color de las lineas y un valor asociado, una vez teniendo los colores y el valor de la resistencia se procede a dibujarla con el modulo "Turtle" esto es para hacer mas visual el programa.

Especificaciones del programa:

*Al inicio se muestra una lista de colores validos, al momento de ingresar el color y no ser valido, el programa seguirá preguntando hasta que se ingrese un color valido
* El valor de la resistencia es calculado por medio de una función declarada al inicio del programa
* La resistencia dibujada esta hecha a partir de varias instancias. 

PROGRAMA 

EL CÓDIGO ESTA COMENTADO PARA MEJOR ENTENDIMIENTO

from turtle import *

#FUNCION-----------------------------------------
def resistencia(C1,C2,C3):
z=str(C1)+str(C2)
exp=10**C3
tot=int(z)*exp
return tot


#MUESTRO LOS COLORES VALIDOS----------------------
print("COLORES VALIDOS")
CV=['negro','marron','rojo','naranja','amarillo','verde','azul','purpura','gris','blanco']
print(CV)
print()
#-------------------------------------------------

#VALIDACION DE COLORES----------------------------
LDV=['negro','marron','rojo','naranja','amarillo','verde','azul','purpura','gris','blanco']

#VALIDA LA ENTRADA DEL COLOR 1
A=input("DAME EL COLOR DE LA LINEA UNO: ")
A=A.lower()

while(A not in LDV):
A=input("El Color no es compatible ingrese otro ")
A=A.lower()
print("COLOR 1 ",A)
print()

#VALIDA LA ENTRADA DEL COLOR 2

B=input("DAME EL COLOR DE LA LINEA DOS: ")
B=B.lower()

while(B not in LDV):
B=input("El Color no es compatible ingrese otro ")
B=B.lower()
print("COLOR 2 ",B)
print()

#VALIDA LA ENTRADA DEL COLOR 3

C=input("DAME EL COLOR DE LA LINEA TRES: ")
C=C.lower()

while(C not in LDV):
C=input("El Color no es compatible ingrese otro ")
C=C.lower()
print("COLOR 3 ",C)
print()

print("Colores ",A,B,C)


#-----------------------------------------------------------------------

#SACA LOS VALORES DEL ARCHIVO
archivo=open("colores.txt","r")
print()
listass=[]
for i in range(10):
lisp=archivo.readline() 
llena=lisp.split() 
listass.append(llena)
archivo.close()

#POSIBLES CASOS PARA A "COLOR 1"

if A in listass[0][0]: #En Caso de negro
FR1=int(listass[0][1])
CR1=listass[0][2]
if A in listass[1][0]: #En Caso marron
FR1=int(listass[1][1])
CR1=listass[1][2]

if A in listass[2][0]: #En Caso de rojo
FR1=int(listass[2][1])
CR1=listass[2][2]

if A in listass[3][0]: #En Caso de naranja
FR1=int(listass[3][1])
CR1=listass[3][2]

if A in listass[4][0]: #En Caso de amarillo
FR1=int(listass[4][1])
CR1=listass[4][2]

if A in listass[5][0]: #En Caso de verde
FR1=int(listass[5][1])
CR1=listass[5][2]

if A in listass[6][0]: #En Caso de azul
FR1=int(listass[6][1])
CR1=listass[6][2]

if A in listass[7][0]: #En Caso de purpura
FR1=int(listass[7][1])
CR1=listass[7][2]

if A in listass[8][0]: #En Caso de gris
FR1=int(listass[8][1])
CR1=listass[8][2]

if A in listass[9][0]: #En Caso de blanco
FR1=int(listass[9][1])
CR1=listass[9][2]


#POSIBLES CASOS PARA B "COLOR 2"
if B in listass[0][0]: #En Caso de negro
FR2=int(listass[0][1])
CR2=listass[0][2]
if B in listass[1][0]: #En Caso marron
FR2=int(listass[1][1])
CR2=listass[1][2]

if B in listass[2][0]: #En Caso de rojo
FR2=int(listass[2][1])
CR2=listass[2][2]

if B in listass[3][0]: #En Caso de naranja
FR2=int(listass[3][1])
CR2=listass[3][2]

if B in listass[4][0]: #En Caso de amarillo
FR2=int(listass[4][1])
CR2=listass[4][2]

if B in listass[5][0]: #En Caso de verde
FR2=int(listass[5][1])
CR2=listass[5][2]

if B in listass[6][0]: #En Caso de azul
FR2=int(listass[6][1])
CR2=listass[6][2]

if B in listass[7][0]: #En Caso de purpura
FR2=int(listass[7][1])
CR2=listass[7][2]

if B in listass[8][0]: #En Caso de gris
FR2=int(listass[8][1])
CR2=listass[8][2]

if B in listass[9][0]: #En Caso de blanco
FR2=int(listass[9][1])
CR2=listass[9][2]

#POSIBLES CASOS PARA C "COLOR 3"
if C in listass[0][0]: #En Caso de negro
FR3=int(listass[0][1])
CR3=listass[0][2]
if C in listass[1][0]: #En Caso marron
FR3=int(listass[1][1])
CR3=listass[1][2]

if C in listass[2][0]: #En Caso de rojo
FR3=int(listass[2][1])
CR3=listass[2][2]

if C in listass[3][0]: #En Caso de naranja
FR3=int(listass[3][1])
CR3=listass[3][2]

if C in listass[4][0]: #En Caso de amarillo
FR3=int(listass[4][1])
CR3=listass[4][2]

if C in listass[5][0]: #En Caso de verde
FR3=int(listass[5][1])
CR3=listass[5][2]

if C in listass[6][0]: #En Caso de azul
FR3=int(listass[6][1])
CR3=listass[6][2]

if C in listass[7][0]: #En Caso de purpura
FR3=int(listass[7][1])
CR3=listass[7][2]

if C in listass[8][0]: #En Caso de gris
FR3=int(listass[8][1])
CR3=listass[8][2]

if C in listass[9][0]: #En Caso de blanco
FR3=int(listass[9][1])
CR3=listass[9][2]

#FUNCION APLICADA
RESIS=resistencia(FR1,FR2,FR3)
print(RESIS)

#DIBUJA LA RESISTENACIA
t=Turtle()
a=Turtle()
b=Turtle()
c=Turtle()
d=Turtle()
e=Turtle()
screen=t.getscreen()
setup(1000,800,0,0)
screensize(300,150)
colormode(255)
t.speed(50)
a.speed(50)
b.speed(10)
c.speed(10)
d.speed(10)
e.speed(10)

#HACE LA BASE PARA LA RESISTENCIA
t.penup()
a.penup()
t.goto(-200,0)
a.goto(200,100)
t.pendown()
a.pendown()
t.fillcolor(0,150,150)
a.fillcolor(0,150,150)
t.begin_fill()
a.begin_fill()
t.goto(200,0)
a.goto(-200,100)
t.goto(200,100)
a.goto(-200,0)
t.end_fill()
a.end_fill()

t.penup()
a.penup()
t.goto(-200,-50)
a.goto(200,-50)
t.pendown()
a.pendown()
t.pencolor(0,150,150)
a.pencolor(0,150,150)
t.fillcolor(0,150,150)
a.fillcolor(0,150,150)
t.begin_fill()
a.begin_fill()
t.circle(100)
a.circle(100)
t.end_fill()
a.end_fill()

#HACE LOS ALAMBRES
t.pencolor("black")
a.pencolor("black")
t.penup()
a.penup()
t.goto(-450,70)
a.goto(450,70)
t.pendown()
a.pendown()
t.fillcolor("black")
a.fillcolor("black")
t.begin_fill()
a.begin_fill()
t.goto(-300,70)
a.goto(300,70)
t.goto(-300,50)
a.goto(300,50)
t.goto(-450,50)
a.goto(450,50)
t.goto(-450,70)
a.goto(450,70)
t.end_fill()
a.end_fill()

#FRANJAS

b.hideturtle()
c.hideturtle()
d.hideturtle()
e.hideturtle()

b.penup()
c.penup()
d.penup()
e.penup()

b.goto(-100,100)
c.goto(-40,100)
d.goto(20,100)
e.goto(80,100)

b.pendown()
c.pendown()
d.pendown()
e.pendown()

b.fillcolor(CR1) #color 1
c.fillcolor(CR2) #color 2
d.fillcolor(CR3) #color 3
e.fillcolor("gray") #tolerancia

b.begin_fill()
c.begin_fill()
d.begin_fill()
e.begin_fill()

b.goto(-60,100)
c.goto(0,100)
d.goto(60,100)
e.goto(120,100)

b.goto(-60,0)
c.goto(0,0)
d.goto(60,0)
e.goto(120,0)

b.goto(-100,0)
c.goto(-40,0)
d.goto(20,0)
e.goto(80,0)

b.goto(-100,100)
c.goto(-40,100)
d.goto(20,100)
e.goto(80,100)

b.write(A)
c.write(B)
d.write(C)
e.write("Tolerancia +/-5")

b.end_fill()
c.end_fill()
d.end_fill()
e.end_fill()


t.penup()
t.hideturtle()
t.goto(0,200)
t.write("VALOR DE LA RESISTENCIA: " +str(RESIS) ,False,"center",("arial",20,"bold italic"))

screen.exitonclick()

ESTE ES EL ARCHIVO DE TEXTO UTILIZADO
En este se ve el color, valor asociado y el color en ingles,  los primeros datos son utilizados para hacer calculo del valor de la resistencia y el ultimo para dibujara la resistencia

CORRIDA DEL PROGRAMA, EN TERMINAL Y EN MODULO TORTUGA

La siguiente corrida es un para una resistencia común de 220 que es rojo rojo cafe, en la corrida se verán varias validaciones y el dibujo de la resistencia.





Comentarios

Entradas populares de este blog

Funciones y Figuras Geometricas

En la siguiente serie de funciones se calculara cada una de las áreas y volúmenes de las siguientes figuras geométricas, haciendo uso de listas para evaluar e imprimir datos. PROGRAMA  En el programa siguiente tomar en cuenta las especificaciones dadas.  #en el siguiente programa se muestran 24 funciones diferentes #dichas funciones sirven para calcular el area y volumen de figuras geometricas #las funciones utilizan como principal recurso las lists (por especificaciones del docente que imparte la materia) #todas las funciones corren en el programa #pero tener cuidado con la version de python ya que en algunas verciones se puede tener error #se recomienda comprobar cada funcion por separado para su rapida ejecucion #todas las funciones contienen un print y aun lado esta comentado las salidas que da ejemplo [base,altura,area] #despues de cada funcion se manda a llamar dicha funcion para no generar confucion en el codigo #cada funcion se tiene un nombre rel...

Semaforo en python

En el siguiente programas se realizo la simulación tanto física como virtual de un semáforo a cuatro esquinas, los materiales utilizados ademas de los leds, resistencias y protoboard que son los componentes básicos, también es necesario tener una raspberry pi 3 con python instalado, con las librerías de turtle y gpio. El funcionamiento es básico, los led se aterrizan a tierra y las entradas de voltaje serán aterrizadas a los pines GPIO de la raspberry que dependiendo de las sentencias mandaran voltaje o no mandaran nada a sus respectivos leds. La lógica de un semáforo de 4 esquinas es: mientras un semáforo este en verde los otros tres deben de estar en rojo y hacer el intercambio en sentido horario. CÓDIGO DEL PROGRAMA from turtle import * import RPi.GPIO as gpio import time t=Turtle() S1=Turtle() S2=Turtle() S3=Turtle() S4=Turtle() screen=t.getscreen() setup(1100,650,0,0) screensize(1000,600) colormode(255) #fondo carretera t.fillcolo...

Sensor de luz con python

EN ESTA ENTRADA SE MUESTRA LA APLICACIÓN DE UN SENSOR DE LUZ   Como es de costumbre todos tenemos una lampara en nuestra casa, para poder aprovechar al máximo su rendimiento con una foto-resistencia o sensor de luz podemos hacer que esta se apague o prenda según la intensidad de luz que haya a su alrededor, si hay mucha luz se apaga pero si hay poca se prende, esto es algo muy esencial en la domotica. Y  me di la tarea de hacer un ejemplo simulado, por medio del modulo "turtle" y los puertos "GPIO" de la rasberry pi 3, mediante el lenguaje de programación de python, donde un puerto estará recibiendo la señal del circuito armado, y con esta señal se darán medidas o rangos para ir dibujando al foco según la intensidad de la luz. CIRCUITO ARMADO EL MATERIAL ES: Foto-resistencia Resistencia de 2k Capacitor de 1 micro PROGRAMA from turtle import * import RPi.GPIO as GPIO, time # se necesita esta libreria para poder utilizar los puertos rpigo...