from machine import Pin
import time
import math
# configurnado pines de salida
pin_out= [11,10,9,8,7,6,5,4,3,2]
#configurnado pines de entrada
pin_in = [19,18,17,16]
#configurnado los pines
# Creando una lista de objetos Pin configurados como salida
sal = [Pin(p, Pin.OUT) for p in pin_out]
# Creando una lista de objetos Pin configurados como entrada
# cada entrada (se asume conectado a GND con resistencia pull-up interna)
ent = [Pin(p,Pin.IN, Pin.PULL_UP) for p in pin_in]
def salp(datos):
ii=512
cbin =""
ind=0
for pins in pin_out:
if ((datos & ii) !=0):
sal[ind].value(1)
cbin=cbin+"1"
else:
sal[ind].value(0)
cbin=cbin+"0"
ii=ii>>1
ind=ind+1
return cbin
def entp():
ii=8
cbin =""
num=0
ind=0
for pins in pin_in:
if (ent[ind].value() ==0):
num=num | ii
cbin=cbin+"1"
else:
cbin=cbin+"0"
ii=ii>>1
ind=ind+1
return num,cbin
print ("ejemplo de GPIO i/O Aproximacion de Taylor COS")
# Funcion para calcular cos(x) con n terminos de la serie de Taylor
def cos_taylor(x, n):
resultado = 0
for k in range(n):
# (-1)^k * x^(2k) / (2k)!
termino = ((-1)**k) * (x**(2*k)) / math.factorial(2*k)
resultado += termino
return resultado
while True:
for x in range(0,360):
x_rad = math.radians(x)
cos_t = cos_taylor(x_rad,10)
cadena=salp(int(cos_t*100+300))
print("cos_taylor(",x_rad,")=",cos_t*100+300,"="+cadena)